automake-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Automake-commit] [SCM] GNU Automake branch, branch-1-5, updated. Releas


From: Ralf Wildenhues
Subject: [Automake-commit] [SCM] GNU Automake branch, branch-1-5, updated. Release-1-5-10-g71c8c45
Date: Tue, 08 Dec 2009 22:12:17 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Automake".

http://git.sv.gnu.org/gitweb/?p=automake.git;a=commitdiff;h=71c8c45600c381c6c54451ce67e373ac93d5d0c4

The branch, branch-1-5 has been updated
       via  71c8c45600c381c6c54451ce67e373ac93d5d0c4 (commit)
       via  b1c42762931e9cd03aee3e4b4284dc2920c9eabc (commit)
       via  535353a8fd08cf54ec423ed51ba133e5e958146c (commit)
       via  eb88352afe9e5562d228f0d10356cabb12e86a5a (commit)
       via  097c5e8b9117a4f0fbd11ad7755b08843cb56af3 (commit)
       via  727afa1e5bb3ac65fac97da0d529811710e02a24 (commit)
       via  7578361dbcf446a6d78fc1e6a7679e4dedfb9199 (commit)
       via  2ca2a4c0a0854c8e0151302af805ec49d0f566c8 (commit)
       via  d19a9e199b9aaf419706374ef618304f5396eed2 (commit)
       via  33f7d2b8646961ddf112ae822c3026c454ce7271 (commit)
       via  06b28c26878b9533c584e46c6f9572edee18f2d4 (commit)
       via  5fa97216ff5c929098357b55de8918f1206bbb10 (commit)
       via  b3090bec58383d71d00f0adf155e4f3de665e732 (commit)
       via  5029ec9b3cff3fff7e317cc1d54e5daa0a6ed5f1 (commit)
       via  dfecb74b92b999a7a02e762ec7fa7a6bd50d2fa6 (commit)
       via  b4b517286dea6c47c6bc0ba9a705bb16d3b8ec2b (commit)
       via  5b97b4675894bbe72a4a0bd5246a59777d3216c0 (commit)
       via  b73610b8cc7b4157771bdc6cdb457081d4323b5d (commit)
       via  800ebeebb4d9ae0c18a82462346d3611ef0fe6c9 (commit)
       via  cb3ed4903a24c88b0939e67fc2c1ac11343b1fbf (commit)
       via  599f4610cc9e3553a9a3c5a1c83051df354f26fa (commit)
       via  8f2b356df8b975b210ec33d6b308e7c20827113a (commit)
       via  a59182c8b2042560764305e071da7d4dff33af34 (commit)
       via  8865593973b62744ed71e3c57a24280de27c9dad (commit)
       via  acb2e40211b716d2e71e8c5926d3940c772f7566 (commit)
       via  2b74c0b603526c17ce47f3beabe07fa82e52de66 (commit)
       via  4658aae432f631fbf43fadd287b48a926573f908 (commit)
       via  2bff849f22a176354d43727537f8a67cd2b149c8 (commit)
       via  028918414504c6d9eb58757202c4ed2f786ba4d3 (commit)
       via  dcd49f78539181e5711afdf31202002bb457cb96 (commit)
       via  147889176b14014c60aacdc68a55d69a4a87659b (commit)
       via  5cc47615a2f128034e767f9f62bb2e3ab2f2103e (commit)
       via  f00ec2842b04fb937550074fdec93f0f81c83c80 (commit)
       via  56fc34a8be4778e505b162ebdb144f73df4f4c45 (commit)
       via  d947aafb973882c714a4939db05439fca03ae16b (commit)
       via  51b1c276280372539227d319839e7f70efea791d (commit)
       via  264f136d016bb9aade0214ae5b092a37efb35eee (commit)
       via  4f1ce3a844ffbfd4e06b2fd665e0ee68a788c9b6 (commit)
       via  a011649bf04ba0c9484500ce1ac0d962692b8556 (commit)
       via  60903702f6440e19c3ca520cd36ea0c278a730c7 (commit)
       via  4db6e7428db987b5cdec29f8d54d2eabc153578b (commit)
       via  86c6255b4c46b9a387ea70a39e175def7312f795 (commit)
       via  d3910daaf1a35590412938c204de0661f8defca9 (commit)
       via  acd6275cb30fa7e7fb9dfa94ed5a5e4632c1b8ad (commit)
       via  52987401e07fe4cdf6f094f447cf65e863acebca (commit)
       via  354678fe77548fc294067693d424c429679cc9ff (commit)
       via  b1fba053d73203c6928b643ba53f1d2c60eb95c1 (commit)
       via  6a9bf0652ca90ba85c6b5dd5e759afa7203aeab5 (commit)
       via  8f498d0e8f48c5d7cec273ba8799df7eadd879d1 (commit)
       via  57b637ee036b37721826e5c29ae07c927be0515a (commit)
       via  3750638682f8d8ac67bdeb4f31058e402a7f8c46 (commit)
       via  548fc006b6755e9f60491e097733d3db82790d0b (commit)
       via  a3821692ccd139720e88a35e09a9b7be9f54ddff (commit)
       via  35158ae15bc85bb0853630f365292bb17abe818b (commit)
       via  157ad74fb8757e024694dd09e3063480c5fa4c4a (commit)
       via  7abb9f3df3aed00aebc3f972a36d0f530c5b42fc (commit)
       via  730bcba2754632c2e15a30b7f06670c6ed30c0e6 (commit)
       via  3b5fdb7810feef4fc297a7bc5bd4ecf66a7ff6c7 (commit)
       via  a5911ca84d92f990745139a8eec1e4fe78a7713a (commit)
       via  781b237df4315ad42f204322cc51d58a536c6771 (commit)
       via  280849917a688153e3f6b18fa1a846d9f136868b (commit)
       via  7638bd9f08dc48bb4eb64296e752c1f734851ecc (commit)
       via  8b30c85900c953e7b171562196829568ffb78fd4 (commit)
       via  5bab402646b445196b5be269a7ab3f668e6af1e2 (commit)
       via  83fb7ef121b7dd35bdbd40cf9f699bfb654b8851 (commit)
       via  b92cb34a6743d496660105df6a4351270f2e7d44 (commit)
       via  c68e52d0547b79a4f738fe24fc700e2a52853e81 (commit)
       via  cc7d957a25b496939739d7395564105319d1e283 (commit)
       via  569453df849251934e05fe2f6293ff5ff9a94eac (commit)
       via  03120caec21e576a2355ede772f36ea8af440376 (commit)
       via  50bea03197327850050e0c05321f3c6345699a2a (commit)
       via  0a3bbd519e032a90e3063d84e2b05aad547608c9 (commit)
       via  0881965128e8911e9e0a55869fb0091fa27767cc (commit)
       via  88ba6d7a137203664da031c6dd48921819c9a53f (commit)
       via  5dc571b4956d97fc5600e26702390ef42c55f58a (commit)
       via  3c5abbd0037c99983c20287f6faf4fe90ff28cd7 (commit)
       via  cd881a78e7232e973c3202eef3e8302608ca54f6 (commit)
       via  0066e5961e36c1d9c3a57a772b745192cbdeb59d (commit)
       via  3af311278ecab3a00e0b37d258f987318106c1ed (commit)
       via  1c4a810c9532083e2193bf16e54dc34ae8d042f0 (commit)
       via  8c00243eb6bb22080843307e5fb02316009251c0 (commit)
       via  c912d577d6365a6f5eeb1cc854defcb287678cd5 (commit)
       via  e8514aacb9bc5c765d10e2dc0679024db97ceab3 (commit)
       via  f4508626804cbcd3ec93a3865f7e2c3ad104c80c (commit)
       via  6e3608a582f0ca34dbc13ecc06a22887fa61b6a6 (commit)
       via  f97ba42686e899aad627ec163af16bae70a40b6f (commit)
       via  9aa840724498d322455d07b9862dd0283acefe59 (commit)
       via  a710eb01777e3291aae9f99db986a7681c4b4611 (commit)
       via  f5ea1a6d689622da6d1f5ab274e06c93bdacadea (commit)
       via  e14e03852a812ec2d1eb91963e0897c01019c632 (commit)
       via  c3f036e267ce6aea2c02f18e724ffaf466f3b029 (commit)
       via  29c2c7edb995cb2a751a73d5318f50491ca4a3d4 (commit)
       via  809c236c1a78bd233572c6e2083e3a735f8a3a85 (commit)
       via  42152c209580298f58772e98c9d8addef1045492 (commit)
       via  9a2040ae30b304e4a1717cf90e59f3e2670ff121 (commit)
       via  3521675eca0234bc6ab0953ccf509606844c496e (commit)
       via  b689c2754711f75e2a1f038cc85f9162dd3062fa (commit)
       via  a8316c612b9d3b2d500ba07b44c87953b2826026 (commit)
       via  06e2b75645fdf9bd38e25557c4f3a227261affe0 (commit)
       via  73cf791add94e799405712990fbadd89335f254a (commit)
       via  86fe97a0dc8e5b18c16fd39b1a4b2487201a8bd9 (commit)
       via  4d1308316f13125ad40b811c73d77a991a154507 (commit)
       via  da09285c393c4078d99a67b5813a39cd61f03395 (commit)
       via  79f8405ad93459f26056e73dee94d420786acc78 (commit)
       via  5ff8b67b2726286dac5fbf31c4024fdf0f14b4ae (commit)
       via  c53f6ce885824267313d49eb0536ccee140c9067 (commit)
       via  3093fbc642a7cdc786640314a24624f4a6186aac (commit)
       via  8a49ab2b0ba53e328ed895144cba6fddaced00a4 (commit)
       via  08ff72fdef63dabac29183a5b57e1a63249cfc1b (commit)
       via  237ac65b777b4d4775ea1c820330ab33efdd1709 (commit)
       via  7028ac3ddd20cba172a218f46ff36cea06d5c92e (commit)
       via  178d1f89f17d73f7dac3749473212068089b054b (commit)
       via  5161467e50a8d33825db42990a90c0efe30bb658 (commit)
       via  1b14a6bd748f942db45fe351fb4c672defb1166a (commit)
       via  e78b510959d50f4c298bb0669e202d94b3363032 (commit)
       via  6684c5ebe082862d8a8c62c923d3a48b83d36fa2 (commit)
       via  79f236d5be800f8d85a278f639db60065eb05bc2 (commit)
       via  ffcacbab6042e947c957f3a7d85e7a100d330059 (commit)
       via  c0d60c166f5b7f8d5e13d10592371c3cc246f5c0 (commit)
       via  9cb2da8e18ee254fcdd70f4b38232e9f2a78dc28 (commit)
       via  081f2d5113065a78110272b827e552c80fc9e259 (commit)
       via  08e7a2e03ce8cd417e2691238ddbeec1ed2b3b1b (commit)
       via  a9fe726126aa3627cc915cfc7af963461ed177b6 (commit)
       via  5cadf3e04a38a48ae604084deb6bb9830bb17b29 (commit)
       via  00329142f70a22c9e7dc69b01bdf6b6b63277f3d (commit)
       via  eeaa4f07917cd4a0578f1b054e180d3bd7c30873 (commit)
       via  4a1d8c507b19b886e1c7e59178e016ee6cafbbeb (commit)
       via  9539d6ee9e3c2c9ba1cb7fb665d56f21b03554a0 (commit)
       via  de165743d6aea6d8620b91a40ad5346c09cbc21c (commit)
       via  a7df6fe522cf4038ad4c467a36c17bf578e610c7 (commit)
       via  c7f85a7ca7f8e00882929e6433f3bc0b82a5e01f (commit)
       via  54d9efaf0d1f31efc7a00dd999957a2d52b5e69e (commit)
       via  21a2bcebfa603af27b1e8901c92c87eb7d4e59d5 (commit)
       via  7f684d7bc5aee3b6cb4ed3df1a3860946e4dd804 (commit)
       via  ca50db75e652a23d35b6fbe2207daf277ef54793 (commit)
       via  3d248ab5160774de141fe68bd17249b4019d4dfc (commit)
       via  f4a55eea80b4f62f2e76ef1440133c09bd912d67 (commit)
       via  996bbbfc88ea1ebdd5092d89f6f598cb2777da5c (commit)
       via  840297074e8c97d40e91172bf762a4f3dd48dfc7 (commit)
       via  1e39dc263a2fd513b1b93dc9247986a0a26d3c8c (commit)
       via  4dc0221ce77a4578a74284be4bfdee9ac7cfda15 (commit)
       via  b730d8b416099f99424a48745ab22ac340102b7d (commit)
       via  83a8c4969e5cdb6103d8104e9d60cb2e00d493d5 (commit)
       via  7ae7bec17005ed92770101256e957fb369c825df (commit)
       via  545fc2495bb92021cc7a79546b6aa9184bd36fac (commit)
       via  09d1d2fa7daec04261273768d7d7cb4abf773582 (commit)
       via  ddd2ca1a5b9d0c115abb8788e0b9f85e0db87e5a (commit)
       via  8723031aa760bbe1a0efc7b8c9319412d85543e3 (commit)
       via  58d6c64100a960ca2ba69abb30d3c85c5d5fda69 (commit)
       via  c1989e96a5c70140162555da2a44a3119f1e1d80 (commit)
       via  7a4b8c901c2b7d174a357a7c22da23d597836233 (commit)
       via  41d5639ece8636385cf5221ce42485b3ced96aea (commit)
       via  6ebb66771b67a869654b1db83ccc8305fdedfa77 (commit)
       via  5f380908f5ae475fdb0ccc79dc6590a0f23300f4 (commit)
       via  75f1df10ab653074376342d64cbc6cdf9fc8d7b3 (commit)
       via  0b590d42297581eba58395e847bce038d826be55 (commit)
       via  19f7037937f5d45a568b4653ed3cba5903fa4d61 (commit)
       via  55ace4b102a6f727d4ce817cc4ca7b641de708eb (commit)
       via  dcfc9386cf46ea2eca9379a56ef6543bc7cddd93 (commit)
       via  6638db3863bd601a7572dbf44cf31549cd644dd8 (commit)
       via  ff1cb3bd16b2220340285e38a840cc3bcede9daa (commit)
       via  221f0d96cbf192ea346ce084aef189769c75724f (commit)
       via  c487815e90e961fc9f12f55d6518b447d6ae007b (commit)
       via  35a256030bf7be53e3cc69c1caa12f9377cb9231 (commit)
       via  4ba9b87d5b155a2a1356db0b9b84d88749e420d0 (commit)
       via  33079e3a1e13ae7c8d2fef5dd5941126252a6d74 (commit)
       via  5dc7e7505315dde28c0a372bcb73d0685346ef75 (commit)
       via  572c57421047ff9197fea54681ac8039166d4098 (commit)
       via  cce802968930a7030c5bccb21a59c6bb22461521 (commit)
       via  2b3f00e734638d7df440c4a845044e0071a78234 (commit)
       via  56e9a6e6ab9d0077b82ab0fe20b1bfb4c7217078 (commit)
       via  62541da4529cba40ae182e36dad921f83368caed (commit)
       via  7e9620d6c1993428fc6c7ac70f2dec806624c167 (commit)
       via  48b22ed4aa16955a6fc8125127201e5e17dc008d (commit)
       via  e8fef394d69388330662e335477a2bb7a059e8cb (commit)
       via  9ff26b233b3aecfcf28985472a9b769b4620ec03 (commit)
       via  12b2a45c985efa6e5e33837f16d98c58b5b012d7 (commit)
       via  de9bc4717c9e6a4de99783ca853abc35da428c89 (commit)
       via  6cc0fec37b1ad6e341240b092b126387a808e8ea (commit)
       via  6059e528514aa39b1a8bff0e8d457e9e0e01feba (commit)
       via  80f30342230b88a9883d03cb7bf5679e05c01424 (commit)
       via  51e79b8bafb8e232a91dec3f705ec9f70705604b (commit)
       via  0d43099b0ed164d54a49e77aa8ffb671f3b3041c (commit)
       via  9449973a13c0b616d03a19699f13f535ffc7895c (commit)
       via  e00a98988aaa7670a5f3822feb328c8a71ba37cb (commit)
       via  b459ff3b151a8fd0e92dc960065ed977bde9dea7 (commit)
       via  ba60cd8391c1db082e4452ed58bfe6d68a9be165 (commit)
       via  16a59b89cc3fd83fe4a418b65922c7b80e9d1bda (commit)
       via  fa0fa35825ab7daab1563d6ff0b7e7139dc3b192 (commit)
       via  1be94280d5faa04be2d8f58a7670710c041cfc67 (commit)
       via  1582434290688d8b87a3081ce49f0dab346179ca (commit)
       via  464674b1ab4f6248568725c613f3597144743eb6 (commit)
       via  3a40189e01d0f8f4fdc1743d521244e254797863 (commit)
       via  8a7cf4044c05033d228182935b5977b9fc626dce (commit)
       via  e37b4d8ad9777c45393dd03673dfba009d4ed290 (commit)
       via  709643b6b0808fe28797d736efd4741ed31f45f7 (commit)
       via  9618da2057861463e60fada40bbfd348644b5866 (commit)
       via  42a74cb189734bb00163323e4c0403d2c99068dd (commit)
       via  063988a44ded3cbbab35574b2f863db0ac436711 (commit)
       via  fb55cab82c76282ffa982557e60c8cc652948533 (commit)
       via  8261782758899806a8470044682c22b031120b55 (commit)
       via  73af87a1f31680b00cf873ca9125f7f87615d464 (commit)
       via  9f36f5f1b5b801060b9fe1692b0adf8dec03b939 (commit)
       via  4d057d5686133053e46bbcf8997282086f9a8051 (commit)
       via  a79b2c686a900546b9667973168b42c39eae19ca (commit)
       via  bbf3f9c6b7eb18821bdc02f0d44a21d3667b6f3e (commit)
       via  62e22791b27e67ddc31f2384510bf1b034b94cc7 (commit)
       via  3906ba6798390627a2b8bab48b540ee4a6dab3cc (commit)
       via  edccc341c6c00119f7386acba5f1eac8852ad546 (commit)
       via  8cebf6e20157fa9b1779dbac63cfb250f463c305 (commit)
       via  3b1da91578afc8219e106d7c6417997332f288f4 (commit)
       via  62a0fb281554dba5faec7c5bc8ebbdb80baafac2 (commit)
       via  4877109be5c11898064b73447631e9341c88e5d4 (commit)
       via  a33e103b65cafcb792b962e1e594a4eb030f9eec (commit)
       via  944b6911c24fd5d9e7cf0059eda0eaace2864bb6 (commit)
       via  833be730f90622e9ac4f7c1cd9d7e5e36895de80 (commit)
       via  9a37974ffb271e95073695935cfb1967f12d2a3b (commit)
       via  10d39f63e63c723786b9fda369f9920774ad93d8 (commit)
       via  adf4c6035af3f0d6975af7a14f310282be76ba89 (commit)
       via  3ac3237f44f93205966998265008dc7b70f345c3 (commit)
       via  b871815da6f4c08d5e98145a3d87a49b7d8cc0e6 (commit)
       via  09f4a93a471aa955d5389d988b529889a91fe79a (commit)
       via  ccddebe59e724be09d2d2f4ef065f050d1f0c467 (commit)
       via  00e65cdd2233772dcb7988d56fff1d2d2007aa6e (commit)
       via  604ce6301b9df13afcf49fae8388df474f692ea8 (commit)
       via  858624618fb490bafb13103e786ae0bf809be271 (commit)
       via  dc18e55ec3e796fb27b8a7c87d391759013b7902 (commit)
       via  cf622e00ac7a6cfb64ea6ac1d6bd94fc5de75fa6 (commit)
       via  b2083f53142e53af1286e8f9f2a9960d1137fc53 (commit)
       via  c268d32c9251613ebbe0a26f06e2220f97733753 (commit)
       via  065cad6db81d1568625db9b21788333495c3d004 (commit)
       via  a89149b03b26c16bb0409bafa6e390e8b8333cbf (commit)
       via  c34b553c3e631fe2acba50df33bd59c13f3aa135 (commit)
       via  513a325d3a47d9ecdfa94bf997cb164c991c2f90 (commit)
       via  2798bc088f5cefb3b2a2ff016c5777c2f6526943 (commit)
       via  ed5e54c8c7dc821d60d27d3b44ba785521cd1b7b (commit)
       via  cc0ba3e7907ac4ee2289f8c52554208640e9b1d2 (commit)
       via  40615b9eaccf4eba1d052d196972df09a880994c (commit)
       via  30fe262cd31428140fbfb3e3a98f07919ad7d68f (commit)
       via  2691a90cfcd904d25752758e126f2b66f475d6e1 (commit)
       via  a37c8816d671fc4e47e77c0b7d6b83513637c5ae (commit)
       via  6ec97235ff785f97e7ec6330bbf4d4077b8b451b (commit)
       via  72056a29fca3a9e484c778f325e75582bb0ec5b5 (commit)
       via  6831f0da41854a0da9da4494f89250c1a8f09554 (commit)
       via  5f6d34d03a73ef825c4355e55eaa513391ae7f0a (commit)
       via  7e00b8111b95ca290f8bd64ac1cb6a768184ff2e (commit)
       via  beeeae16f226c6cc300cbed553a8a5b17884058d (commit)
       via  9c642c37d41c4fe1bd39dbc40ead2e40cfca5857 (commit)
       via  dc92d564a60336adf2ba38a8c50e9be2839aab1d (commit)
       via  5e81d04037e465fa85ac8812f581020633d6bdf2 (commit)
       via  aba89d1b7b5f23bfc883785859347f6ea08a7600 (commit)
       via  73b307876b9be34c67340887e1c4590aed9082bf (commit)
       via  51f433c17c0731746cc27af5c3f5ac73b9e3005f (commit)
       via  55e01f9ca7d3cfdfb564b808fda7cdb1d492c6fd (commit)
       via  71126ff343b78b14922b2ca38c9aab1055692fc8 (commit)
       via  98d6bc1b79f0027b9f357644e94b9c9319e9cb45 (commit)
       via  d333c64c1e20698ff0d87023366f802d9fff7057 (commit)
       via  d70f4431cc1e83816c931be6fca80d3f48bc723c (commit)
       via  936e50e2103ddf71a93eb8b63bd06bbc0162881c (commit)
       via  3863cbd7ebea12981e551bb5c7a70998b118688d (commit)
       via  b12daf23d5a64c6efa4bb1fdde888f793583c1de (commit)
       via  5bea838f9a448f3760f2d8a6e9423344219ac55b (commit)
       via  3cc400234e3303d191d6e9184f096fa10a1bb163 (commit)
       via  aeee6e8ca87f90376d48383b29779f38dbb426cf (commit)
       via  59633bafe30ae0c11a54dc7eefe1f190ca39486a (commit)
       via  482129a77720c23367c45b06fda2ba6fbd40da55 (commit)
       via  ae2fdda56aad69783620e488bf24b9d49d9562a0 (commit)
       via  1cacc56e188cfe2a911c9459827676a189cc3d83 (commit)
       via  b1fdd7e9dd2cec2e4a9693c88226f05315b16451 (commit)
       via  dc4652f53a8c192360216eb4ade8dc29ec3a0f92 (commit)
       via  ceb979420919c42853ff956d1bd7fd1834bf45e5 (commit)
       via  bea5cae85c9c534a76729d30cd8ef049333aee77 (commit)
       via  1a279e3e739108448ad4195a3441c01ee32a3286 (commit)
       via  77a0a40f841f932fb51ea75b3bb27c2782268aa2 (commit)
       via  bce23ab79c395a4b01188c52fa473fcb5ffa5239 (commit)
       via  4412f6e15a1da85016e2d31021a115d0e3a59c02 (commit)
       via  9ff51628212485724b465efcb108ca40d11b9013 (commit)
       via  9b4509186af7824a874532fe9b1fa1ff56c5d6a6 (commit)
       via  11e74cc7be24d1365b0e2f483234e2bfc174e5d5 (commit)
       via  a1f6446d905795606ada30245a2e5508fff56b7a (commit)
       via  168b9f0d397c4b3d527622f1b882a20f396387fe (commit)
       via  f0c631a5cc9f7c28eadfe38b88794f7dc1ba910d (commit)
       via  e789d5100ad14cb58d398a45ea86fa9d79cce7a3 (commit)
       via  0b4e59f548fe5369ae4ef1be67a538ef7b46d7e5 (commit)
       via  0ffa422b3c08eaa45db1927514e561f3f2fb58fd (commit)
       via  c81d72e2ea5273c1288017fc4e056b13c64b26b2 (commit)
       via  c120f7e7db678dbaeab9c59fc734e7ed0442ff24 (commit)
       via  bda4b80e94640b52eddf917846ead43dfe95399b (commit)
       via  f059050a852d55d6d73ea9ba02599c4ba6bd733a (commit)
       via  88610552ef99ade36a507e694c73a1f227d75a27 (commit)
       via  b384aaa425ae0d7944de2f11cdce8c4857cb0684 (commit)
       via  c6dd4b3bac81698c4adbf7d2812bdd23953224ff (commit)
       via  be3d50655b0c0c94096f964938a004a1534af77b (commit)
       via  cb9086910026e52218a40ff261c125fbe33b5775 (commit)
       via  038dfee960c3f002ff82cecdde9a0ce9057bd266 (commit)
       via  b8db9995876888443836aba58f9a5e3dc3d4e4fd (commit)
       via  2159e8861b40f2ca5306961ce79caa5018eaabee (commit)
       via  bd9fd822f63a307a1ea67f8c92c0cfbe088170ac (commit)
       via  0fe183e528e6d125443de09c7fce0edb4220324f (commit)
       via  e71635c71530a909ad282fd28be0b7c9eb93d1a3 (commit)
       via  b38871b6d11d63c99ee4b54d783206e82c1cd479 (commit)
       via  225470f54d1f9ec6967e34a2456ac7e4500e51c8 (commit)
       via  d9fa2e11b8392826198b679f9b2a071fbffd8bed (commit)
       via  272511656f226712b9e547dc8ddc3d3e6243dae7 (commit)
       via  8fc51016f21e9b51b3d571ed24004101cdcafc2c (commit)
       via  dffba36daf3aebcf1bcb3ba1fbf37869beec5f5e (commit)
       via  1b151effe34418baf7ad220c473f5ed49e279f53 (commit)
       via  5b2e74940750a97c8ca6032aa0bd90e17eabd06a (commit)
       via  85e0809e35933da117410ba2acff4bf942a40cca (commit)
       via  45adbe17da5bbb26956b88aa8ed6733d9ef54e0d (commit)
       via  adf2d732ec81a4a38875dfcf978152d98b724b66 (commit)
       via  a810619825509cb21b54ada673af86ae1a616a27 (commit)
       via  0178097265f702c95e89b54f87e24096dae95a1a (commit)
       via  17ee676beafa21f0aee01cd5df73d396870df9f6 (commit)
       via  d404c9948d56baba276e58044ca6c8fc7da4c1ba (commit)
       via  ad9060d34495b30cf281643e308e861f77accd1e (commit)
       via  19b2d1cd52e2a6be003f2879599afdbdee6d67fa (commit)
       via  bbf2a5d76fccd38b8a660cfdce86146a635b1df1 (commit)
       via  57e9766e2f9cd3e715083ac9e00fa597b86f0d1f (commit)
       via  8d571e126576e868d4a2283c3b7a6c1dd7a3cdba (commit)
       via  8c16004887ad908aecbf1233a62b79ca221f0d1a (commit)
       via  f42ed062da2f0a842cc4a97810b87186fe31e4ac (commit)
       via  9c3af685e534b0e60915a87244c08cf4561204a0 (commit)
       via  6ce0a7d23e60deb31e63523c1093721a496cee76 (commit)
       via  5b5a3b9c3b7561e2a0bcb1bbc5d482e5ba4c63a5 (commit)
       via  56a87becd1e6b17d0a71356cbf988b84a36ed7c5 (commit)
       via  f3d09a31df795e7426117a01b3c07abca4b9d13c (commit)
       via  e163c03bccca565b31bc270384ba8f840ddff54d (commit)
       via  70ab1bae3df75d2230fe0fe4552cfa401f1de7b2 (commit)
       via  3790a17d54f830c401be73b248c2977dedcacb51 (commit)
       via  e268e6db4e8217bcbca5fffa19e33ce376dbcf37 (commit)
       via  5d74caca026dfcc6c4fddf643f077c58d3d7ee2e (commit)
       via  c1239533b9dc29a2d66281e910836a45ad20bffe (commit)
       via  62e23845323bd5c11431e9b3a37e93e4f0d6dbd4 (commit)
       via  1b0236cf8071bd2a6fc7656d88272a75497f2443 (commit)
       via  5871219c279de2f613b8f9f0ff88f10e29672722 (commit)
       via  890258dcba298b2e70fb90576e91db6037648675 (commit)
       via  66108cddf627997ab4c7a2feb513875521d30abb (commit)
       via  6037a7bc9cb97ee5f94e97364f62923a139840a0 (commit)
       via  4b36021d6cc5ffa4df03a22456a42938d01730d2 (commit)
       via  19d981503d0d4c7e9592df9aff4cecaac3d59bf5 (commit)
       via  7400c62b93c87ba3d4c712767db8d903fa7503ee (commit)
       via  24ebdf39aa1eb1b2d9cdfea2da06b07012315d58 (commit)
       via  1caae397ad8a01b4d49fb8404e92f0ac71472a52 (commit)
       via  b233ae189194a907c180a6c1eeb0135432ff5f2e (commit)
       via  8b9e044fdb23e1e8cb9ef7d698e98eedacdc09bc (commit)
       via  74d5d0616c4b8c59e33b2262ff03acce59e36ac3 (commit)
       via  d49b6d17c3291d5810b46e951333d2bf5a8ed101 (commit)
       via  ad16c21db7138387e37bb82af535eb438eeebbd1 (commit)
       via  a88e0ccbe365c6527e514fcedb0fe1ab62515ea0 (commit)
       via  280a13163ee4c50b706e61e0394973ad1d9c9606 (commit)
       via  7522c4279b7bad1eb17430144a0b0bc2001c50f1 (commit)
       via  3922628f1445ed93e6a4c9a851b549faebf09b27 (commit)
       via  3334f9a65f404227277fa8a43982142fc871ed09 (commit)
       via  7aa9fca11e546a568f26497dd65292a36ed8b55f (commit)
       via  610b8c5f65ae73a2dc623f3286d2d80ef9316ac9 (commit)
       via  3727a57d838899c31cfc714ae04ac2b52d356bf8 (commit)
       via  6ed11d3cf3341fc8171ecca81703ce4f730dc368 (commit)
       via  de417da1a5a36c488e08c7e36b892f1cc57af888 (commit)
       via  40787818b63b5832cac7f9bde38ecbe9162671df (commit)
       via  f4c134852fbf3fea74cd67a7fd93abb435cb60f6 (commit)
       via  1bad33bbd6f7ef0aa061f5c0e6f3070fc6b44b54 (commit)
       via  e24edb923d343a8a24268d8cc128c98fdb08f49a (commit)
       via  cea283925b5fe5c048a8cb605aedf199b61871b8 (commit)
       via  2f7401af42afbf4efab5f43879bf3f0836876a82 (commit)
       via  548e3c16b0a8d7fc0c44fa5dba5e73b873cc1218 (commit)
       via  e42d18030ebc6514e511063935714c8bd62d6f2d (commit)
       via  ed431311a22e01b9aa009e30c3da3628bfd2d257 (commit)
       via  97838be741bf0f0696869aa9054ba5c815f6659a (commit)
       via  8320cac24c50b59d31ad3662bd6c0f865e3e071a (commit)
       via  e9998a57f2e596c130e12397fb215a0ecfb5b541 (commit)
       via  b7a25f015b19fcc48c1c8434ebcbfc8bfb994065 (commit)
       via  fc0250b311d6e0374d82ac7521576730a4682171 (commit)
       via  e1c3eb5a9edce4b0abbe7edc09aa56496ad59bdb (commit)
       via  413dc639f91f01677baa3be5faed799a715e2702 (commit)
       via  de08c4c5b4eb3d6297c5f143c33bb01027b0d9e6 (commit)
       via  eceb616c2159fefdcffe5c2abefd015397f3cff8 (commit)
       via  6e8164427b83f9c258873d593fb391a5c34249a1 (commit)
       via  760c7425b6b12c9896806ea007f8dc64ad92b208 (commit)
       via  77ee8e42a4280a7dcfed9ce44787d953ed53a657 (commit)
       via  15f98c4c2d5be2c171814bb221f187148d51f6a0 (commit)
       via  6dca2ddb8c77e53bdf679a86b8b8bdacedc4041c (commit)
       via  aa75823c067b353c7086cb0e7406dd06e4ed6185 (commit)
       via  f22d1da9385b601b341f2d05919b8804d3c0a065 (commit)
       via  9bdde35f55e050c760446e13b35a5e78fa9b566d (commit)
       via  3ae89d5186880f3fa5fe0607a4857ad36edf2053 (commit)
       via  ddc6d9e6eb8554d010a17ada8114095a74a6019a (commit)
       via  c7ba9668884176fcba6fb34cc704d041ede0d7cd (commit)
       via  9cfb4cf12bde504f53af1d879b5c10835d2d839d (commit)
       via  4ae0ed06fc37ddd1c63c398d90b699d8ff534695 (commit)
       via  b278e56f9627d8013dd77f0dfacdfe884f415b6a (commit)
       via  0364b1abb8cfc57362325ca8a69371b3a27f4026 (commit)
       via  d9ec7f0bcd5d4fa8c3a0a5b1153599ecc0b59207 (commit)
       via  f7157905d7d45415a8895135867995bb376749c2 (commit)
       via  dd2d93d3f10c2e131cb832523fbe16c168c43d76 (commit)
       via  61372b38d994a4f2c64d04e0b36a8c5f4665b36c (commit)
       via  17bfcc98285a16b9037bdf3afd845475f9e37492 (commit)
       via  753f6e2deb8f31901e78254aeecb4814fa8185b7 (commit)
       via  326ca94acbe33ea2a3ebe2684b6d5bddf572ec6b (commit)
       via  da5f3d1a0ac94691392abb52ad6bab14d969a3c8 (commit)
       via  eedc18e1acd96c27225c1aff748b69247557f1b1 (commit)
       via  eb13c416c71177a706573543459dd4ebbddf78d1 (commit)
       via  678f62bc5711eec14f19e30209e597e06447e74e (commit)
       via  cdc5e7f5dab18d8b7edc7f32386b88473f04effa (commit)
       via  8c3aa8927fac6315cfc70866201fbe86f7c88e1e (commit)
       via  1659cf71cab0e13589ee0df187fb882c67c26770 (commit)
       via  b0ef40c5d28754b38a1c87830ad4e79cddcc7a60 (commit)
       via  a11fd40277ced9107b38c96d448b0f9c05c90029 (commit)
       via  0e53159ec3121205dc29b4823b89e4758a2450fe (commit)
       via  54ae7487246f70f7294279faaec4fbcd18b36d4e (commit)
       via  ff4faf0a215a32ae9139a81f564fa48a173e5fac (commit)
       via  353857b459a0e25839a6192d15b84bf0333a8655 (commit)
       via  32dcb427e0ad5f19d9865c26f719db0c53f93162 (commit)
       via  775d0c259d53707dd5235bbf2e728d930d2f5053 (commit)
       via  55d91ba2d84efe39e6b0230a449d42e44b737785 (commit)
       via  e619166ed137708b73bded16a4fc7870063c04fc (commit)
       via  c2ba25c0c7c68d0dc25b76745df15814a595c702 (commit)
       via  e5a1edefc49b864747e05aa1972c6797b3e1b1fa (commit)
       via  93229961336e85097aeff324582089595f7ad287 (commit)
       via  db434bde5680bc45a540d95dd3e340599081baf6 (commit)
       via  49182dcb676f2f21530eb940651d9117ba616392 (commit)
       via  67f55de84c3a33ce23b3d6cc9504390d170db42c (commit)
       via  60d9bbc8e40d6a0f1f3f7bbe873bbb12e85177e5 (commit)
       via  fdbfb151ea5b3d2646b2d2c992878cb5a484908a (commit)
       via  80206c9e7d88a9973a2ba66fc967e970224c5b64 (commit)
       via  a939c6ff54fa1f8ad49ba351844ec8fb4d37708d (commit)
       via  fb3e68bc8ee9a5b8129e778797424373a1d816a4 (commit)
       via  ab63b14c0d0d3369f88878a20209f9585feedb19 (commit)
       via  6d31be955476cefa406e1f513c950339c80e0fa7 (commit)
       via  65e17bced0173dae2d527499644279cd3345d393 (commit)
       via  44d822147c23da70ec1864def7ca82a4d8447992 (commit)
       via  7858570eb29b5d6da324801916e728e4541dec08 (commit)
       via  48eae09e4e383091fd1851fcb173e99f96f1b19a (commit)
       via  0794a12b94895d01e705e4dc35557b1cde696bfb (commit)
       via  f455f2ed019c6802623b73cba235edec6041320b (commit)
       via  23b6c7edc9947f7ed4e3c16dcc330f2070146e2f (commit)
       via  5b77c84dcd8cf6e421cc3b67b9b2d00f0fc4aa2e (commit)
       via  91219a8d61dcf20faf7e74058945fa5bf62200d8 (commit)
       via  51c688718547239462be093bdade3c4b9d77bd3b (commit)
       via  f4d5ba0b97b83668b18a480a545bc29108c6a073 (commit)
       via  739897c202d7a778579cde2a1bf45d027aa8d15a (commit)
       via  768c0b53b4430a8e68e23c116f1176f0d6fc9ad6 (commit)
       via  a64f18ef12b6d885b4f18b941be975147cb71eee (commit)
       via  dec92301c9074b51640e7c8229ee238be001aad4 (commit)
       via  42e0f40a6f12ccb88edbda1d11590c1698d91f99 (commit)
       via  ea5c343be128d5f5213281f6942c67082bd3e652 (commit)
       via  5bbaad4f549751b00721335e8935ddd259bc0e60 (commit)
       via  bc36bf2b60a8a2276502e46ab7cb2eac98d5585f (commit)
       via  d7f56aa837b18a01890f3048c5b36e01851953bd (commit)
       via  3f9a97e7ca1f18ffd2b2203a0bcfdd3795f1efc8 (commit)
       via  f61d5113cbb11e31cf355f6627c42b69f15c82d5 (commit)
       via  185ae9e19e2bc890fb07e95e86e25a0b2a7bf440 (commit)
       via  e1cca10d2f03bdd1e165d0a2a1a7ced1666e7a24 (commit)
       via  33247a20b4a2e2e156c0ae0ba1d6a19ef3d87065 (commit)
       via  115c14beb1a0c4bf09c8f4ff7bbfe4343a654fe7 (commit)
       via  29ade8c79e328cb9f0ed0f132386b4a55027661c (commit)
       via  8df62374836bca3caea03a40844436a0ecc96b3b (commit)
       via  615c76fe2edb678239d4a72445eb8c647ea4a9b9 (commit)
       via  c85473d763fe5109e49da955497a8058dc3b0b33 (commit)
       via  135a1278664011254f53660d71f3a296e5a77bb9 (commit)
       via  3341551f6a8aeae9b23dcbb78bdd8d0cf56295d5 (commit)
       via  b5c653d1e5d75917ebaf5572e65b6c1d38035bf0 (commit)
       via  7f3e6b58d65af405a52b7f41b70240256fcbc864 (commit)
       via  36287451144f0b5333f4906c9d0441f444b60a68 (commit)
       via  e8133bcf9b3314171647e9f40157349c53ce08fe (commit)
       via  833912f601dd7be2df60393826207e556b7d46b8 (commit)
       via  82833c2d55a3353cf17d9c10ccb6204fa9e3c340 (commit)
       via  f0a6e0c97ec0ada353b1d0f8e9b97986a0009ff1 (commit)
       via  2ffdc496e3c33e31361ea6a6f58ce8db3dcff78a (commit)
       via  b928647435da3e80181d526d37e05445088e0744 (commit)
       via  36c510391f90ca1190a4f3aef99c4e93a05153a7 (commit)
       via  d12bd4da1baab02258c66ada651861a82f72fc90 (commit)
       via  22e5b8501b097e43643c1e239f8f1c00df164a13 (commit)
       via  8158c272dacbe80ddaa1df176032cf252bcf4028 (commit)
       via  b871b6b5f4fb349f20d6ac1af7ec02c61db7cac5 (commit)
       via  363ddb36676e95059d28d1581cabc7220832a5e3 (commit)
       via  ff5ff7d123949393c6208253645f60b128688205 (commit)
       via  f037e98db220c39add7d8ab071128dbcba7f47be (commit)
       via  8915fd1d170f692e45e7508207552bbcea61c898 (commit)
       via  b5ba55d0e1d5a1a5dfbc35c48e668eb7f6852396 (commit)
       via  3effb4a4bfc3c3fb3670dc92a0db8641a87eee4b (commit)
       via  768fdc150e7a69427cf840a2bf9d287d67e33431 (commit)
       via  d6605d53d5f806ce63794d53fb2aa17db207dbf8 (commit)
       via  450d5803f76b97708527f25d68316511902aa0fa (commit)
       via  1051caf24b65c951f9f345bfb09feaae08476867 (commit)
       via  a57c0827fdb63e4a99b7bf3b261662ca4e241b2b (commit)
       via  ecc3822340f56d7b01b38fd9283a465a7cb37507 (commit)
       via  f722556ffecae78f992914d416a1ba0d625a2363 (commit)
       via  8d14f069c74ef1ba3b2d1d7d2bb664857e512062 (commit)
       via  1f2c7e01bcc089910a49afe56ede30b5df7f7aaa (commit)
       via  786dbc199e04d23ad74674617c65214fdd2b4906 (commit)
       via  08e386f834136bf52c7fe230c64e010ca8de9034 (commit)
       via  d8709cc4d7f426bb1bcf139938324a0b4236b8fc (commit)
       via  2bd4dd43bd063e6332e8a3eac0687c527e0d0529 (commit)
       via  cddf6cbc4976a82d3ba147abe50dd5f558954aa6 (commit)
       via  5f569477feb03811ee4688c6c04d1a87bc570216 (commit)
       via  0d21a4047da9a09547d2282e14fe91572def2a51 (commit)
       via  28d10efa3feb705eacac79dd3bc1c5f6323b0fbc (commit)
       via  dda7868acd82d81cb8b8dcd35a793f2d7c3b8a5b (commit)
       via  c7f45700a7c8b03236d1315b741e21acdcb87b2f (commit)
       via  43fe90ccec2fd594ec4ea0310d55c4b052226113 (commit)
       via  1b09f1d24bd2ec2618956b08a690b2e4eb86cf1f (commit)
       via  47a5afa4bab4d874640ec2350f0d8c92ba40f450 (commit)
       via  f656610bb6471a8cd4cf700f6d4542eb3f5eda2c (commit)
       via  d98c7fd86a104ac7d5f547bafb171e9f936b0cfb (commit)
       via  568566149909de8e065e8b20d27dd8cac0c25b59 (commit)
       via  c44ceec23654ce4c25204e7841f46ff9607754f2 (commit)
       via  800b791d6b1b18a500f7859aa219ff7863ebecfd (commit)
       via  27229053d46cbb9f5f1f14adc7fb6ca2d21ace98 (commit)
       via  727e4dd8d0e937c4c5f80a8dd05d4208b0fd0897 (commit)
       via  b8a2f0f91082fd5351755ff4877cd24542da49d3 (commit)
       via  7706098bf96c16d0804f0b5756509035282efad3 (commit)
       via  3773f48b9788d685421a398248dec955e6348d3b (commit)
       via  b77e84ef89fe44fda5988a66dfe28feb9f982025 (commit)
       via  e39c74ee2f7c5dc39a4aadd08dab41cfd399d57d (commit)
       via  876f65e3f9ab6e2a13168eefff118a8e92ff7245 (commit)
       via  5b04f37f36b1e6406419ad22d16b3b664d56ca1c (commit)
       via  33705e1b447dd338228b43559f390712691bb18f (commit)
       via  bc0292f1b126c051e242a8b9d1dbc15fe3eff532 (commit)
       via  52be309c07332d55a12e711c289443c238ca8c13 (commit)
       via  1cadaf5c724c36c683797fcbcdbbcf59ac30f43c (commit)
       via  861fab4769a6e2a6d314f66fddce79488f87e6b6 (commit)
       via  85b381e7f920dd7e44eaa04d3a22ec0bc7463889 (commit)
       via  d332870454bea2f2ebbb8d6cd71609699263ef21 (commit)
       via  d95e609590da2a33d95fd9259706b2079e048dd1 (commit)
       via  53f983dd8ff226912d9b7fd6c001fa40ed684e97 (commit)
       via  f98756478e3d5b065871952f21dd6f7f3e8c536e (commit)
       via  391c7716ee62d9afca011791dba7580c3acf6d04 (commit)
       via  eb447025b4a61921b9b08b4d36d40245d6a6fc4b (commit)
       via  7a0defee26fdf8ae599b64bea71179789d3bb020 (commit)
       via  27f1c6ca0eff044c90d889b72692fe87840d2d35 (commit)
       via  ce5c9353785c80883494d3f0c87556988bc45d5c (commit)
       via  0752ad5ea2f12e5a2c7e6ed6b9853bfcd996c4d1 (commit)
       via  fdc3bf40308a79876cf8698066abf196fe0c1040 (commit)
       via  71502792a96c27cef4e79dfa5da908c509ecb51b (commit)
       via  539e1d303b197024f942e1ac2c06122fa50b212c (commit)
       via  593865b32488c8060dc5a4faf57708fdbb43a733 (commit)
       via  88e17dc5a922e617eaab529e0c67db6b73f4dcde (commit)
       via  9bd6e61e3af6be8f1ae6e12763ac0a4b06ad7b54 (commit)
       via  964ec5a0b75673ec9080e75f5fb4e67c179baadb (commit)
       via  7cd21d05123241718142f2001eb634c26ed6bb49 (commit)
       via  dce352b1fe1f6e90fa3562b596720c124761d6eb (commit)
       via  c7e78f7382a1ff7af4f8af68d3f2a7cf3071c206 (commit)
       via  358ab71018ca03ffb8412590550b8a2f78453aeb (commit)
       via  03414b51330e441361cbb388d3b7d0a75fee5a90 (commit)
       via  c8a7b8b93bd0436ebbced621a6e4a30ba6922d6f (commit)
       via  eb0b15383b024770d3512bb2d82ecaeb4d4616bc (commit)
       via  473d383153733d6fa76d5af745bcc762d6671eee (commit)
       via  59ee26e2875cee35feccb5caec06f1ba70355e20 (commit)
       via  26aeaaa1ff7ef87e257aec9b1b8f64e3bf65fb5d (commit)
       via  828fcc8891fc6204d3605dbeaa4b09d9f6c110ba (commit)
       via  5b2edc13ada1bd5776d0bdaaaaf3d850dffb5d59 (commit)
       via  f7d3c45d51cfe3acf7bdbd219b27e012e653a8ed (commit)
       via  2d1fd74854fc34b595231d83f29766544344c59d (commit)
       via  d386f3ea9106732e979b1717f5b436ddb8ede021 (commit)
       via  28e1438a83b9fdf9ebdd898bc82385f9ce1e7c59 (commit)
       via  4fe13daada1068383e83710fdbcc46c2eeaba2c5 (commit)
       via  a1195d8e018c891796225e955fce7ee6b1eaeef7 (commit)
       via  d79a04dc4d0ef15365daea92eaca0e6a284ac211 (commit)
       via  e53585cb65541c1aa0d7daec2bc21cca470730d4 (commit)
       via  bd940d21685a0408d8683114a433fdb9e723318a (commit)
       via  d9b3f8fa5a4b253c72795c9490e722081095594b (commit)
       via  84c00fae497953153ff73a0569a793dcd4b2d0fb (commit)
       via  14d0075ba09c590f9878df39ac0f64acd39d6b1e (commit)
       via  6785089d1a0a015defcef79d6c166d0ba5afb21e (commit)
       via  ba170f2000de563a1ba990acc2895f38c070a3b9 (commit)
       via  e1f1fbafb27556150d2eced5da092f6285e6c0dc (commit)
       via  b4e123083bab2bd16a90b4e418fb996a73097712 (commit)
       via  8de13de5630725c5c81ca2ec783eac9b7ff28698 (commit)
       via  1bac428a4742cbf019bb54b8d11858ccce1d1d50 (commit)
       via  4ec2083bd082bcdfd4fbc6b77c6a2d865e6f026c (commit)
       via  7cda827c4bed615c4c6df4ab1fa094d417b3de2e (commit)
       via  2c095a8d87371b444ebfcc849c9c51f06bd9809e (commit)
       via  cac69f73c00fbac6870f4c28d704271287049366 (commit)
       via  f66390fee5d76b36d06e3706c6ff85d677849d4d (commit)
       via  4639a526f55fb733fa834944e3ebb4ca600f8a37 (commit)
       via  3a9416ef5f07693f8b17fda88386b5e84bc7075e (commit)
       via  b46ae388a63af7ae434fcf91342fc69ca145cc44 (commit)
       via  6171edd6b4a5ed8ddb3b3a7cf133bfe700921d50 (commit)
       via  68cbb3217d71a1907ed1949a05fd327f1278d032 (commit)
       via  522efd83ea4593bae3193ed44db1a3a5d762d67b (commit)
       via  b71fc9741a577fed3f3941d2f55cd99dc4ec8a4b (commit)
       via  aa655488f5aac79578953fb77865c0a799966eed (commit)
       via  96c0bb1520eccda8c58184a051d1dd8ab47d1eb9 (commit)
       via  a83155d5b3ca55cb3928629a6c50741ca0bb4a57 (commit)
       via  05131a01357d6b142fbb36cf7818a6e8735e5cba (commit)
       via  fe2019cc7889edd1b382071f4aef77bd639b6b35 (commit)
       via  b88ca08feff279cc7ca4f8198028c8e31674082f (commit)
       via  33ed28a078614162528229dc4e261cdd8140bee8 (commit)
       via  f79105ed90025e06482b9c31f7abc0a1f83f0eab (commit)
       via  f8a4ccd93e97d2faf2365adb470ecca18c31d55c (commit)
       via  79875bcfacab9e5d4472613cb41ee73138829148 (commit)
       via  3d392023f13a1c2dfe22a46028a8020cadc082cb (commit)
       via  de7f08184daf2c4b4428059a35d3aefe5d0fc912 (commit)
       via  c85255be1c3695267f1ce1ef463f2a66de261f08 (commit)
       via  23f008320b2dab478c614db46429999b24a63114 (commit)
       via  8a34b58d76892209b5c19f64ea85a64704dfc036 (commit)
       via  279adc2a18c4f7a71204524d9fba349a15fb1be2 (commit)
       via  c9a4efae4319cecf92da6ed871bf2caad9a40115 (commit)
       via  491b77b46d7562a8bd92f93c54b86e1b0d9f2c2e (commit)
       via  fddb6ef124ea344e923bd6863667ddd5ce8f1785 (commit)
       via  daea6deea6811d55032742e6508a780a79fbcc99 (commit)
       via  3e19938698261dbe749ce4eb023b3461961e2da8 (commit)
       via  b955e02552483ce93de04e77aedc6007f72276ca (commit)
       via  19c2eb96a1cf9415aecb2173e8b10b217984fc46 (commit)
       via  be46346bbc1de580ee396dcbdc16121421acbb68 (commit)
       via  bb9809a50af7c40155fe5c77e044e3cbd168a61f (commit)
       via  8f0f456330063b2a471a6b34aec5715f38e779fd (commit)
       via  7435a92b93a04c07dcd8ecc2e550bfd6918d7937 (commit)
       via  38a041bafce4aa3825e9d45fb87f06dfb166764d (commit)
       via  d2a26602e448c8b26aff94f2557febaa37b9e493 (commit)
       via  16646f9a3891337ff4920307fe0cf080f8a5c4ac (commit)
       via  276aa452e5589d9e328d50d5527963a813b4ba05 (commit)
       via  04e6519be31e694809b5a46706e917a78a50e89d (commit)
       via  3c30a281fcab51e4b19e3b18fbdb9d8b3f976aee (commit)
       via  3c606e809cc340b612acef02edd776dff0f0915f (commit)
       via  0edc0b41dfd586aec2c79aed04032df877a39486 (commit)
       via  fbed01b8eaeff993e7d5157d88fcae512de0e536 (commit)
       via  ef931d9f237a025b6ab57574cbdec2ca2f13a26d (commit)
       via  182b5371a7f0884361fe04fe44ef3d47f5d1686d (commit)
       via  a543ded57c73362322eb9a2e2c2e2fad6aa3d21b (commit)
       via  b65c732a30653599dadfd4950edf778f79b2cd48 (commit)
       via  609ca4ad18d876832c9373284079a488af035aca (commit)
       via  2ac1ddae1b2a19f32a35dbceedc839ff102f8732 (commit)
       via  061b0532d851053e987eeb602c8cc125f5440523 (commit)
       via  148a155a241de8cd1c70dcfaa8f7f1dd2d6919d3 (commit)
       via  7a394d5e472c82451b4be9833653aa1d0dd83a48 (commit)
       via  d75b0320d113b90107cca65900236ac18ad9cda0 (commit)
       via  b26695267b2a60b20a8500371c02c986411e1541 (commit)
       via  746021b703e663ef8153036695b4ec59e544cc1b (commit)
       via  8d840c0b60287e911cdd3b22d63858bdbe6b399c (commit)
       via  823b9cc86f62604d0856d9d88ce3c8a8c3883918 (commit)
       via  e8355a9a303c65a5a9dbdcb67b2723689332d21d (commit)
       via  0fcabc771dd178d4ba6fe984a1bc8ee6a7417ed6 (commit)
       via  e397e2f3bc258503b211ddde4a90881367add104 (commit)
       via  11ae63e42f7f59e5fe9d7d264ef80ebac7488465 (commit)
       via  f28082967d9b27823f4cfbf923cf10a49a76401b (commit)
       via  f985cce39e8045fcf089540cb82204d4bc45a9af (commit)
       via  a44e29eb282f4fbd8c864668c08c122e297ac849 (commit)
       via  5345069b86fdc821cafc0a62c2e4c8fe5043c7a4 (commit)
       via  6b1db06fa794add6f250402daa6443f43d15a0d6 (commit)
       via  6a93be5671a7e510851c563687adfeeb126f5a84 (commit)
       via  2fcc601fd9c45dc0f58f109c7cde4df9edbcf642 (commit)
       via  24170bbccd73e786a401f96ab07684dd4edfa0c5 (commit)
       via  72fb36b139cef29b11b5896b1c62c8661825ac75 (commit)
       via  341bb713127e29f8a2ea6364df12edd091a6762f (commit)
       via  1ea473810d140d94acf4642759398cf661745cee (commit)
       via  16433345755e5f45dbcc652ef74a44dd0f223842 (commit)
       via  eafcdfcbd6c8829784899682a77dc0d5212917fc (commit)
       via  388e34976b05f4983b8b02d9fa0c49c6ae7f0d8b (commit)
       via  225eebfad68ae9d8b37d1b50e7171d3e104b809d (commit)
       via  dc9a40217896ccc9e1405fde1f0f0d47af833100 (commit)
       via  026398df0ff033c383d3d3b79251bcb2a003d0ee (commit)
       via  a734beabb1a758341d265992d7ce9930a9461fdd (commit)
       via  b37ff24ab19a17e9ca166be09fcf6dfe6cb9162c (commit)
       via  e36d38fdd5f29b7599b1faaf33399265558dc1ce (commit)
       via  f0d10ac447db5c2d7c37a54bede35716aad19e5b (commit)
       via  0249b08bfd2da2a1a6b6cf4b309240493170bc5d (commit)
       via  34e7f7b8986619fd278fd9c8ad2f4c772f9d45c7 (commit)
       via  259b0dab2a9329da8cf256d35ce76a2d04378e82 (commit)
       via  351be4970246c312b6c6ff1587ebd56ffd1d1fe7 (commit)
       via  1c3a6ac22a27d99c718b87ba9521107e5a2afd1c (commit)
       via  a47ff8a7edb13894a0fd841d9fce1ac1952fdbe4 (commit)
       via  67b8104753d83908020a89052e8b69d0dc9e0b43 (commit)
       via  48a522a9e9068be5c329b86ef7da1b016289be24 (commit)
       via  4ea6c12e895daaa6114894538982cd394eb30d1a (commit)
       via  1e2c6b41ce0a1892d04a91aca27cd4ba952fbcdb (commit)
       via  17428a197bb794db1e35f25deb08ecd682b4800f (commit)
       via  9ee5f7205ea63d66958199914656ee751402e8dc (commit)
       via  83532a6ca2f7f856f7b25a41c00622c13a6c07e3 (commit)
       via  c5efe60ef5660eea3c395648a9caf91807a74c9c (commit)
       via  9da47b122097ec31437d2881cad47d115c35e018 (commit)
       via  16104fbe4f519a52d47a33268cb3078f23217483 (commit)
       via  2925b8835df5824b75fec7aac7e38d52a19882fc (commit)
       via  f15fa67ff2df0c7c147b7f61062fe6594d75be99 (commit)
       via  47b23cb4f3c2cfd9c4e5961f9e950a1fec3faee3 (commit)
       via  7f599cfe55b161dbefa5a4347e05b6ad4d3c7c7a (commit)
       via  d53ab4066745c4eed69c56e74c527415ed52d821 (commit)
       via  9f604baf27bda7591efc600d1667265933b1b649 (commit)
       via  e8e8dfbbc3858c420d1df1850f0646c1ec07287b (commit)
       via  e5512bf5d07a115a132a3f31b3c267be3c1eac35 (commit)
       via  6181cc424bca1bb2da0072f54bdaad756726137b (commit)
       via  407f252ee541f16305615dde48f5dfff416db338 (commit)
       via  409b58a88793dfa4f068749a41d0fa3add7d1aed (commit)
       via  45761bbb253306dc8cb1de8061ad9912eff63728 (commit)
       via  7f23c6d3fce74595d99651c2de7e194c17242bf4 (commit)
       via  f9ffd677d48707242e25ac739033225993fdbbbf (commit)
       via  d39c6bd879955a6aff5620a403262c1d8ca381ea (commit)
       via  33616d39f03343549c873eb543efb0166dedd39f (commit)
       via  22f6fae1bea072a2158a1ed6f508a73dbdb174be (commit)
       via  ab07a7a7e5dff57a1f160de4999e76b8ca16fbbc (commit)
       via  7cd327b36b8c771d2955756d23efd37516aaea5f (commit)
       via  e989599466437c46885a383ee0d7fedf94a9ddea (commit)
       via  38bd301a287ff7b4f3ff1ce21fae5ab219e1b886 (commit)
       via  316d9d9daea2b1a860ba94e20ec5e072dae966f2 (commit)
       via  f66c650f5d2d78d651a8f71170d218b821290475 (commit)
       via  9a65b8d64aa0efa2f7c659e34ac0c3236348d4b7 (commit)
       via  12dc0f817d5872ca14cf92e5296f2e56e5e8fa0b (commit)
       via  61fcad39ac3fecf9f4804a82d7db0c45f8a79466 (commit)
       via  0b7a6a08bd8b3ce22ee08d5469055e7a367b951e (commit)
       via  4f34ae7cd11ae0796076a271e33aa09fae7f12a3 (commit)
       via  6af1e88ef2c32e44fbe77f6d1266aecf8c283c24 (commit)
       via  cd4250035b599e9eaa87f657a19c45011da60325 (commit)
       via  a18199549c27dca4b4cc656ecb33cfb8126b3b40 (commit)
       via  5cff1ae0bf624a99ab4f3d6a6375ec46598cd8a9 (commit)
       via  a73aacd5a1d4df422779b6289d08c42577bfbb07 (commit)
       via  5f11c70895eae6a27750cc415f8c4125f2278e09 (commit)
       via  c8ad45194ff3487b131981574922580018c45ee2 (commit)
       via  5b0222f78370a74ca20040b768180b8bd454d7e5 (commit)
       via  286935114556d6dbf74a84be488a92b94f0d00a4 (commit)
       via  da7e06f29a989cf8dcf079d6487d17e110c79d23 (commit)
       via  2d87e0f5c6e3d98119f240538e8daaf760cf9706 (commit)
       via  6039975ca7438c0671185a19aabb8242f4c518b4 (commit)
       via  bd4a1d5ad1a72fa780a8b7fd6c365a5dad2e6220 (commit)
       via  c2a21bf8e87ce0eb054e5cdd307e354da46cb50d (commit)
       via  58ccbd79d0c83c0dd588d19937dbe636ea9f5daa (commit)
       via  d31c274147f9a765eb1e2d9386dcc497ddede8c4 (commit)
       via  d10b9069fb87680b48d746e5e1744d70746e81da (commit)
       via  0739e173efc599624e3101191dcd5ec7fe0f43e8 (commit)
       via  1ecdebc9ba31360cefac600af8708bd340497ade (commit)
       via  e9fe970b81806d03a4af33b82f5a04bca750d4f2 (commit)
       via  c971e016ff6fdcc31fc293d0660be90d689ea403 (commit)
       via  8b7dddfbf1c9b65eeae7356fa5233c88f6268479 (commit)
       via  b2904b1ae02ba850666c1ce74807762a3a828914 (commit)
       via  a2c34841336699b85d6fb84eb0eca40313e97238 (commit)
       via  9d71309a336c067a435da6fdc6775e97718a1036 (commit)
       via  6369388a0570002700aae0c016149c0cf030380d (commit)
       via  5cad77aabe41395e44fd6a5e990749782f541890 (commit)
       via  f42c05c46d3e0831ec34c5e60946f036895d5380 (commit)
       via  981b5409cb258a2ff72f50b1507a87073f46484a (commit)
       via  5096665d46b29acbae533adbce8f2f7b53543418 (commit)
       via  ba36e990612ee4474dfa6f925fe92e4388a859b9 (commit)
       via  af81c8c92b880a0988ab8e7768c3131e18c544e0 (commit)
       via  aeb97fca63aff3475253bb31b229da7f5df5dd05 (commit)
       via  ae2f74804cb4e8be2ca31f004437245888c07b0d (commit)
       via  805e5b532cccad95d600a487b476d33261aff2b4 (commit)
       via  f67064198ad618494b8345a62add7b03b2e010ab (commit)
       via  fe3ac3898b8719ece4ca73713748bbc3aa730ddf (commit)
       via  c5fa88d497310b925639f4deddebf45f1a276492 (commit)
       via  da2d6085f521928a6d09ec428be33619f9cfeed1 (commit)
       via  a31d9a2ed4a7ce35d75cfbe0302d7cbbf635d6eb (commit)
       via  8bc6c15d4939fa5d1aa5268746b5e78b1f71075b (commit)
       via  779c4f3de9bfdd20d86722707783856990967f5c (commit)
       via  eb91e2d147ea9bb68caa88847afbdf5fdb083d05 (commit)
       via  69766c694b11b2871b10e6dbe7ff74de5ba98fb5 (commit)
       via  8ff33eda96f143670038e07ab9e8e8940d81f282 (commit)
       via  1f18303d2a34ba65508785595aec5fd5eb7a6863 (commit)
       via  ee02dbf02f05ad8b8062cba21d968633d4527fdb (commit)
       via  f5559b422c1305ed46cc94779bee728ee2f01f67 (commit)
       via  0e7f25c704e4c09c4f71e164de6dd7c16bd50d80 (commit)
       via  c70ed8fc733ae7e37866a53370a479fb4e9420cf (commit)
       via  8c766d2e0e93abc8eeb090674268c9921a0ca463 (commit)
       via  15f3cbc2d42b220c44501c2e7d93288c315fe432 (commit)
       via  651739d474ff18b6cd5d116ecb7e5fc06ce130ac (commit)
       via  4b893ecec7069c9fbba3fc5e2e91b660108a7846 (commit)
       via  4dcad717d7aba3bff076c7db3bf6e6ec527d3a12 (commit)
       via  eb6a0b7149cafddf5bdb2650d3035ebf107e1e75 (commit)
       via  246a413e1b37af5a504af94070387189c1230b42 (commit)
       via  65864b67cad0318687b9ba182292ed7dc50a5950 (commit)
       via  a80b749085a54bb83c2d5cfce35c7870aab05031 (commit)
       via  b8aae277dc54889e123343b5ccaef11bf70a73e5 (commit)
       via  3c66d300d5517242a44bbd8790e1eac2953adef2 (commit)
       via  edfc351cc34413fbf6b999fd829e10a66f728ba5 (commit)
       via  f4dd7604c603c66aad885db47fa5b4a18fe742c3 (commit)
       via  2b752327e9528911861233ef78fe05e7f94a0896 (commit)
       via  bf49a9a9870f815b6fa89836fd07fbff3e1261ab (commit)
       via  a0d3ffe415ad276f9b3e07222261ec787155e6a8 (commit)
       via  b41e5145f6627565bfd2bd83d9483493460a0221 (commit)
       via  dbe71c27f20f9f0e33e4891a52cf69c482dad7ea (commit)
       via  f0a9746d2563e82e1cc08abc956d91d562c0cd20 (commit)
       via  82253dc54e100193b6d871247044ed2cb3426557 (commit)
       via  af50dbbd99976c8b1d8eac9219147dbd8c97046b (commit)
       via  7dd48d491534004efca6744c646c47675461e95e (commit)
       via  f37617d3f7f2f5ce0372120ce6515ae749373ab5 (commit)
       via  4dd125a3e64d25fd93d3d8e371926d82150ea9a1 (commit)
       via  247b9b5637e2210e4212ed6979fd493499829847 (commit)
       via  e4f650b81b4227a6178770bc5a033ec6a557bfa3 (commit)
       via  e1cb0829f6165a9cdbe73d0c75c6d992e9443acf (commit)
       via  90837ca14883c0ca8c2accd90c79abda4ede5898 (commit)
       via  7d55ecd3456e1cc2f1a330d0eda09a460aa1212a (commit)
       via  2cac8d15a956023255138df5c4240b6f4f3b045e (commit)
       via  d757e6cc25aa2c5ace65f39bec0fa7510263ffa1 (commit)
       via  538f4ad7d2a818f6116c2ec4b3cad7b7ee2faecd (commit)
       via  dd16cf3641508379a977c37b25fbbae93358bc40 (commit)
       via  50dcfdbd4369365d3b3e13916a79dab1ff4f0de9 (commit)
       via  82ad7e39db95d0d2865955562c39e744aef15cf4 (commit)
       via  d5f19447257ea19a42be037dd5ab4965d7f603a2 (commit)
       via  bcd7044182d6a5aec435c788463fcfcd11bb104e (commit)
       via  46ba6b31697296638c0eb459a558ed0256531b69 (commit)
       via  73bf71aeb035f3491b06c8560fea2dd37fb8dee2 (commit)
       via  0d11d9e4acb9e4b87a1b520da39c8ee98432209e (commit)
       via  efd168a05406ba85b7e859648288ccfee6eb9513 (commit)
       via  023c8a807c837c532b49d4591c55b7b94869a893 (commit)
       via  3d9544608a9d62139e4c93d54dc62a516a0543e8 (commit)
       via  af18dda2237c6960634a4b56a55e16e9001442d0 (commit)
       via  2bdfa5845c6d276e660ce6920a1a4e2e14b1dc18 (commit)
       via  1c736895edeb107f2444e3acb5810887ac6fc9c5 (commit)
       via  924a4c41a4c07e69c3ff645d6fcdf67b5c633a53 (commit)
       via  994c1aaa3dcb76842989204912b4d34634b4b571 (commit)
       via  d7a10601c9cd97269fb06319f8b84ebb6301f0c4 (commit)
       via  e7b41cd70a8fcfb478e9b0ac46677ccdb11bb7e5 (commit)
       via  c337ebdeddaf1358724119909e1a87a7f5e1347c (commit)
       via  ba30c20ad8110d93daf78924cc71d132b47bad83 (commit)
       via  55d22e968f3bab49cc7813c9297442e1482f0747 (commit)
       via  d109b7c59967399d7ff7a2c118e6df629c7fdd38 (commit)
       via  acb47b1bd2367a68fa27ca6a7326d34806a90df1 (commit)
       via  dc6f7f1bfe41a5a8f5b322f8d0c9afbf4a1e2b71 (commit)
       via  5a096ac019a5dee66ba5d4079b5551339ecda71a (commit)
       via  879c6e82914253376a32f2926be546acb4430f29 (commit)
       via  f02d6e2252b790314ac9d196a8a5010f2a596457 (commit)
       via  c17814d00d38132c71db50b633c7d357707c1f5d (commit)
       via  d846af7c88e9a252bd38745494336bf026749d56 (commit)
       via  31299c75ade5369ce96f95b335ea4d0f3adf6c44 (commit)
       via  f8da07234ac4ab8be39093412c91837f16fe2058 (commit)
       via  cdbd6cb47c1d0caaba89bbfcd0e1512fa163009d (commit)
       via  928d390950ec45504fb945c8258d4c9d0c525799 (commit)
       via  3be95e18becd748db32af240bf9e451c74793f90 (commit)
       via  807452d3d625fdd7b5ca5a230d8cd2ab42794217 (commit)
       via  f7baf9b74ca670a3f7dc9519938a22ec2455b57e (commit)
       via  e9408561cc6c5720dccf8ef0f8d74b199e9489d8 (commit)
       via  829fecc5520d3352e068b8fe14765644873f3623 (commit)
       via  5815bfcc8721f09471dda47e0261565866ea5111 (commit)
       via  27859020727c15dd6ab5aaf9d3b0597263c012fc (commit)
       via  7e326d1c6674e92f871685df1057be6238a34b95 (commit)
       via  a6cd6ca7b0e6849c5e298c8c857f61ed1411b965 (commit)
       via  4b88eb80e743c7cadb796ff55992f93ed6c85e21 (commit)
       via  3984f1eb16dfd6bfc09f76390428befd28ca59e0 (commit)
       via  6b57816fbe9ee6c4a7a849220c471ba2d7d40a20 (commit)
       via  2e977bb91d2c1d05231504a707616ccb16ad9668 (commit)
       via  f64df96b8109817e18602491ea870b22a4a0c53d (commit)
       via  40cd06be8fa19a8b4e7090d1e25936afa9d65832 (commit)
       via  4aea34b9df92ad230c5fff1f8b26decb5d1b9b38 (commit)
       via  9df3256a9333d1618ae53c60a90d89788286c763 (commit)
       via  169977c59d04ed52a06fb087462cfb4f5ea1b5c0 (commit)
       via  cdd8bc3f35756a2da4d173de513cbb713650a352 (commit)
       via  ab194fadae4c6f155b571d3d6a2abfc8167f5c06 (commit)
       via  e13f3ed4eb0a660553e7f5c99bacbc607f150865 (commit)
       via  c652372db5a1ee85bcef9b9ca7fbaa6e6d3e3a23 (commit)
       via  15b9247da395f271eef6e35905d7f0e6ba6ccbe5 (commit)
       via  02b4b62a1447f31cce4f1bbe8f0d6b886b28bcb3 (commit)
       via  024b45ed1a5f2d74806912391986d2e9ffc20557 (commit)
       via  c4072be985588a9b4154f818faafa7c6aa456048 (commit)
       via  9bc91ffa4b218e289772524379e2ed2fbaf4f5e0 (commit)
       via  6b5f91ec9e381a49d16b044ffea49aceb97fa76d (commit)
       via  8f9818d4253a54e031ab3b77cfea00069ca0bde2 (commit)
       via  a9e06855b7600a78cf2c191cca3a43d41137e8aa (commit)
       via  fc9b641e200357b61bb445c17e4734c539b75db4 (commit)
       via  0017255490572dc4860a6a7a4503017c5a581d4e (commit)
       via  5ce1429e15b2769e91ad99e8731ffd13e8417039 (commit)
       via  db3ac4c219347057d4a1dcf6425dd6997dfccfaa (commit)
       via  61b885fb854c8a1bd0b238774f16a34351dfe068 (commit)
       via  6289ff40b45154755c61a66b5b3d13ec8a5566f6 (commit)
       via  783c5b6d6484b937a03fcef5b3ad8d3e26d054fa (commit)
       via  5821230c75636c63c441b4016e46657a3d43dc34 (commit)
       via  f70754b571868a9d678b9a8a5b255c24846a707a (commit)
       via  4f4b76fa4cdd622d000e18722f94b9658e86ee3f (commit)
       via  f8da936a70765cb306a0f7029b84d36acfbaaf77 (commit)
       via  ebdbd5b31a1a80675513f2e488af27a16b8209dc (commit)
       via  619e0ac7a7b2c6be6794c28571e46795a557a48d (commit)
       via  9ae48df8e8eefbd30407cc1c8c19f912620ed3e0 (commit)
       via  27fca19d8b63bd4263af159926c57d441772a223 (commit)
       via  2d5c8e5fc30db0ebb2f05cc21a18c81a5ec5102f (commit)
       via  aeb027a9efa56e47e07b2b9cebf37ac4da754c0a (commit)
       via  6a60072d2c0739c974975a0605768a2893b82233 (commit)
       via  2fb24c457ee05e80cf70234c502b949d679fd25c (commit)
       via  cf33a223a548bb1b00cc296cbc1431d091427a2a (commit)
       via  7634f486d660f1c381b458b17fb132a9416793a1 (commit)
       via  6cb07a65071c4b7a7ce6c73d62891a5ff15581c6 (commit)
       via  8f6aa46d5d6a978fd9f2a0386c724ee77ad829b2 (commit)
       via  83119130104f0fb80a0e54bd70c434a91971dccc (commit)
       via  79b8d211260749153febaf0aad71bd7a33603a44 (commit)
       via  15d13e5a3f3c1fccec6f4ba4be7770d28a4e0319 (commit)
       via  ae12de54cfc5345c4d8aeebb6803628ac54a9338 (commit)
       via  faff82ec5ecb49c62806c11a9a98b45309ca4562 (commit)
       via  6a3955227dc20f1b76bc582dd5c17bdd58154f12 (commit)
       via  95de40a45a01e098e03e1197a63a8be6f5ebe5b4 (commit)
       via  e80ed4bcfbfec74f254d688790a3bfaec269f380 (commit)
       via  ff030ddf673214397ba644ccd860beb7274b2db4 (commit)
       via  09375a6668ed359479c3ce436d8f1cebb01261e3 (commit)
       via  7394aa3c6976e32d18d0eb9646fc121d1db78c8e (commit)
       via  d6b525d3033b05a19fadd124b137a6c004790db6 (commit)
       via  2190baea5145324ab0d66d33331c152479225ac5 (commit)
       via  845ed973ca22a6ba50e5d875605e1a1bc68741b9 (commit)
       via  a82a657d8ed123b0a50568089e46249005231f42 (commit)
       via  5d760f62bc03d12147a40405fb93b7072e28070d (commit)
       via  b3f529be05e469798648f1f4821538cdfcb489ea (commit)
       via  1905d6a86382298eac7678eb28028efb14339bec (commit)
       via  69db500cb06caf272f5199f56079fb5c703b360c (commit)
       via  77ba8b1198f8bbfe71ccfa6b698723ec27d092fd (commit)
       via  0501e4acb2082c4ac58093889e679a687a0567e3 (commit)
       via  946411077c83933c513c15af8970ba066dfe0ffc (commit)
       via  3965c81efe604106a4899324e9057d49959161a1 (commit)
       via  5ee05fdf365e7d9abb1024bd1906f520bc9835de (commit)
       via  5d3c4759d292ef801d937c7739451c303b354df7 (commit)
       via  2c3bc8e16d224819c52be524be289927d5edadba (commit)
       via  5fc0a4379eb44f69d62d98d8a9b72b14256da4d2 (commit)
       via  bd479e3d39b12a97a3a521c244e14af659068f94 (commit)
       via  a21db56c42752e7e708e4eda484d0fffed5ec8e2 (commit)
       via  563aa26032783d5ae9b036207c5936fc35319046 (commit)
       via  24fdadd552fd9833dc30a0f3456cdb01475ccf6f (commit)
       via  2d5c3abead3f72c457d886b92b3fbd977d273191 (commit)
       via  de61cdf9325366dcb03431f43ac7e9a7fb35c404 (commit)
       via  1d0e4c15b9973278586e4df89d17120c8bf2b743 (commit)
       via  90d54ffbd9c3a36d3a3a51f2c5a44d203fb03a8f (commit)
       via  bf14c959aaf31490131af0e7f313955e6ff96929 (commit)
       via  e84e3024e097071e7ffdfd7eadcba901b4292ce2 (commit)
       via  03423d9220ac09562f587ed243a9f8bc3c4c41dc (commit)
       via  400148367601e939388a304084f8abdc3da87cdd (commit)
       via  5e18dc30daf94106aa2de1795805ff9d7f2ee315 (commit)
       via  99c3470ec372426c1865f5f16433ffa9561833f3 (commit)
       via  9125af3e625dc238961a2d3465cebbaf610f2bb7 (commit)
       via  01f7a66a5f284295f89ae8ea81603bd20a4d74a1 (commit)
       via  7b3d13dc59ab5b31ed51014f5758344473eae74f (commit)
       via  35b6482274fd0880ef6ddb2555cf462ebbe18443 (commit)
       via  1fcae72c7b175aa2a7afc178e7f19199f12abe6f (commit)
       via  a3cd4fa48af016fe3214924281b289f79dae48e9 (commit)
       via  208e08e13bb68f34c21e2af8113a09d65d3c6005 (commit)
       via  f28099c7e57186b8b19581d319fef9fa07ed98d0 (commit)
       via  39a6d5891ebdd42012efd943b091fed981566d5a (commit)
       via  d20a3a42a496a0f135ff5628f06cd58d29f302c0 (commit)
       via  940506501b7b0acdba97ea67e6ceaca155457f5a (commit)
       via  34ca5374bda48a2d222d568f18a4b64c89f4f3bc (commit)
       via  6c4104ee9c49f319cec3536d443a090a9c75db74 (commit)
       via  88df846ab902d410641876a95587fcb5c79e2eef (commit)
       via  d64de2bc59704e6135cc54cb34f764b447b9f838 (commit)
       via  5bad4f03739e95821ee0c8111bfa6430e736a878 (commit)
       via  57ff67b159902934c8903d0259eb7df92d05a22a (commit)
       via  991def1a5a07ca88c0dafdeffc5eea398c366b67 (commit)
       via  5a93885127c677bec55ec0fdbdbdf088d447dbd3 (commit)
       via  1d9ff18a80d7f02e5b8ce74a9295b68df841bcb9 (commit)
       via  546c5271c94fbee9735e1770b0b6328a6bf4e1fd (commit)
       via  606fffd9289fef4635adbcc13e5af49f7c7ca46d (commit)
       via  2cb979041a563c2409a1eccca34fb38166b0cc24 (commit)
       via  fa9d442cc4365bd0b9d031a214d9ad43281e3e82 (commit)
       via  ee6e5ed78b4df242b815efc4816934e5ba968867 (commit)
       via  b32f64fe96c67a5a2454b2475aa99997852b1d73 (commit)
       via  7f63e083d9aa841dc858b39ea0ebba21dd2bc9e3 (commit)
       via  952f86d4e489e0a5b3e1990e1769725297882430 (commit)
       via  a8445383a9e54842591026fbdc7ace5e06e03e56 (commit)
       via  2fcda9570ddd036e09f73a69a4b4f3acdf5001c2 (commit)
       via  e09f5a739c740423a3a34346bf1ad27b52843d2f (commit)
       via  df9b0453b31a121cf38d9d1d0707ce82b92b37bd (commit)
       via  bb04ad5c00e7af8f7bfe127bc601eb97541e3f82 (commit)
       via  9b5603048b81d1172aca395004ea70806c7b7c45 (commit)
       via  9885e75a56adb0434b999cfc028f1595e0f56467 (commit)
       via  aed7b55787bab06a1278c81090b54df64fab9170 (commit)
       via  c238cbb7cfb47b5690abe0c5d5d7232302d415ef (commit)
       via  f808ca00e468f39358ad29d13ed858798ffebeaf (commit)
       via  87281ba3141fa0e8c0ffc36cef3725406b74e039 (commit)
       via  54b11e66e1c0ac71ca58ab657df8de089dd7d94b (commit)
       via  fcbcb5ea7d610ec66a892a83bc6e7e075011cb9b (commit)
       via  e19898ab11ee23dc602aab001d549ffa8c2d5809 (commit)
       via  b2da6a4d5a89300d0dcaae4872a2accf74f8c999 (commit)
       via  fd656731d3c9548a520cb485e874336764fdba2a (commit)
       via  aecaf575a8b2e4be943ce64199253d6acb9ded25 (commit)
       via  c428e725ac50127a98e7a0f3a27b67e559448d6a (commit)
       via  d4ba6fa85481d46a606d21719fa2ef986de8d243 (commit)
       via  6900e1aa4f949fc55e1daa60d1a5094d2d6deb7d (commit)
       via  c2704136296089eb6898ef65e70f2645e5cd520b (commit)
       via  c64507c50de860b369d2815078a396c639b252a8 (commit)
       via  ba8a917b8476cf450eab354a5f2f3ea7eac77b78 (commit)
       via  173174311be166bcbd34eb6ae3ff86a62d83c44e (commit)
       via  eb72aeea1bbd729e7b6102214acadda3e22adabd (commit)
       via  a3c0ce6a6f9feb76e4cf498bcab033bd396c0912 (commit)
       via  88b595974744cad79fa4bc2492a796c6037eea49 (commit)
       via  62fef9141ba3762d716da47b068733750d6a1fbc (commit)
       via  380df8cf82757675e2e90e481ac082161f4a7de8 (commit)
       via  e7d36445b1a12319f16aae1a9b2c2654bf857087 (commit)
       via  5fd8d0cfe78019492af8ce45ae368ec83068eedf (commit)
       via  7c44803d3cd394e07d9def47cac9396ea83384ff (commit)
       via  aa1855930f066044f5904ffaeb6040193c4ac2a6 (commit)
       via  d2e79b5f82bc153b4ed2852b17608066b4e363eb (commit)
       via  6568b5feaacb99cabd542e8b132cba01588d82d0 (commit)
       via  d95c380fcb745aa048b6210bbda449d9c9d2c8cb (commit)
       via  19d4654c61491d6cc249acd06d48650e5999cf2c (commit)
       via  323c04c3bde3910c416ad2de83faa56d5175753c (commit)
       via  fabfacbdccb8ad58cc335156d8984ec824b10e14 (commit)
       via  0149fc8cf39fc46a26e4d27061adfbb1cd3b3db8 (commit)
       via  82d63cc3a963725f9fb059b1ada0b8f4a3db6a09 (commit)
       via  01d23d439b1b718f5436aa6612ae3c28964f92da (commit)
       via  aa1a3f6b6af5141bcd8b85162e4e4f4472e387fe (commit)
       via  16a9b200ec52a98dbcd2bae938118be80a2d1bb3 (commit)
       via  96e07b9c90a7de1052630b76f6eecbb72807a5ac (commit)
       via  9c55087771f5f61c7b900a053832b3880f12490c (commit)
       via  a4d13c8c8fabc5230d7bce3053edb875c94c0851 (commit)
       via  2eb4c392993aab86ca9c62f3efdc82a9cb47ad92 (commit)
       via  6db55adb1d8cbd763d4f8085c800a94934b1b1a5 (commit)
       via  f1272c682e69f9d21f71d14505b07c4bbeef9d9c (commit)
       via  c97c0af09f952ce9b4bd1423f2a8d29778e13597 (commit)
       via  95e46fae5ef3817fb9c8ff615b039f94e929ff31 (commit)
       via  3fefbbcf24a1ca725af515663fcecb11bcab73f2 (commit)
       via  15ce645a9490d47134d992e42abcd6d5fa043ba9 (commit)
       via  b17e0e0c8172aaa257e707cdead617c48842a6dc (commit)
       via  a4d219cd80b28fdbe1fe5148e6134bf987a925e1 (commit)
       via  11323c2da0ddada9693f3a59ca17471e6b88d098 (commit)
       via  b4fd85bbfdf853b0636d4e10524b14804ebc7cf8 (commit)
       via  9d3c40b757de1164508b92e854787cf8c44ab6b0 (commit)
       via  3a376ddcaec52407acc1997d47273ae85de6216c (commit)
       via  dbec49b6382e96766b5241cc5b246ecdd241b39f (commit)
       via  2d21d18bdd9b04c54cd823bc69d010b6572c03ac (commit)
       via  f2a7a6e4431ec0341c6b7d189847206b2cc5c27a (commit)
       via  f35f0b0e11237c3a26d2c325a905803e3bbdedf6 (commit)
       via  0c2318019bc4d9e2da8f1cda717985d99dd7f3ec (commit)
       via  8e6796282c965aa82acd405588de104ff9aba46e (commit)
       via  7d2b6f05afbb4e776b7cff666f5e19b398d1bf0f (commit)
       via  da3d0bb163473912697d6d63c6b3d6be12d39c54 (commit)
       via  e0e68eed5f4e9a9d981b1a77fd88be2144b482ed (commit)
       via  994f4831714d845ff6b60cd4cc13fee102e6490b (commit)
       via  a78b324c5121633114792cbf4cf51321e1aa6e15 (commit)
       via  0a8380d0d89ec7f34c76def60e8b92bc8b430ee9 (commit)
       via  59098f3c0547480de1c39e6c4d6024c433260720 (commit)
       via  95e3bbed181ecb3497213ad01f07927e04737071 (commit)
       via  024b92d39f405ff00e2e80beb46110dd4fc84998 (commit)
       via  6dc91224bcaf7ddd8760b85d1ea2735bdae3d77b (commit)
       via  045d989df3d269ac4c6544dd43bb4ea74ce78b7b (commit)
       via  946a15b38e1a4ecda05de7c229f545bc89926a01 (commit)
       via  f55317bac2ddd2a7d6e9af8aeb96d8973d592c70 (commit)
       via  cf5a1d9a9f67bd6cd2b2e60a3a4820d2b8e0d61c (commit)
       via  0ce3bef47bea90c85f852b703e581b800491e4e0 (commit)
       via  846079eae421aa86d8f0fef4ecb0fc43c0b9ff2e (commit)
       via  e74a906d5e98625c4ea1cebef86ec0432ccf4f51 (commit)
       via  56ddd5bcfc0e0f01346b61e58ec4d259f989f030 (commit)
       via  6921e816127c46e3c230527c758a860c755209be (commit)
       via  3241365d21d9e3fae7a240dddc13b09e5fdb9f61 (commit)
       via  14bc46e8c7f4575e417996e50dc8fdc865d3d875 (commit)
       via  d9bd8067f18a0727fc565930aa7ca2cc57c86877 (commit)
       via  af49c4fe26bd6d2fd59dd809e58d552414eb7d71 (commit)
       via  a85ba428a81672882a84f6972db8a8863347c76b (commit)
       via  2e90f85aa70efbced770f25b2dd00ceb5523db49 (commit)
       via  c6ce4ef32d7666c82fc2719a495351e79c6e1059 (commit)
       via  87246d93dc3a2f124f3e8e96d4da12d72430bda5 (commit)
       via  b96a405c1eaff7bfce72a293ec36399bd27cb08f (commit)
       via  a853d6c49a12b5264f60e40cff8876f4e275f2d9 (commit)
       via  94eea5780909a9d30441e4be338d77fbc7011307 (commit)
       via  c11a65bcf3255c3b118670cad787c9a632184607 (commit)
       via  afa8bf3c6d33754796653e2c87707689e948eb61 (commit)
       via  4dd53089f613f9378937a40f3a41c3df70523245 (commit)
       via  56e5482fd462a465cd327c7d15d69c599ea9f720 (commit)
       via  7c06a4e23dc0441b960b588bbd33d1ba75ecb419 (commit)
       via  4d50564919a37fbe381c0d3757a291038ffe7c98 (commit)
       via  50cc5fb3ea44d4f44bf1ebfc20fdf115f75912c9 (commit)
       via  d839197498efe76c5c1520c2b047365428cde009 (commit)
       via  8e63568a6a434a1a5f7f700ce7d29d7b1ad959b7 (commit)
       via  0922e6c7949081bb659e69d2766fefeaf211b795 (commit)
       via  eaac2b9c7887ab748585df9ddde753ed7cc6ea09 (commit)
       via  20581e3aa78525b3093766a4a4f853004d4cabb1 (commit)
       via  6e7084c54b1b952369d42e32191d7e6ae82edb57 (commit)
       via  fc690f4170e60d7b93c42d2a207ef9be3636f36d (commit)
       via  cfe7cd15c623430376081fb50b87d7bee944e6d8 (commit)
       via  d92b8dc9be76cfe9ef95f48d0b2ad4d47efaf37c (commit)
       via  e1c26aad7197824975d93aaff65481dfeba6b3bc (commit)
       via  2536f826e7e88f9a793d80e75dd14dd20f381632 (commit)
       via  8bb18a681511b8e1a9f3111fc40c209e352453f0 (commit)
       via  838d70f6008d72244339fa72ca9f47045076ea0c (commit)
       via  25e38430292668b25dc08980e150960a2a87ea57 (commit)
       via  f1f1c266f5b50db83cc097233fffaf9116062413 (commit)
       via  d0eb8943bf38fb074a77693ad338dd93a1483c62 (commit)
       via  f50c312089299801ba6bd0b1e042ead5e317a2d1 (commit)
       via  7ee50449123543e28a2c53ce3614ba03a2e2cb4e (commit)
       via  472bedc253bbecb253fb492d28ef172bece424f5 (commit)
       via  876b90365fd5b3809335b43243cb936ba58600a2 (commit)
       via  cb47de1fd8fbb3b58a718eddf89be17009e09a04 (commit)
       via  243027ecf1d6f984ef1efb1147c09b0aa813c57e (commit)
       via  99f224896c2d2e9fb710dd0ebdc0243af0e44cd9 (commit)
       via  b598915cc8e2ab2c75b3cd2be3c8890a5a666566 (commit)
       via  84964ca79118d87ef9b771cb44d71640d21d641c (commit)
       via  bdfb58208ce5db3326c52759b9356cd260acfab6 (commit)
       via  0b2d9e52bab46014f163406ab19d42df57ff1fdd (commit)
       via  7a6987c8067ead23cd81b8f0099b311b73e8289c (commit)
       via  2e8398624b8021059ff989f5b9f22343a757e7e6 (commit)
       via  54842f078bb71d35e1c612cb7c25dcc02ada2ac4 (commit)
       via  a799e31d35ce258fd7fff55e8fadd64ba1402b78 (commit)
       via  8ea1f81b21f35cdc87ac55d567408e7d749ec135 (commit)
       via  aeacea42a1a7e497794e43b652404ad502a62afe (commit)
       via  8bf3e8e8a8beeaf02f5b95fc3fb913870e82e850 (commit)
       via  9118615653caf02818aea18cf32979772df471f2 (commit)
       via  5cac9af89e9786d9e9bd88205f59c31a9e1caba9 (commit)
       via  645f982c8f5e08fa539f24abbb4af87e67d26592 (commit)
       via  47aeeb9403a2851a3c9e508eecadb8ed9acb13c6 (commit)
      from  f61264d080ab77cf185608396ae0961fc7ebe986 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 71c8c45600c381c6c54451ce67e373ac93d5d0c4
Author: Ralf Wildenhues <address@hidden>
Date:   Tue Dec 8 22:33:21 2009 +0100

    Update NEWS.
    
    * NEWS: Update.
    
    Signed-off-by: Ralf Wildenhues <address@hidden>

commit b1c42762931e9cd03aee3e4b4284dc2920c9eabc
Author: Jim Meyering <address@hidden>
Date:   Tue Dec 1 22:48:15 2009 +0100

    do not put world-writable directories in distribution tarballs
    
    * lib/am/distdir.am (distdir): Do not make all directories
    group- or world-writable.  Instead, use 755.
    * NEWS: Update.
    
    Signed-off-by: Ralf Wildenhues <address@hidden>

-----------------------------------------------------------------------

Summary of changes:
 .cvsignore                    |   15 +
 AUTHORS                       |    3 +
 COPYING                       |    6 +-
 ChangeLog                     | 7653 ++++++++++++----------------------
 ChangeLog.1996                | 3678 ++++++++++++++++
 ChangeLog.1998                | 2185 ++++++++++
 ChangeLog.2000                | 2204 ++++++++++
 HACKING                       |   25 +-
 Makefile.am                   |  158 +-
 Makefile.in                   |  717 ++--
 NEWS                          |   26 +-
 README                        |    2 +-
 README-alpha                  |    4 +-
 THANKS                        |   77 +-
 TODO                          |  440 ++-
 acinstall                     |   35 -
 aclocal.in                    |  205 +-
 aclocal.m4                    |  499 ++-
 ansi2knr.1                    |   36 -
 ansi2knr.c                    |  609 ---
 automake.in                   | 9336 ++++++++++++++++++++++-------------------
 automake.texi                 | 1926 +++++++---
 clean-hdr.am                  |   25 -
 clean-kr.am                   |   25 -
 clean.am                      |   34 -
 comp-vars.am                  |   22 -
 compile.am                    |   43 -
 config.guess                  |  973 -----
 config.sub                    |  956 -----
 configure                     |  291 +-
 configure.in                  |   31 +-
 data-clean.am                 |   18 -
 data.am                       |   37 -
 dejagnu.am                    |   44 -
 depend.am                     |   37 -
 depend2.am                    |   59 -
 dist-vars.am                  |   22 -
 elisp-comp                    |   49 -
 footer.am                     |   20 -
 header-vars.am                |   70 -
 header.am                     |   34 -
 java-clean.am                 |   25 -
 java.am                       |   33 -
 kr-extra.am                   |   31 -
 lib/.cvsignore                |    1 +
 lib/Automake/.cvsignore       |    1 +
 lib/Automake/Makefile.am      |    4 +
 lib/Automake/Makefile.in      |  211 +
 lib/Automake/Struct.pm        |  600 +++
 lib/COPYING                   |    6 +-
 lib/Makefile.am               |   26 +
 lib/Makefile.in               |  369 ++
 lib/am/.cvsignore             |    1 +
 lib/am/Makefile.am            |  142 +-
 lib/am/Makefile.in            |  218 +
 lib/am/ansi2knr.am            |   74 +
 lib/am/check.am               |   76 +
 lib/am/clean-hdr.am           |   11 +-
 lib/am/clean.am               |   29 +-
 lib/am/comp-vars.am           |   22 -
 lib/am/compile.am             |   31 +-
 lib/am/configure.am           |   92 +
 lib/am/data.am                |   67 +-
 lib/am/dejagnu.am             |   68 +-
 lib/am/depend.am              |   23 +-
 lib/am/depend2.am             |   90 +-
 lib/am/distdir.am             |  276 ++
 lib/am/footer.am              |    2 +-
 lib/am/header-vars.am         |   32 +-
 lib/am/header.am              |   21 +-
 lib/am/install.am             |   70 +
 lib/am/java.am                |   69 +-
 lib/am/lang-compile.am        |   52 +
 lib/am/lex.am                 |   28 +
 lib/am/library.am             |   10 +-
 lib/am/libs.am                |   63 +-
 lib/am/libtool.am             |   23 +-
 lib/am/lisp.am                |   95 +-
 lib/am/ltlib.am               |   51 +-
 lib/am/ltlibrary.am           |    6 +-
 lib/am/mans-vars.am           |    6 +-
 lib/am/mans.am                |   56 +-
 lib/am/multilib.am            |   31 +-
 lib/am/program.am             |    8 +-
 lib/am/progs.am               |   59 +-
 lib/am/python.am              |   77 +
 lib/am/remake-hdr.am          |   42 +-
 lib/am/scripts.am             |   71 +-
 lib/am/subdirs.am             |   45 +-
 lib/am/tags.am                |   79 +-
 lib/am/texi-vers.am           |   45 +-
 lib/am/texibuild.am           |   59 +
 lib/am/texinfos.am            |  294 +-
 lib/am/yacc.am                |   37 +
 lib/ansi2knr.c                |  236 +-
 lib/compile                   |   99 +
 lib/config.guess              |  827 +++--
 lib/config.sub                |  586 +++-
 lib/depcomp                   |  411 ++
 lib/elisp-comp                |    9 +-
 lib/mdate-sh                  |    7 +-
 lib/missing                   |  109 +-
 lib/py-compile                |   92 +
 lib/texinfo.tex               | 2120 +++++++----
 lib/ylwrap                    |   88 +-
 library.am                    |   21 -
 libs-clean.am                 |   25 -
 libs.am                       |   47 -
 libtool.am                    |   39 -
 lisp-clean.am                 |   25 -
 lisp.am                       |   39 -
 ltlib-clean.am                |   25 -
 ltlib.am                      |   38 -
 ltlibrary.am                  |   19 -
 m4/.cvsignore                 |    1 +
 m4/Makefile.am                |   12 +-
 m4/Makefile.in                |  191 +-
 m4/as.m4                      |   11 +
 m4/auxdir.m4                  |   44 +
 m4/ccstdc.m4                  |   11 +-
 m4/cond.m4                    |   22 +-
 m4/depend.m4                  |  130 +
 m4/depout.m4                  |   50 +
 m4/dmalloc.m4                 |    6 +-
 m4/error.m4                   |    8 +-
 m4/gcj.m4                     |   11 +
 m4/header.m4                  |   80 +-
 m4/init.m4                    |  109 +-
 m4/install-sh.m4              |    7 +
 m4/lex.m4                     |   10 +-
 m4/lispdir.m4                 |   47 +-
 m4/maintainer.m4              |    6 +-
 m4/make.m4                    |   40 +
 m4/minuso.m4                  |   21 +
 m4/missing.m4                 |   38 +-
 m4/mktime.m4                  |  167 -
 m4/multi.m4                   |   45 +-
 m4/obstack.m4                 |    8 +-
 m4/protos.m4                  |    8 +-
 m4/ptrdiff.m4                 |    2 +-
 m4/python.m4                  |  129 +
 m4/regex.m4                   |   49 +-
 m4/sanity.m4                  |   22 +-
 m4/strip.m4                   |   11 +
 m4/strtod.m4                  |   10 +-
 m4/termios.m4                 |    4 +-
 m4/winsz.m4                   |    4 +-
 mans-vars.am                  |   18 -
 mans.am                       |   61 -
 mdate-sh                      |    2 +-
 missing                       |  109 +-
 multilib.am                   |   45 -
 program.am                    |   25 -
 progs-clean.am                |   25 -
 progs.am                      |   37 -
 remake-hdr.am                 |   43 -
 remake.am                     |   24 -
 scripts.am                    |   52 -
 stamp-vti                     |    7 +-
 subdirs.am                    |   78 -
 tags-clean.am                 |   31 -
 tags.am                       |   45 -
 tests/.cvsignore              |    3 +
 tests/ChangeLog               |  850 ----
 tests/ChangeLog-old           | 1441 +++++++
 tests/Makefile.am             |  366 ++-
 tests/Makefile.in             |  577 +++-
 tests/aclibobj.test           |   33 +
 tests/aclocali1.test          |   23 +
 tests/acoutnoq.test           |    2 +
 tests/acoutput.test           |    2 +
 tests/acoutput2.test          |   25 +
 tests/acoutqnl.test           |    2 +
 tests/acouttbs.test           |    2 +
 tests/acouttbs2.test          |    1 +
 tests/amassign.test           |   14 +
 tests/ansi.test               |    3 +-
 tests/ansi2.test              |    1 +
 tests/ansi3.test              |   12 +-
 tests/ansi4.test              |   27 +
 tests/ansi5.test              |   80 +
 tests/asm.test                |   73 +
 tests/backsl.test             |    1 +
 tests/backsl2.test            |   15 +
 tests/badprog.test            |    1 +
 tests/canon.test              |    1 +
 tests/canon3.test             |    1 +
 tests/canon4.test             |    1 +
 tests/canon5.test             |   37 +
 tests/ccnoco.test             |   85 +
 tests/check.test              |   21 +
 tests/colon.test              |    2 +
 tests/colon2.test             |    2 +
 tests/colon3.test             |    2 +
 tests/colon4.test             |    2 +
 tests/colon5.test             |    2 +
 tests/colon6.test             |    2 +
 tests/colon7.test             |   12 +-
 tests/comment2.test           |    1 +
 tests/comment3.test           |   16 +
 tests/compile_f_c_cxx.test    |    1 +
 tests/cond.test               |    7 +-
 tests/cond10.test             |   33 +
 tests/cond11.test             |   41 +
 tests/cond12.test             |   83 +
 tests/cond13.test             |   39 +
 tests/cond14.test             |   36 +
 tests/cond15.test             |   45 +
 tests/cond16.test             |   52 +
 tests/cond18.test             |   60 +
 tests/cond19.test             |   74 +
 tests/cond20.test             |   38 +
 tests/cond3.test              |   33 +-
 tests/cond4.test              |   42 +-
 tests/cond5.test              |    3 +-
 tests/cond8.test              |   20 +
 tests/cond9.test              |   31 +
 tests/condincl.test           |   28 +
 tests/condincl2.test          |   24 +
 tests/condlib.test            |   28 +
 tests/conf2.test              |    3 +
 tests/confdeps.test           |   21 +
 tests/confh.test              |   17 +-
 tests/confh2.test             |    2 +
 tests/confh3.test             |    2 +
 tests/confh4.test             |   32 +
 tests/config.test             |    3 +
 tests/confincl.test           |    1 +
 tests/confsub.test            |    2 +
 tests/copy.test               |   10 +
 tests/ctarget1.test           |   28 +
 tests/cxx.test                |   20 +
 tests/cxxansi.test            |   29 +
 tests/cxxlibobj.test          |    1 +
 tests/cxxlink.test            |    1 +
 tests/cxxnoc.test             |    1 +
 tests/cxxo.test               |    3 +-
 tests/cygwin32.test           |    6 +-
 tests/dash.test               |   14 +
 tests/defs                    |   61 +-
 tests/defun2.test             |    1 +
 tests/dejagnu.test            |    3 +-
 tests/dejagnu2.test           |   17 +
 tests/depacl.test             |    2 +-
 tests/depcomp.test            |   35 +
 tests/depcomp2.test           |   45 +
 tests/depdist.test            |   42 +
 tests/depend.test             |   11 +-
 tests/depend2.test            |   81 +-
 tests/depend3.test            |    5 +-
 tests/depend4.test            |   25 +
 tests/dirname.test            |   43 +
 tests/discover.test           |    2 +
 tests/distcommon.test         |   27 +
 tests/distdir.test            |    8 +-
 tests/distname.test           |   35 +
 tests/double.test             |   15 +
 tests/dup.test                |   17 -
 tests/dup3.test               |   17 +
 tests/empty.test              |    2 +-
 tests/empty2.test             |   21 +
 tests/empty3.test             |   18 +
 tests/empty4.test             |   24 +
 tests/exeext.test             |   34 +
 tests/exeext2.test            |   25 +
 tests/exsource.test           |   18 +-
 tests/ext.test                |   24 +
 tests/extra.test              |    1 +
 tests/extra4.test             |    5 +-
 tests/fo.test                 |    2 +-
 tests/fortdep.test            |   27 +
 tests/fpinst2.test            |    2 +
 tests/fpinstall.test          |    2 +
 tests/gcj.test                |   20 +
 tests/gcj2.test               |   18 +
 tests/gcj3.test               |   21 +
 tests/gnits.test              |    1 +
 tests/header.test             |   31 +
 tests/implicit.test           |    3 +-
 tests/insh.test               |    2 +-
 tests/insh2.test              |    3 +-
 tests/install2.test           |   39 +
 tests/installsh.test          |    6 +-
 tests/instdata2.test          |   75 +
 tests/insthook.test           |    3 +-
 tests/instman2.test           |   16 +
 tests/interp.test             |    3 +-
 tests/interp2.test            |    1 +
 tests/ldadd.test              |    4 +-
 tests/ldflags.test            |   37 +
 tests/lex.test                |   16 +-
 tests/lex2.test               |    3 +-
 tests/lex3.test               |   69 +
 tests/lex4.test               |   24 +
 tests/libobj.test             |    3 +
 tests/libobj10.test           |   31 +
 tests/libobj2.test            |    3 +
 tests/libobj4.test            |    1 +
 tests/libobj5.test            |    1 +
 tests/libobj6.test            |    3 +
 tests/libobj7.test            |    3 +
 tests/libobj8.test            |    3 +
 tests/libobj9.test            |   31 +
 tests/library.test            |    1 +
 tests/libtool.test            |   24 +
 tests/libtool2.test           |   41 +
 tests/link_c_cxx.test         |    1 +
 tests/link_dist.test          |   37 +
 tests/link_f_c.test           |    1 +
 tests/link_f_c_cxx.test       |    1 +
 tests/link_f_cxx.test         |    1 +
 tests/listval.test            |   27 +
 tests/ltdeps.test             |   45 +
 tests/ltlibobjs.test          |   25 +
 tests/make.test               |   47 +
 tests/makevars.test           |   19 +
 tests/man.test                |   16 +
 tests/mclean.test             |   16 +
 tests/mdate3.test             |    1 +
 tests/mdate4.test             |   33 +
 tests/nodep.test              |   26 +
 tests/nodepcomp.test          |   11 +
 tests/nodist.test             |   28 +
 tests/noinstdir.test          |   31 +
 tests/nolink.test             |   28 +
 tests/nostdinc.test           |   21 +
 tests/number.test             |    1 +
 tests/objc.test               |   22 -
 tests/obsolete2.test          |   13 +
 tests/output.test             |    2 +
 tests/output2.test            |    2 +
 tests/output3.test            |    2 +
 tests/output4.test            |    2 +
 tests/output5.test            |    1 +
 tests/package.test            |    1 +
 tests/parse.test              |    3 +
 tests/pluseq2.test            |    4 +-
 tests/pluseq3.test            |   13 +-
 tests/pluseq4.test            |    1 +
 tests/pluseq6.test            |   19 +
 tests/pluseq7.test            |   23 +
 tests/pluseq8.test            |   23 +
 tests/ppf77.test              |   20 +
 tests/pr2.test                |   26 +
 tests/pr72.test               |   26 +
 tests/pr87.test               |   62 +
 tests/pr9.test                |   37 +
 tests/prefix.test             |    1 +
 tests/primary2.test           |    1 +
 tests/python.test             |   15 +
 tests/ranlib.test             |    1 +
 tests/recurs.test             |    1 +
 tests/recurs2.test            |    3 +-
 tests/remake.test             |    2 +
 tests/remake2.test            |    2 +
 tests/remake3.test            |   24 +
 tests/scripts.test            |    2 +
 tests/sinclude.test           |    2 +-
 tests/sourcesub.test          |   19 +
 tests/space.test              |   15 +
 tests/specflags.test          |   35 +
 tests/specflags2.test         |   40 +
 tests/specflags3.test         |   33 +
 tests/specflags6.test         |   38 +
 tests/spell2.test             |    1 +
 tests/stamph.test             |    1 +
 tests/stamph2.test            |   29 +
 tests/stdlib.test             |    1 +
 tests/subdir.test             |    1 +
 tests/subdir2.test            |    1 +
 tests/subdir3.test            |   25 +
 tests/subdir4.test            |   58 +
 tests/subdirbuiltsources.test |   62 +
 tests/subdircond.test         |   24 +
 tests/subobj.test             |   27 +
 tests/subobj2.test            |   24 +
 tests/subobj3.test            |   52 +
 tests/subobj4.test            |   41 +
 tests/subobj5.test            |   33 +
 tests/subobj6.test            |   75 +
 tests/subobj7.test            |   25 +
 tests/subobj8.test            |   30 +
 tests/substref.test           |   50 +
 tests/substtarg.test          |   34 +
 tests/suffix.test             |   21 +
 tests/suffix2.test            |   36 +
 tests/suffix3.test            |   23 +
 tests/symlink.test            |    6 +-
 tests/symlink2.test           |   13 +
 tests/symlink3.test           |   18 +
 tests/tagsub.test             |    1 +
 tests/target-cflags.test      |   65 +
 tests/target.test             |    1 +
 tests/texinfo.test            |    3 +-
 tests/texinfo10.test          |   25 +
 tests/texinfo8.test           |   40 +
 tests/texinfo9.test           |   20 +
 tests/vars.test               |   15 +
 tests/vartar.test             |   24 +
 tests/version4.test           |   11 +
 tests/vtexi.test              |   39 +-
 tests/werror.test             |   11 +
 tests/xsource.test            |    8 +-
 tests/yacc.test               |    1 +
 tests/yacc2.test              |   70 +
 tests/yacc3.test              |   37 +
 tests/yacc4.test              |   77 +
 tests/yacc5.test              |   70 +
 tests/yacc6.test              |   37 +
 tests/yacc7.test              |   42 +
 tests/yaccpp.test             |    1 +
 tests/yaccvpath.test          |  101 +
 texi-vers.am                  |   45 -
 texinfo.tex                   | 5484 ------------------------
 texinfos.am                   |  205 -
 version.texi                  |    7 +-
 ylwrap                        |  123 -
 417 files changed, 33691 insertions(+), 23792 deletions(-)
 create mode 100644 ChangeLog.1996
 create mode 100644 ChangeLog.1998
 create mode 100644 ChangeLog.2000
 delete mode 100755 acinstall
 delete mode 100644 ansi2knr.1
 delete mode 100644 ansi2knr.c
 delete mode 100644 clean-hdr.am
 delete mode 100644 clean-kr.am
 delete mode 100644 clean.am
 delete mode 100644 comp-vars.am
 delete mode 100644 compile.am
 delete mode 100755 config.guess
 delete mode 100644 config.sub
 delete mode 100644 data-clean.am
 delete mode 100644 data.am
 delete mode 100644 dejagnu.am
 delete mode 100644 depend.am
 delete mode 100644 depend2.am
 delete mode 100644 dist-vars.am
 delete mode 100755 elisp-comp
 delete mode 100644 footer.am
 delete mode 100644 header-vars.am
 delete mode 100644 header.am
 delete mode 100644 java-clean.am
 delete mode 100644 java.am
 delete mode 100644 kr-extra.am
 create mode 100644 lib/.cvsignore
 create mode 100644 lib/Automake/.cvsignore
 create mode 100644 lib/Automake/Makefile.am
 create mode 100644 lib/Automake/Makefile.in
 create mode 100644 lib/Automake/Struct.pm
 create mode 100644 lib/Makefile.am
 create mode 100644 lib/Makefile.in
 create mode 100644 lib/am/.cvsignore
 create mode 100644 lib/am/Makefile.in
 create mode 100644 lib/am/ansi2knr.am
 create mode 100644 lib/am/check.am
 create mode 100644 lib/am/configure.am
 create mode 100644 lib/am/distdir.am
 create mode 100644 lib/am/install.am
 create mode 100644 lib/am/lang-compile.am
 create mode 100644 lib/am/lex.am
 create mode 100644 lib/am/python.am
 create mode 100644 lib/am/texibuild.am
 create mode 100644 lib/am/yacc.am
 create mode 100755 lib/compile
 create mode 100755 lib/depcomp
 create mode 100755 lib/py-compile
 delete mode 100644 library.am
 delete mode 100644 libs-clean.am
 delete mode 100644 libs.am
 delete mode 100644 libtool.am
 delete mode 100644 lisp-clean.am
 delete mode 100644 lisp.am
 delete mode 100644 ltlib-clean.am
 delete mode 100644 ltlib.am
 delete mode 100644 ltlibrary.am
 create mode 100644 m4/.cvsignore
 create mode 100644 m4/as.m4
 create mode 100644 m4/auxdir.m4
 create mode 100644 m4/depend.m4
 create mode 100644 m4/depout.m4
 create mode 100644 m4/gcj.m4
 create mode 100644 m4/install-sh.m4
 create mode 100644 m4/make.m4
 create mode 100644 m4/minuso.m4
 delete mode 100644 m4/mktime.m4
 create mode 100644 m4/python.m4
 create mode 100644 m4/strip.m4
 delete mode 100644 mans-vars.am
 delete mode 100644 mans.am
 delete mode 100644 multilib.am
 delete mode 100644 program.am
 delete mode 100644 progs-clean.am
 delete mode 100644 progs.am
 delete mode 100644 remake-hdr.am
 delete mode 100644 remake.am
 delete mode 100644 scripts.am
 delete mode 100644 subdirs.am
 delete mode 100644 tags-clean.am
 delete mode 100644 tags.am
 delete mode 100644 tests/ChangeLog
 create mode 100644 tests/ChangeLog-old
 create mode 100755 tests/aclibobj.test
 create mode 100755 tests/aclocali1.test
 create mode 100755 tests/acoutput2.test
 create mode 100755 tests/amassign.test
 create mode 100755 tests/ansi4.test
 create mode 100755 tests/ansi5.test
 create mode 100755 tests/asm.test
 create mode 100755 tests/backsl2.test
 create mode 100755 tests/canon5.test
 create mode 100755 tests/ccnoco.test
 create mode 100755 tests/check.test
 create mode 100755 tests/comment3.test
 create mode 100755 tests/cond10.test
 create mode 100755 tests/cond11.test
 create mode 100755 tests/cond12.test
 create mode 100755 tests/cond13.test
 create mode 100755 tests/cond14.test
 create mode 100755 tests/cond15.test
 create mode 100755 tests/cond16.test
 create mode 100755 tests/cond18.test
 create mode 100755 tests/cond19.test
 create mode 100755 tests/cond20.test
 create mode 100755 tests/cond8.test
 create mode 100755 tests/cond9.test
 create mode 100755 tests/condincl.test
 create mode 100755 tests/condincl2.test
 create mode 100755 tests/condlib.test
 create mode 100755 tests/confdeps.test
 create mode 100755 tests/confh4.test
 create mode 100755 tests/copy.test
 create mode 100755 tests/ctarget1.test
 create mode 100755 tests/cxx.test
 create mode 100755 tests/cxxansi.test
 create mode 100755 tests/dash.test
 create mode 100755 tests/dejagnu2.test
 create mode 100755 tests/depcomp.test
 create mode 100755 tests/depcomp2.test
 create mode 100755 tests/depdist.test
 create mode 100755 tests/depend4.test
 create mode 100755 tests/dirname.test
 create mode 100755 tests/distcommon.test
 create mode 100755 tests/distname.test
 create mode 100755 tests/double.test
 delete mode 100755 tests/dup.test
 create mode 100755 tests/dup3.test
 create mode 100755 tests/empty2.test
 create mode 100755 tests/empty3.test
 create mode 100755 tests/empty4.test
 create mode 100755 tests/exeext.test
 create mode 100755 tests/exeext2.test
 create mode 100755 tests/ext.test
 create mode 100755 tests/fortdep.test
 create mode 100755 tests/gcj.test
 create mode 100755 tests/gcj2.test
 create mode 100755 tests/gcj3.test
 create mode 100755 tests/header.test
 create mode 100755 tests/install2.test
 create mode 100755 tests/instdata2.test
 create mode 100755 tests/instman2.test
 create mode 100755 tests/ldflags.test
 create mode 100755 tests/lex3.test
 create mode 100755 tests/lex4.test
 create mode 100755 tests/libobj10.test
 create mode 100755 tests/libobj9.test
 create mode 100755 tests/libtool.test
 create mode 100755 tests/libtool2.test
 create mode 100755 tests/link_dist.test
 create mode 100755 tests/listval.test
 create mode 100755 tests/ltdeps.test
 create mode 100755 tests/ltlibobjs.test
 create mode 100755 tests/make.test
 create mode 100755 tests/makevars.test
 create mode 100755 tests/man.test
 create mode 100755 tests/mclean.test
 create mode 100755 tests/mdate4.test
 create mode 100755 tests/nodep.test
 create mode 100755 tests/nodepcomp.test
 create mode 100755 tests/nodist.test
 create mode 100755 tests/noinstdir.test
 create mode 100755 tests/nolink.test
 create mode 100755 tests/nostdinc.test
 delete mode 100755 tests/objc.test
 create mode 100755 tests/obsolete2.test
 create mode 100755 tests/pluseq6.test
 create mode 100755 tests/pluseq7.test
 create mode 100755 tests/pluseq8.test
 create mode 100755 tests/ppf77.test
 create mode 100755 tests/pr2.test
 create mode 100755 tests/pr72.test
 create mode 100755 tests/pr87.test
 create mode 100755 tests/pr9.test
 create mode 100755 tests/python.test
 create mode 100755 tests/remake3.test
 create mode 100755 tests/sourcesub.test
 create mode 100755 tests/space.test
 create mode 100755 tests/specflags.test
 create mode 100755 tests/specflags2.test
 create mode 100755 tests/specflags3.test
 create mode 100755 tests/specflags6.test
 create mode 100755 tests/stamph2.test
 create mode 100755 tests/subdir3.test
 create mode 100755 tests/subdir4.test
 create mode 100755 tests/subdirbuiltsources.test
 create mode 100755 tests/subdircond.test
 create mode 100755 tests/subobj.test
 create mode 100755 tests/subobj2.test
 create mode 100755 tests/subobj3.test
 create mode 100755 tests/subobj4.test
 create mode 100755 tests/subobj5.test
 create mode 100755 tests/subobj6.test
 create mode 100755 tests/subobj7.test
 create mode 100755 tests/subobj8.test
 create mode 100755 tests/substref.test
 create mode 100755 tests/substtarg.test
 create mode 100755 tests/suffix.test
 create mode 100755 tests/suffix2.test
 create mode 100755 tests/suffix3.test
 create mode 100755 tests/symlink2.test
 create mode 100755 tests/symlink3.test
 create mode 100755 tests/target-cflags.test
 create mode 100755 tests/texinfo10.test
 create mode 100755 tests/texinfo8.test
 create mode 100755 tests/texinfo9.test
 create mode 100755 tests/vars.test
 create mode 100755 tests/vartar.test
 create mode 100755 tests/version4.test
 create mode 100755 tests/werror.test
 create mode 100755 tests/yacc2.test
 create mode 100755 tests/yacc3.test
 create mode 100755 tests/yacc4.test
 create mode 100755 tests/yacc5.test
 create mode 100755 tests/yacc6.test
 create mode 100755 tests/yacc7.test
 create mode 100755 tests/yaccvpath.test
 delete mode 100644 texi-vers.am
 delete mode 100644 texinfo.tex
 delete mode 100644 texinfos.am
 delete mode 100755 ylwrap

diff --git a/.cvsignore b/.cvsignore
index 9413f98..0100bfd 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1 +1,16 @@
+Makefile
+aclocal
+automake
 automake.info*
+automake.dvi
+config.cache
+config.log
+config.status
+configure.scan
+automake-[0-9].*
+*.log
+log
+diffs
+automake.vrs automake.cps automake.tr automake.op automake.cv
+automake.ov automake.toc automake.pg automake.ky automake.tp
+automake.vr automake.fn automake.cp automake.aux
diff --git a/AUTHORS b/AUTHORS
index 49de6bb..591f31a 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -5,3 +5,6 @@ Wrote sh version of automake.in.
 
 Tom Tromey.  Touched all ".am" files.
 Rewrote automake.in
+
+Alexandre Oliva.  Some of the user-side dependency tracking system.
+Some more random hacking.
diff --git a/COPYING b/COPYING
index d60c31a..60549be 100644
--- a/COPYING
+++ b/COPYING
@@ -2,7 +2,7 @@
                       Version 2, June 1991
 
  Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+                       59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  Everyone is permitted to copy and distribute verbatim copies
  of this license document, but changing it is not allowed.
 
@@ -291,7 +291,7 @@ convey the exclusion of warranty; and each file should have 
at least
 the "copyright" line and a pointer to where the full notice is found.
 
     <one line to give the program's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
+    Copyright (C) 19yy  <name of author>
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
@@ -313,7 +313,7 @@ Also add information on how to contact you by electronic 
and paper mail.
 If the program is interactive, make it output a short notice like this
 when it starts in an interactive mode:
 
-    Gnomovision version 69, Copyright (C) year  name of author
+    Gnomovision version 69, Copyright (C) 19yy name of author
     Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
     This is free software, and you are welcome to redistribute it
     under certain conditions; type `show c' for details.
diff --git a/ChangeLog b/ChangeLog
index bc43c55..35a4fe3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5942 +1,3691 @@
-1999-01-14  Tom Tromey  <address@hidden>
+2009-12-08  Ralf Wildenhues  <address@hidden>
 
-       * automake.in (handle_configure): Compute $header_dir based on
-       $one_name, not $one_hdr.  Reported by Erez Zadok.  Fixes
-       confh2.test.
-       (handle_configure): Compute relative path to input header
-       correctly in all cases.
+       * NEWS: Update.
 
-       * automake.in (handle_tests): Avoid error messages from dejagnu
-       test rules.  From Karl Heuer.
+2009-11-28  Jim Meyering  <address@hidden>
 
-       * automake.in (handle_texinfo): Add `/' to end of $conf_dir.
+       do not put world-writable directories in distribution tarballs
+       * lib/am/distdir.am (distdir): Do not make all directories
+       group- or world-writable.  Instead, use 755.
+       * NEWS: Update.
 
-       * Makefile.am (AUTOMAKE_OPTIONS): Added `1.4'.
+2001-08-27  Tom Tromey  <address@hidden>
 
-       * texi-vers.am ($(srcdir)/address@hidden@): Find @TEXI@ in srcdir.
-       From Alexandre Oliva and Erez Zadok.
+       * automake.texi (A Shared Library): Clarify installation
+       requirement.
+       (Install): Typo.  From Adrian Bunk.
 
-       * automake.in (create): Renamed from touch.
-       (handle_configure): Use create, not touch.
+       * automake.texi (Macros): Typo fix.
+       From Christian Cornelssen
 
-       * config.sub, config.guess: New versions from autoconf.
+       * tests/ansi3.test, tests/ansi5.test, tests/ccnoco.test,
+       tests/cond4.test, tests/cond16.test, tests/cond18.test,
+       tests/cond19.test, tests/depcomp2.test, tests/depend2.test,
+       tests/lex3.test, tests/pr87.test, tests/subobj3.test,
+       tests/substref.test: Clear CFLAGS.
 
-       * mkinstalldirs: New version from autoconf.
+2001-08-27  Tom Tromey  <address@hidden>
 
-1999-01-12  Tom Tromey  <address@hidden>
+       * automake.texi (Yacc and Lex): Mention lex, not yacc.
+       From Alexey Mahotkin.
 
-       * config.sub, config.guess, COPYING, texinfo.tex: New versions
-       from FSF.
+       * tests/yacc7.test: Use test -f, not test -e.
 
-1999-01-11  Marcus G. Daniels  <address@hidden>
+2001-08-27  Adrian Bunk  <address@hidden>
 
-       * automake.in (PATH_PATTERN): New variable:
-       (INCLUDE_PATTERN): Use it.  Ignore all include commands using 
-       symbols besides $(top_srcdir) and $(srcdir).
+       * automake.texi (etags): Typo fix.
 
-1999-01-11  Alexandre Oliva  <address@hidden>
+2001-08-27  Guido Draheim <address@hidden>
 
-       * automake.in (handle_dist_worker): avoid failure in `make dist'
-       if last file is a builddir-only file
+       * automake.in : restrict ansi2knr option to be a filepath
 
-1999-01-11  Alexandre Oliva  <address@hidden>
+2001-08-23  Tom Tromey  <address@hidden>
 
-       * missing (autoheader): `s' was missing from sed script; grr
+       * configure.in: Upped to 1.5.1a.
 
-1999-01-11  Tom Tromey  <address@hidden>
+2001-08-22  Tom Tromey  <address@hidden>
 
-       * remake-hdr.am (@STAMP@): Reverted timestamp change.
-       ($(srcdir)/@address@hidden): Likewise.
+       * configure.in: Released 1.5.
 
-1999-01-10  Tom Tromey  <address@hidden>
+       * automake.texi (Conditionals): Mention that conditionals must
+       always be invoked.  For PR automake/220.
 
-       * Makefile.am (scriptdir): New macro.
-       (script_DATA): Likewise.
-       (install-data-hook): Use them.
-       (EXTRA_DIST): Added script_DATA.
-       (installcheck-local): Use script_DATA.
+       * lib/config.guess, lib/config.sub: New versions from FSF.
 
-       * Makefile.am (pkgdata_DATA): Removed duplicate definition.
-
-1999-01-10  Alexandre Oliva  <address@hidden>
-
-       * missing (autoheader): accept multiple header files
-       (automake): simplify sed processing
-
-1999-01-10  Alexandre Oliva  <address@hidden>
-
-       * automake.in (handle_configure, stamp_dir): create only one stamp
-       file per header, instead of one in the top-level directory and one
-       in the directory that contains the header.
-
-1999-01-10  Tom Tromey  <address@hidden>
-
-       * automake.in (lang_objc_finish): Formatting fix.
-
-       * automake.in (objc_extensions): New sub.
-       (handle_dependencies): Only generate dependency-tracking code for
-       ObjC when ObjC source seen.
-
-1998-12-22  Marcus G. Daniels  <address@hidden>
-
-       * automake.in (handle_dependencies): Transform EXT & PFX in
-       Objective C case.
-
-1998-12-11  Marcus G. Daniels  <address@hidden>
-
-       * automake.in: Register Objective C language.
-       (finish_languages): Consider Objective C to be non_c.
-       (lang_objc_rewrite, lang_objc_finish): New functions.
-       (resolve_linker): Recognize OBJCLINK before LINK.
-
-1999-01-10  Tom Tromey  <address@hidden>
-
-       * automake.in (handle_texinfo): Handle empty $config_aux_dir.
-
-       * automake.in (handle_texinfo): Set $conf_pat correctly when
-       config_aux_dir not used.
-       (handle_texinfo): Run maintainer-clean-aminfo rules in srcdir.
-       From Erez Zadok.
-       * texi-vers.am (address@hidden@): Prefix file names with
-       $(srcdir).  From Erez Zadok.
-       ($(srcdir)/address@hidden@): Don't run mdate-sh from srcdir.
-
-1999-01-08  Thomas Tanner  <address@hidden>
-
-       * depend.am: remove the dependencies (.deps)
-       in "make distclean", not "make maintainer-clean"
-
-1999-01-10  Tom Tromey  <address@hidden>
-
-       * aclocal.in (write_aclocal): Updated copyright.
-       (parse_arguments): Likewise.
-       * automake.in (parse_arguments): Updated copyright.
-       (initialize_global_constants): Likewise.
-
-       * Makefile.am (pkgdata_DATA): Renamed from pkgdata_SCRIPTS.
-       (install-data-hook): New hook.  Report from Petter Reinholdtsen.
-
-       * remake-hdr.am: Provide `else' clause for each `if'.
-
-1999-01-10  Alexandre Oliva  <address@hidden>
-
-       * remake-hdr.am: recover from removal of config headers, and try
-       to get real timestamps, which is useful for CVS files
-
-1999-01-10  Tom Tromey  <address@hidden>
-
-       * automake.in (handle_merge_targets): Don't special-case "-local"
-       targets.  Test all.test.
-
-       * automake.in (handle_texinfo): Prepend $(srcdir) to directory
-       used to find texinfo.tex.  Report from Glenn Amerine.
-
-1999-01-07  Tom Tromey  <address@hidden>
-
-       Based on report from Marcus G. Daniels.  Fixes include.test.
-       * automake.in (generate_makefile): Call read_main_am_file.
-       (read_main_am_file): New sub.
-       (read_am_file): Moved header generation code into
-       read_main_am_file.
-
-1999-01-06  Gary V. Vaughan  <address@hidden>
-
-       * automake.in (require_file_internal): qub perl on win32 hangs
-       on a call to unlink for a non-existant file, which in turn causes
-       tests/symlink.test to hang on win32.  Check that the file exists
-       before unlinking it!
-
-1998-12-24  Thomas Tanner  <address@hidden>
-
-       * automake.in (handle_ltlibraries): check whether -module was
-       defined for libraries names without 'lib' prefix.
-
-Fri Dec 11 10:20:42 1998  Matthew D. Langston  <address@hidden>
-
-       * compile_f_c_cxx.test: Change to use F77 and F77LINK instead of
-       FC and FLINK, respectively.
-       * flibs.test: same
-       * fnoc.test: same
-       * fo.test: same
-       * fonly.test: same
-       * link_f_c.test: same
-       * link_f_c_cxx.test: same
-       * link_f_cxx.test: same
-       * link_f_only.test: same
-
-Fri Dec 11 10:23:17 1998  Matthew D. Langston  <address@hidden>
-
-       * automake.in, automake.texi: Change all of the Fortran 77 code to
-       use the new `F77' prefix instead of the older `FC' prefix.
-       Specifically this changed FC, FCOMPILE, LTFCOMPILE, FLINK and FLD
-       to F77, F77COMPILE, LTF77COMPILE, F77LINK and F77LD, respectively.
-
-1999-01-05  Tom Tromey  <address@hidden>
-
-       * depend2.am (%.o): Use \012, not \n, to avoid losing `tr's.  From
-       Bill Currie.
-       (%.lo): Likewise.
-
-1998-12-22  Alexandre Oliva  <address@hidden>
-
-       * depend2.am: Don't assume backslash can't occur in the middle of
-       filename; it loses on M$W
-
-1998-12-21  Tom Tromey  <address@hidden>
-
-       * automake.in (handle_libraries): Reverted Thomas Tanner's
-       change.  Non-libtool libraries still must fit naming
-       requirements.
-
-1998-12-21  Alexandre Oliva  <address@hidden>
-
-       * automake.in (handle_configure): Dist inputs for AC_OUTPUT.
-
-1998-12-21  Alexandre Oliva  <address@hidden>
-
-       * depend2.am: don't use .p and .P for dependencies; it loses on
-       case-insensitive filesystems.
-       Reported by Henrik Frystyk Nielsen <address@hidden>
-
-1998-12-20  Thomas Tanner  <address@hidden>
-
-       * automake.in (handle_libraries, handle_ltlibraries): relax the
-       name checking to not enforce `^lib.*' for the sake of building libtool 
-       modules.
-
-1998-12-21  Tom Tromey  <address@hidden>
-
-       * automake.in (do_one_merge_target): Special case
-       install-data-hook and install-exec-hook.
-       (handle_merge_targets): Removed install-data-hook and
-       install-exec-hook code.  Test insthook.test.
-
-1998-12-16  Tom Tromey  <address@hidden>
-
-       * tags.am (ID): Uniquify list of sources.  Report from Jim
-       Meyering.
-
-1998-12-11  Tom Tromey  <address@hidden>
-
-       Bug report from Paul D. Smith:
-       * automake.in (handle_merge_targets): Set
-       AM_INSTALL_PROGRAM_FLAGS, not INSTALL_PROGRAM.
-       * header-vars.am (INSTALL_PROGRAM): Added
-       AM_INSTALL_PROGRAM_FLAGS.
-
-1998-12-03  Tom Tromey  <address@hidden>
-
-       * automake.in (handle_dist): Print prettier banner when
-       `make dist' succeeds.  From Akim Demaille.
-
-1998-12-02  Tom Tromey  <address@hidden>
-
-       * configure.in: Upped version to 1.3e (1.3d was just released).
-
-       * configure.in: Upped version to 1.3d.
-
-       * texinfo.tex, config.guess, config.sub, install-sh: New
-       versions.
-       * ansi2knr.c: New version.
-
-       * automake.in (handle_configure): Quote @MAINTAINER_MODE_TRUE@ to
-       avoid problems where AM_MAINTAINER_MODE is put into automake's own
-       configure.in.
-
-       * Makefile.am (cvs-dist): Run `cvs tag' operation in srcdir.
-
-       Some bugs from François Pinard:
-       * automake.in (usage): Remove duplicates in file list.
-
-       * automake.in (usage): Print files in column-major order.
-       (handle_gettext): Only require ABOUT-NLS for GNU programs.
-
-1998-12-01  Tom Tromey  <address@hidden>
-
-       * automake.texi (Dist): Documented GZIP_ENV.
-       * automake.in (handle_dist): Define and use GZIP_ENV, not GZIP.
-       (initialize_global_constants): Use GZIP_ENV, not GZIP.
-
-1998-11-27  Tom Tromey  <address@hidden>
-
-       * automake.in (quote_cond_val): Use "\002", not '\002', to
-       represent null string.
-       (unquote_cond_val): Removing all "\002" strings from result.  Test
-       cond7.test.
-
-       * automake.texi: Formatting changes for latest texinfo.
-
-       * automake.in (handle_java): Removed debugging print.
-
-1998-11-18  Tom Tromey  <address@hidden>
-
-       * automake.in (finish_languages): Use CCLD, not CLD.
-
-       * automake.in (finish_languages): Define CLD; use it in LINK
-       definition.
-       (lang_cxx_finish): Define CXXLD; use it in CXXLINK definition.
-       (lang_f77_finish): Define FLD; use it in FLINK definition.
-       (lang_ppf77_finish): Likewise.
-       (lang_ratfor_finish): Likewise.
-
-1998-11-10  Matthew D. Langston  <address@hidden>
-
-       * automake.in (scan_one_configure_file): Recognize
-       AC_F77_LIBRARY_LDFLAGS, and recognize FLIBS as a configure
-       substitution.
-
-       * automake.texi: Fix several little Fortran 77 references to now
-       point to autoconf.texi.  Rename associated Fortran 77 macros from
-       `AM_' to `AC_'.
-
-1998-11-10  Tom Tromey  <address@hidden>
-
-       * automake.in (read_am_file): Handle configure_vars case.  Test
-       pluseq4.test.
-
-1998-11-09  Tom Tromey  <address@hidden>
-
-       * automake.in (read_am_file): `conditional_stack' isn't a
-       function.  Correctly add new value to existing value in `+='
-       case.
-
-1998-10-29  Gary V. Vaughan <address@hidden>
-
-       * automake.in (parse_arguments): Fixed type of -c for copying
-
-1998-10-30  Tom Tromey  <address@hidden>
-
-       * automake.texi (Install): Documented DESTDIR more fully.  From
-       Jeff Garzik.
-
-       * automake.in (MACRO_PATTERN): Recognize `+='.
-       (BOGUS_MACRO_PATTERN): Likewise.
-       (read_am_file): Handle `+=' assignments.
-
-1998-10-28  Tom Tromey  <address@hidden>
-
-       * Makefile.am (maintainer-check): Changed code to be acceptable to
-       bash 2.01.1.
-
-       * automake.in (do_one_clean_target): Special-case config.status.
-       Report from Jeff Garzik.
-
-       * m4/Makefile.am (m4data_DATA): Don't mention f77.m4.
-       * m4/f77.m4: Removed; macro now in autoconf proper.
-
-1998-10-24  Tom Tromey  <address@hidden>
-
-       * automake.in (handle_dist_worker): Typo fix in code testing to
-       see if subdir is `.'.  From Raja R Harinath.
-
-       * m4/lispdir.m4: Fixed sed invocation.  From Akim Demaille.
-
-1998-10-20  Tom Tromey  <address@hidden>
-
-       * automake.in (scan_dependency_file): Fixed test on `while' loop.
-       Fixes depend2.test.  Report from Akim Demaille.
-
-1998-10-16  Tom Tromey  <address@hidden>
-
-       * automake.in (handle_ltlibraries): Specify `noinst' when
-       computing valid prefixes.  From Ulrich Drepper.
-
-       * automake.in (scan_dependency_file): Don't give an error if there
-       is text after the last line.  Report from Matthew D. Langston.
-
-       * m4/mktime.m4: Detect glibc mktime bug.  From Jim Meyering.
-
-       * Makefile.am (SUBDIRS): Added `.' again.
-
-       * Makefile.am (EXTRA_DIST): Removed automake.spec.in.  From
-       Matthew D. Langston.
-       (info_TEXINFOS): Removed am-f77.texi.
-
-       * automake.in (handle_ltlibraries): Allow `noinst' LTLIBRARIES.
-       These are libtool convenience libraries.
-
-1998-10-13  Tom Tromey  <address@hidden>
-
-       * m4/f77.m4: New file.
-       * m4/Makefile.am (m4data_DATA): Added f77.m4.
-
-Thu Oct  8 15:00:57 1998  Matthew D. Langston  <address@hidden>
-
-       * automake.in (resolve_linker): Put the Fortran 77 linker where it
-       needs to be.
-
-       * automake.in (lang_f77_finish): Add support for Fortran 77.
-
-       * automake.in (f77_extensions): New helper function for function
-       `lang_f77_finish'.
-
-       * automake.in (lang_f77_rewrite): Change to return success.
-
-       * automake.in (scan_one_configure_file): Add test for the Fortran
-       77 compiler.
-
-       * automake.in (finish_languages): Changed tests for "C++ only" to
-       "C++ and/or Fortran 77 only", and renamed `all_cxx' to `non_c'.
-
-       * automake.in: Registered the ppf77 language (`.F' extension) for
-       preprocessed Fortran 77.
-       
-       * automake.in: Registered the ratfor language (`.r' extension).
-
-       * automake.in: Registered Fortran 77 header files with the "header
-       language" (`.inc' extension).
-
-Tue Sep  8 14:50:50 1998  Matthew D. Langston  <address@hidden>
+       * tests/Makefile.am (XFAIL_TESTS): Removed.
+       (TESTS): Removed xfail tests.
+       * tests/subdir5.test, tests/auxdir2.test, tests/cond17.test:
+       Removed.
 
-       * automake.texi: Added several new index entries.
+2001-08-22  Richard Boulton <address@hidden>
+           Tom Tromey  <address@hidden>
 
-Sun Aug 30 16:10:31 1998  Matthew D. Langston  <address@hidden>
+       * automake.in (lang_yacc_target_hook): Make header file depend on
+       .c file, not .y file.
+       * lib/am/yacc.am: Non-generic rule changed to depend on %OBJ% (the
+       .c file) rather than %SOURCE% (the .y file)  Removed `.y.h' rule.
+       * tests/yacc7.test: New file.
+       * tests/Makefile.am (TESTS): Added yacc7.test.
 
-       * automake.texi:
-       - Add address@hidden' (output variable index).
-       - Merge address@hidden' (Autoconf macros) and address@hidden' to the 
General
-         Index.
+2001-08-22  Tim Van Holder  <address@hidden>
 
-       * automake.texi (Macros):
-       - Changed the address@hidden @code' list of macros to address@hidden'.
-       - Add `AC_PROG_FC' and `MDL_F77_LIBRARY_LDFLAGS' to the list.
+       * m4/missing.m4: Require AM_AUX_DIR_EXPAND and use $am_aux_dir.
 
-Tue Aug 11 10:42:39 1998  Matthew D. Langston  <address@hidden>
+2001-08-18  Tom Tromey  <address@hidden>
 
-       * automake.texi (C++): Change address@hidden' to address@hidden'.
+       * automake.texi (Dist): Mention dist-all.
 
-       * automake.texi (Fortran 77): Add Fortran 77 documentation.
+2001-08-11  Tom Tromey  <address@hidden>
 
-1998-10-11  Tom Tromey  <address@hidden>
+       * configure.in: Upped to version 1.4m.
 
-       Preliminary (completely untested) multilib support.
-       * automake.texi (Macros): Document AM_ENABLE_MULTILIB.
-       * m4/Makefile.am (m4data_DATA): Added multi.m4.
-       * Makefile.am (amfiles): Added multilib.am.
-       * automake.in (seen_multilib): New global.
-       (scan_one_configure_file): Recognize AM_ENABLE_MULTILIB.
-       (generate_makefile): Call handle_multilib.
-       (handle_multilib): New function.
-       * multilib.am: New file.
-       * m4/multi.m4: New file.
+       * configure.in: Released 1.4l.
 
-1998-10-08  Tom Tromey  <address@hidden>
+       * lib/config.guess, lib/config.sub: New versions from FSF.
 
-       * automake.in (handle_dist): Always include configure.in and
-       configure in distribution.  Fixes confdist.test.
+2001-08-09  Richard Boulton <address@hidden>
 
-       * automake.in (do_one_merge_target): Be silent when running
-       install-exec-am and install-data-am.  Fixes extra3.test and
-       extra4.test.
+       * automake.in (handle_single_transform_list): Use new global,
+       `%linkers_used', to store the linkers used, rather than an internal
+       variable.  Enables correct linker to be calculated across a group
+       of calls to &handle_single_transform_list.  Return only list of
+       objects, since linker to be used is now externally determined.
+       (handle_source_transform): adapted for new calling conventions of
+       handle_single_transform_list.  Calls resolve_linker() on a set of
+       all the linkers used for any prefix, rather than for each prefix in
+       turn.
+       (linkers_used): New global.
+       * tests/link_dist.test: New test.
+       * tests/Makefile.am (TESTS): Added link_dist.test.
 
-1998-10-07  Tom Tromey  <address@hidden>
+2001-08-08  Raja R Harinath  <address@hidden>
 
-       * automake.in (am_install_var): Added -noextra option.
-       (handle_data): Pass -noextra to am_install_var.
+       Dissociate testsuite 'make' invocations from outer 'make'.
+       * tests/defs: Unset the MFLAGS, MAKEFLAGS and MAKELEVEL
+       environment variables.
+       * tests/cond16.test: Use '$MAKE -s', and avoid GNU make
+       dependency. 
+       * tests/substref.test: Likewise.
 
-Sun Oct  4 22:24:10 1998  Tom Tromey  <address@hidden>
+2001-08-08  Richard Boulton <address@hidden>
 
-       * m4/winsz.m4 (AM_HEADER_TIOCGWINSZ_NEEDS_SYS_IOCTL): Use
-       3-argument form of AC_DEFINE.
-       * m4/regex.m4 (AM_WITH_REGEX): Use 3-argument form of AC_DEFINE.
-       * m4/ptrdiff.m4 (AM_TYPE_PTRDIFF_T): Use 3-argument form of
-       AC_DEFINE.
-       * m4/protos.m4 (AM_C_PROTOTYPES):Use 3-argument form of
-       AC_DEFINE.
-       * m4/obstack.m4 (AM_FUNC_OBSTACK): Use 3-argument form of
-       AC_DEFINE.
-       * m4/init.m4 (AM_INIT_AUTOMAKE): Use 3-argument form of
-       AC_DEFINE.
-       * m4/dmalloc.m4 (AM_WITH_DMALLOC): Use 3-argument form of
-       AC_DEFINE.
+       * tests/cond18.test: New file.
+       * tests/cond19.test: New file.
+       * tests/cond20.test: New file.
+       * tests/cond4.test: Updated to check the generated _OBJECTS more
+       thoroughly.
+       * tests/Makefile.am (TESTS): Added cond18.test, cond19.test and
+       cond20.test
 
-Tue Oct  6 00:02:15 1998  Tom Tromey  <address@hidden>
+2001-08-08  Richard Boulton <address@hidden>
 
-       * depend2.am (%.lo): Handle case where compiler does not put space
-       before ":".  From Raja R Harinath.
+       * automake.in (file_contents_internal): if a rule is conditionally
+       defined, define the standard automake definition for it for those
+       conditions which are not conditionally defined.
+       (invert_conditions): New function: invert a list of conditionals.
 
-Mon Oct  5 13:05:43 1998  Tom Tromey  <address@hidden>
+       * tests/cond14.test: New file.
+       * tests/cond15.test: New file.
+       * tests/Makefile.am (TESTS): Added cond14.test and cond15.test.
 
-       * automake.in (scan_one_configure_file): AC_CONFIG_HEADER is not
-       obsolete; it simply isn't preferred with automake.
-       (scan_one_configure_file): Likewise for AC_DECL_YYTEXT and
-       AC_PROG_LEX.
+2001-08-05  Tom Tromey  <address@hidden>
 
-       * automake.in (am_line_error): Handle case where variable defined
-       in configure.in.  Fixes test badline.test.
-       (%configure_vars): Redefined meaning of values.
-       (scan_one_configure_file): Set $configure_vars values
-       appropriately.
+       * tests/Makefile.am (TESTS): Added dejagnu2.test.
+       * tests/dejagnu2.test: New file.
+       * lib/am/dejagnu.am (site.exp): Don't conditionalize.
+       * automake.in (handle_scripts): Removed dead code.
+       (handle_tests_dejagnu): Don't handle site.exp generation
+       specially.
 
-Sat Oct  3 14:53:34 1998  Tom Tromey  <address@hidden>
+2001-08-04  Richard Boulton <address@hidden>
 
-       * automake.in (handle_aclocal_m4): Use new MAINTAINER_MODE
-       conditional.
-       (handle_configure): Likewise.
-       (read_am_file): Likewise.
-       (file_contents_with_transform): Likewise.
-       (scan_one_configure_file): Recognize that AM_MAINTAINER_MODE
-       defines a conditional.
-       * automake.texi (Optional): Document new AM_MAINTAINER_MODE.
-       * texi-vers.am ($(srcdir)/@VTEXI@): Look at MAINTAINER_MODE
+       * tests/cond17.test: New file: test for being able to define an
+       object to be generated in different ways according to a
        conditional.
-       (address@hidden@): Likewise.
-       * remake.am ($(srcdir)/configure): Look at MAINTAINER_MODE
-       conditional.
-       * remake-hdr.am ($(srcdir)/@CONFIG_HEADER_IN@): Look at
-       MAINTAINER_MODE conditional.
-       * m4/maintainer.m4 (AM_MAINTAINER_MODE): Defined MAINTAINER_MODE
-       conditional.
-
-1998-10-03  Jim Blandy  <address@hidden>
-
-       * depend2.am (%.lo): When editing the dependency file to add the
-       .lo file to the targets, allow for whitespace between the end of
-       the filename and the colon.  Some compilers (notably the Cygnus
-       release of GCC 2.7-97r1) put space there: "alist.o : ..."
-
-Sat Oct  3 12:07:21 1998  Tom Tromey  <address@hidden>
-
-       * automake.in (handle_configure): Handle case where there is no
-       Makefile in the config header directory.  Fixes test config.test.
-
-Thu Oct  1 00:51:51 1998  Tom Tromey  <address@hidden>
-
-       * depend2.am (%.o): Append sed results to .P file in this case
-       too.  From Raja R Harinath.
-
-       * m4/lispdir.m4 (AM_PATH_LISPDIR): Correctly find xemacs and
-       xemacs install directories.  From Robert Bihlmeyer.
-
-       * depend2.am: Don't bother trying to delete source file from
-       list.
-
-       * depend2.am (%.o): Handle deleted header file problem.
-       (%.lo): Likewise.
-
-       * texinfos.am (install-info-am): Handle case where INFO_DEPS is
-       empty.  Reported by Andrew Cagney.
-       (uninstall-info): Likewise.
-       (dist-info): Likewise.
-
-       * automake.in (handle_texinfo): Error if user tries to generate
-       HTML.
-
-Wed Sep 30 00:41:40 1998  Tom Tromey  <address@hidden>
-
-       * automake.in (do_one_clean_target): Don't push previous clean
-       target if this target is `mostly'.  Report from Raja R Harinath.
-
-       * subdirs.am (mostlyclean-recursive ...): Build local_target, not
-       target.  From Raja R Harinath.
-
-       Completely changed how languages and source files are handled:
-       * automake.in: Call register_language for each language.
-       (lang_c_rewrite): New function.
-       (lang_cxx_rewrite): Likewise.
-       (lang_header_rewrite): Likewise.
-       (lang_yacc_rewrite): Likewise.
-       (lang_yaccxx_rewrite): Likewise.
-       (lang_lex_rewrite): Likewise.
-       (lang_lexxx_rewrite): Likewise.
-       (lang_asm_rewrite): Likewise.
-       (lang_fortran_rewrite): Likewise.
-       (register_language): Likewise.
-       (extension_map): New global.
-       (language_map): Likewise.
-       (resolve_linker): New function.
-       (handle_single_transform_list): Rewrote to use lang_X_rewrite
-       functions.  Changed meaning of first argument.
-       (initialize_per_input): Removed seen_any_source.  Initialize
-       language_scratch, extension_seen.  Removed cxx_extensions,
-       seen_c_source, dir_holds_headers, dir_holds_sources.
-       (handle_source_transform): Don't compute $objpat.  Pass $obj
-       directly to handle_single_transform_list.
-       (handle_built_sources): Fixed call to
-       handle_single_transform_list.
-       (lang_c_finish): New function.
-       (lang_cxx_finish): Likewise.
-       (lang_header_finish): Likewise.
-       (lang_yacc_finish): Likewise.
-       (lang_yaccxx_finish): Likewise.
-       (lang_lex_finish): Likewise.
-       (lang_lexxx_finish): Likewise..
-       (lang_asm_finish): Likewise.
-       (lang_fortran_finish): Likewise.
-       (yacc_lex_finish_helper): Likewise.
-       (libtool_compiler): Likewise.
-       (saw_extension): New function.
-       (handle_lib_objects_cond): Use saw_extension, not old variables.
-       (handle_yacc_lex_cxx): Removed.
-       (finish_languages): New function.
-       (get_object_extension): Don't set dir_holds_sources.
-       (handle_headers): Don't set dir_holds_headers.  Instead, call
-       saw_extension.
-       (saw_sources_p): New function.
-       (handle_tags): Use it.
-       (handle_dependencies): Likewise.
-       (cxx_extensions): New function.
-       (handle_dependencies): Use it.
-       (generate_makefile): Call finish_languages, not
-       handle_yacc_lex_cxx.
-
-1998-05-24  Andreas Schwab  <address@hidden>
-
-       * texi-vers.am: Use the correct target names.  Fix generation of
-       stamp file.
-
-       * automake.in (handle_tests): In commands generating site.exp copy
-       the old contents from site.exp, not site.bak, which does not
-       exist.
-
-Tue Sep 29 00:10:22 1998  Tom Tromey  <address@hidden>
-
-       Fixed noinst.test again:
-       * automake.in (do_one_merge_target): Special-case `install-am'.
-       (handle_merge_targets): Don't compute @install variable.
-
-       Fixes for recurs2.test.  Report from Jim Meyering.
-       * automake.in (vars_scanned): Define globally.
-       (variable_value_as_list_worker): Delete $var entry in
-       %vars_scanned after local work is done.
-
-1998-05-26  Marcus G. Daniels  <address@hidden>
-
-       * automake.in: New pattern: INCLUDE_PATTERN.
-       (read_am_file):  Make AM_FILE a local filehandle.
-       For INCLUDE_PATTERN, store included paths on @include_stack and call 
-       read_am_file with argument.
-       (handle_configure): When printing the dependencies for
-       Makefile.in, print the items on include_stack (if any) as
-       dependencies, too.
-
-       * automake.texi: Make a command index `cm' that goes into the
-       concept index.  Put if, endif, else, and include in the command index.
-       (Include): Show usage of include directive.  
-
-Mon Sep 28 00:03:45 1998  Tom Tromey  <address@hidden>
-
-       `.' in SUBDIRS changes order of builds:
-       * Makefile.am (SUBDIRS): Added `.'.  Put tests last.
-       * tags.am (TAGS): Don't look for TAGS file in `.'.
-       * automake.texi (Top level): Document SUBDIRS change.
-       * automake.in (handle_installdirs): Create separate installdirs-am
-       target.
-       (handle_merge_targets): Don't put all-am onto @all.  Fixed error
-       message.  Correctly handle install-info.  Give error if
-       install-info-local inappropriately defined.  Don't special-case
-       install-data, install-exec, install, uninstall, or all.
-       (handle_subdirs): Don't push `-recursive' target names onto
-       corresponding lists.
-       (do_one_merge_target): Always define `-am' form of rule, and point
-       ordinary form to `-am' or `-recursive' as appropriate.
-       Special-case `all'.
-       (do_check_merge_target): Generate check-am target.
-       (handle_dist_worker): Use target_defined.
-       (handle_dist): Likewise.
-       (handle_merge_targets): Likewise.
-       (do_one_merge_target): Likewise.
-       (do_check_merge_target): Likewise.
-       (do_one_clean_target): Likewise.
-       (initialize_per_input): Initialize $all_target.
-       (do_one_clean_target): Always generate -am form of rule; other
-       changes for new SUBDIRS change.
-       (handle_clean): Always generate clean-am form of rule.
-       (handle_tags): Only build subdir if not `.'.
-       (handle_dist_worker): Skip `.' directory.
-       * subdirs.am: Allow `.' to be specified in SUBDIRS.
-
-Sun Sep 27 20:02:21 1998  Tom Tromey  <address@hidden>
-
-       * automake.texi (Dist): Document EXTRA_DIST change.
-       * automake.in (handle_dist_worker): Allow subdirs in EXTRA_DIST.
-
-       * automake.in (handle_ltlibraries): Wrote better comment about
-       EXTRA_LTLIBRARIES.
-
-       * automake.texi (Invoking Automake): Document --copy.
-       * automake.in (copy_missing): New global.
-       (parse_arguments): Recognize --copy/-c.
-       (require_file_internal): Handle $copy_missing.  Fixed error
-       message.
-       (initialize_global_constants): Document -c/--copy.
-
-       * automake.texi: Document LIBOBJS trick.
-
-       * automake.in (handle_dist_worker): If DIST_SUBDIRS defined, use
-       it even when SUBDIRS not conditional.
-
-       * automake.in (quote_cond_val): Turn tabs into \003.
-       (unquote_cond_val): Turn \003 back into tabs.  Fixes test
-       cond6.test.
-
-       * automake.in (read_am_file): Treat backslash-newline as
-       whitespace.  Test parse.test.
-
-Sat Sep 26 19:31:22 1998  Tom Tromey  <address@hidden>
-
-       * configure: Rebuilt.
-       * configure.in: Upped version to 1.3c.
-
-       Track recent autoconf changes:
-       * m4/Makefile.in: Rebuilt.
-       * m4/Makefile.am (m4data_DATA): Updated for deleted files.
-       * m4/init.m4 (AM_INIT_AUTOMAKE): Use AC_PROG_INSTALL.
-       * m4/mingw.m4: Removed.
-       * m4/cygwin.m4: Removed.
-       * m4/install.m4: Removed.
-       * m4/exeext.m4: Removed.
-       * automake.in (scan_one_configure_file): Don't look for
-       AM_EXEEXT.
-       (check_cygnus): Only mention AC_EXEEXT.
-       (obsolete_macros): Mention AM_PROG_INSTALL, AM_EXEEXT,
-       AM_CYGWIN32, AM_MINGW32.
-       ($seen_prog_install): Changed interpretation; changed all users.
-       (scan_one_configure_file): Don't look for AM_PROG_INSTALL.
-       ($scripts_installed): Removed.
-       (handle_scripts): Use local $scripts_installed.
-       * aclocal.in (obsolete_macros): Added AM_PROG_INSTALL, AM_EXEEXT,
-       AM_CYGWIN32, AM_MINGW32.
-
-Mon Jul  6 14:52:49 1998  Ian Lance Taylor  <address@hidden>
-
-       * compile.am (mostlyclean-compile): If OBJEXT, remove *.$(OBJEXT)
-       along with *.o.
-
-Thu May 28 18:49:47 1998  Ian Lance Taylor  <address@hidden>
-
-       * automake.in (seen_objext): New variable.
-       (get_object_extension): If seen_objext, use .$(OBJEXT) rather than
-       .o.  When including compile.am, keep or discard OBJEXT lines
-       according to whether seen_objext is set.  If seen_objext, add .obj
-       to @suffixes.  If seen_objext, use .$(OBJEXT) rather than .o when
-       building ansi2knr.
-       (handle_yacc_lex_cxx): If seen_objext, add a rule to create .obj
-       files.  If seen_objext, use .$(OBJEXT) rather than .o when
-       building ansi2knr.
-       (scan_one_configure_file): Check for .obj as well as .o in
-       LIBOBJS.  Set seen_exeext if we see AC_EXEEXT.  Look for
-       AC_OBJEXT, and if found set seen_objext and set OBJEXT in
-       configure_vars.
-       (check_cygnus): Change error message to permit AC_EXEEXT.
-       * compile.am: Add OBJEXT lines for .c.obj compilation.
-       * Makefile.in: Rebuild.
-       * m4/Makefile.in: Rebuild.
-       * tests/Makefile.in: Rebuild.
-
-Mon Sep 11 16:07:55 1997  Chris Provenzano <address@hidden>
-
-       * header-vars.am: address@hidden@
-       Ran aclocal, autoconf, and automake.
-
-Sat Sep 26 16:31:29 1998  Tom Tromey  <address@hidden>
-
-       * ltlib.am: Use $(INSTALL) and not $(INSTALL_DATA).
-
-Mon Sep 14 08:27:38 1998  Per Cederqvist  <address@hidden>
-
-       * automake.in (handle_texinfo): The logic for when to provide
-       texinfo.tex was broken.  Attempt to fix.
-
-Mon Sep 14 00:55:12 1998  Per Cederqvist  <address@hidden>
-
-       Fix for Dynix 3.1.1.
-       * automake.in (handle_yacc_lex_cxx): Transform "# " to "#line";
-       some compilers (such as /bin/cc on Dynix 3.1.1) don't accept the
-       output from the preprocessor.
-
-Tue Aug 25 18:40:51 1998  Tom Tromey  <address@hidden>
-
-       * automake.in (handle_tests): Don't create site.exp target if it
-       is already in Makefile.am.
-
-Sun Aug 16 23:26:26 1998  Tom Tromey  <address@hidden>
-
-       * automake.in (handle_configure): Use @inputs, not
-       @rewritten_inputs, when constructing CONFIG_FILES.  Use different
-       list to test for file existence.  Test colon6.test.
-       (rewrite_inputs_into_dependencies): Added add_srcdir argument.
-       Updated all callers.
-
-Wed Aug 12 14:16:57 1998  Tom Tromey  <address@hidden>
-
-       * Released 1.3b.
-
-Tue Aug 11 12:18:59 1998  Tom Tromey  <address@hidden>
-
-       * automake.in (handle_clean): Added missing close-paren.  Quote
-       `$' so it doesn't expand when replacing.  From Markus
-       F.X.J. Oberhumer.
-
-       * aclocal.in (usage): Changed bug address.
-       * automake.in (usage): Changed bug address.
-
-       * clean.am (distclean-generic): Don't mention
-       DISTCONFIGCLEANFILES.  From Markus F.X.J. Oberhumer.
-
-Mon Aug 10 20:57:35 1998  Tom Tromey  <address@hidden>
-
-       * automake.in (handle_yacc_lex_cxx): Redirect ansi2knr output to
-       correct file.  From Kave Ghazi.
-
-Sun Aug  2 16:05:16 1998  Tom Tromey  <address@hidden>
-
-       * Released 1.3a.
-
-       * config.sub, config.guess, texinfo.tex: New versions from FSF.
-
-Sun Jul 19 00:04:25 1998  Tom Tromey  <address@hidden>
-
-       * automake.in (variable_conditions): Initialize %vars_scanned.
-       (variable_conditions_sub): Check it.  Test cond5.test.
-
-Sat Jul 18 00:24:14 1998  Tom Tromey  <address@hidden>
-
-       * automake.in (variable_value_as_list_worker): Renamed from
-       variable_value_as_list.  Set entry in vars_scanned, and give error
-       if variable recursively defined.  Test recurs.test.
-       (value_to_list): Call it instead.
-       (variable_value_as_list): New function.
-
-       * automake.in (variable_conditions_sub): If var is not
-       conditional, but does have conditional subvariables, then return
-       value should be all permutations of subvariable conditions.  Test
-       cond4.test.
-       (handle_source_transform): Define _OBJECTS variable with each
-       condition; no need to define multiple new variables.
-
-Fri Jul 17 12:56:14 1998  Tom Tromey  <address@hidden>
-
-       * automake.in (am_install_var): Use DESTDIR, not DATADIR.  From
-       Motoyuki Kasahara.
-
-       * automake.in (scan_dependency_file): Recognize DOS-style paths as
-       absolute.
-       * ylwrap: Recognize DOS-style paths as absolute.  From Ian Lance
-       Taylor.
-
-Fri Jul 17 07:37:20 1998  H.J. Lu  (address@hidden)
-
-       * ylwrap: Don't use absolute path if the input is in the
-       current directory.
-
-Fri Jul 17 11:58:27 1998  Ian Lance Taylor  <address@hidden>
-
-       * automake.in: Use $(AM_MAKEFLAGS) in every invocation of $(MAKE).
-       * subdirs.am: Likewise.
-
-Thu Jul 16 18:09:03 1998  Ian Lance Taylor  <address@hidden>
-
-       * remake.am (config.status): Depend upon
-       $(CONFIG_STATUS_DEPENDENCIES).
-       * automake.in (handle_configure): Examine
-       CONFIG_STATUS_DEPENDENCIES.
-
-Tue Jul 14 13:37:48 1998  Tom Tromey  <address@hidden>
-
-       * Makefile.am: Always look in srcdir for automake.in.
-
-Tue Jun 23 14:00:27 1998  Ian Lance Taylor  <address@hidden>
-
-       * progs.am: Don't let $(EXEEXT) interfere with $(transform).
-       Report from Mike Stump <address@hidden>.
-
-Tue Jun  2 13:27:34 1998  Tom Tromey  <address@hidden>
-
-       * automake.in (scan_one_configure_file): Make CONFIGURE file
-       handle local.  From Kevin Street.
-
-       * automake.in (read_am_file): Error if blank line or comment
-       follows trailing backslash.  Test syntax.test.
-       (file_contents_with_transform): Likewise.
+       * tests/Makefile.am (XFAIL_TESTS): Add cond17.test.
+       (TESTS): Added cond17.test.
 
-Thu May 28 18:49:47 1998  Ian Lance Taylor  <address@hidden>
+2001-08-02  Richard Boulton <address@hidden>
 
-       * automake.in (handle_configure): Always use $(SHELL) when running
-       config.status.
+       * automake.in (variable_conditions_sub): Handle variable
+       substitution refs when computing conditions based on subvariable
+       conditions.  Fixes substitution refs of system variables when sub
+       variable is conditional.
+       (SUBST_REF_PATTERN): New global.
+       * tests/cond16.test: New file: regression test for variable
+       substitution refs.
+       * test/Makefile.am (TESTS): Added cond16.test.
 
-Mon Jun  1 14:23:29 1998  Tom Tromey  <address@hidden>
+2001-08-03  Tom Tromey  <address@hidden>
 
-       * automake.in (handle_yacc_lex_cxx): Use AM_CPPFLAGS, AM_CXXFLAGS,
-       AM_CFLAGS.
-       (output_yacc_build_rule): Use AM_YFLAGS, AM_LFLAGS.
-       (handle_dependencies): Don't define CXXMKDEP.
+       * tests/substref.test: Require GNU make; backed out previous
+       change.
 
-       * clean.am (mostlyclean-generic): Prefix rule with MOSTLYCLEAN.
-       (clean-generic): Prefix rule with CLEAN.
-       (distclean-generic): Prefix rule with DISTCLEAN.
-       (maintainer-clean-generic): Prefix rule with MAINTAINERCLEAN.
-       BUILT_SOURCES now handled in automake itself.
-       * automake.in (initialize_per_input): Initialize
-       maintainer_clean_files.
-       (handle_yacc_lex_cxx): Put lex and yacc output files onto
-       @maintainer_clean_files.
-       (handle_clean): Handle @maintainer_clean_files.  Transform
-       clean.am when installing; try to remove unnecessary tests in
-       generated code.
+       * tests/substref.test: Handle entering/leaving directory
+       messages.
 
-       * automake.in (do_check_merge_target): Only generate $(MAKE)
-       command if there are check targets to make.  Report from Karl
-       Heuer.
+2001-08-03  Richard Boulton <address@hidden>
 
-Sun May 17 23:05:55 1998  Tom Tromey  <address@hidden>
+       * automake.in (value_to_list): Check for whether $from is defined,
+       rather than whether it is true, so that empty $froms are allowed in
+       substitution reference patterns.
 
-       * aclocal.in (write_aclocal): Fixed generated copyright message.
-       From Eleftherios Gkioulekas.
+       * tests/substref.test: New file: test behavior of substitution
+       references when the $from side of the substitution is empty.
+       * tests/Makefile.am (TESTS): Added substref.test.
 
-       * automake.in (parse_arguments): Typo fix from Paul D. Smith.
+2001-08-03  Alexandre Duret-Lutz  <address@hidden>
 
-Fri May  8 12:14:03 1998  Tom Tromey  <address@hidden>
+       * m4/install-sh.m4: New file.
+       * m4/Makefile.am (m4data_DATA): Add install-sh.m4.
+       * m4/missing.m4 (AM_MISSING_INSTALL_SH): Move ...
+       * m4/install-sh.m4 (AM_PROG_INSTALL_SH): ... here.  Don't check
+       for install.sh any longer, always use install-sh, don't even
+       fall back to missing.  Use $am_aux_dir, making $install_sh absolute.
+       * m4/strip.m4 (AM_PROG_INSTALL_STRIP): Simplify, since $install_sh
+       is absolute.
+       * m4/init.m4: Adjust call to AM_PROG_INSTALL_SH.
 
-       * automake.in (handle_yacc_lex_cxx): Put lex and yacc output files
-       onto @clean.
+2001-08-02  Tim Van Holder  <address@hidden>
 
-Wed May  6 01:18:05 1998  Tom Tromey  <address@hidden>
+       * automake.texi (EXEEXT): Clarify.
 
-       * header-vars.am (DESTDIR): Changed from DISTDIR.
+2001-08-01  Alexandre Duret-Lutz  <address@hidden>
 
-Fri Apr 24 10:16:20 1998  Tom Tromey  <address@hidden>
+       * m4/missing.m4 (AM_MISSING_HAS_RUN): Typo.
 
-       * libs.am: Don't display loop while it runs.
+       * m4/auxdir.m4: More comments.
 
-Sun Apr  5 13:58:24 1998  Tom Tromey  <address@hidden>
+2001-07-31  Richard Boulton <address@hidden>
+            Raja R Harinath <address@hidden>
 
-       * Released 1.3.
+       * automake.in (variable_conditions_sub): Remove @parent_conds
+       argument.  This was old logic - duplicate or impossible
+       conditionals are removed later by &variable_conditions_reduce().
+       Fixes tests/cond13.test.
+       (conditionals_true_when): Removed.
+       * tests/Makefile.am (XFAIL_TESTS): Removed cond13.test.
 
-       * automake.in (handle_options): Correctly handle trailing alpha
-       version letter or lack thereof.  Test version3.test.
+2001-07-31  Tom Tromey  <address@hidden>
 
-       * automake.in (am_conf_line_warning): Perl 4 fixlet; typo fix.
+       * tests/Makefile.am (TESTS): Added cond13.test.
+       (XFAIL_TESTS): Likewise.
+       * tests/cond13.test: New file.
 
-       * automake.in (handle_ltlibraries): Examine _DEPENDENCIES
-       variable.  Report from Chris Provenzano.  Test library.test.
-       (handle_libraries): Likewise.
+       * configure.in: Upped to version 1.4k.
 
-       * m4/lex.m4: Allow AM_PROG_LEX to be called with no arguments.
+       * configure.in: Released 1.4j.
 
-Sun Apr  5 13:54:25 1998  Alexandre Oliva <address@hidden>
+       * lib/config.guess: Updated from master sources.
+       * lib/config.sub: Likewise.
 
-       * automake.in (scan_one_configure_file): Only warn about
-       AC_DECL_YYTEXT and AC_PROG_LEXX.
-       (am_conf_line_warning): New function.
+2001-07-30  Tom Tromey  <address@hidden>
 
-Fri Apr  3 15:43:46 1998  Doug Evans  <address@hidden>
+       * automake.texi (A Program): Typo.  Added subsections and more
+       text about conditional compilation.
+       (A Shared Library): Moved earlier.
+       (Program variables): Updated LINK text.  Added AM_CFLAGS.
+       (C++ Support): Added AM_CXXFLAGS.
+       (Fortran 77 Support): Added AM_FFLAGS and AM_RFLAGS.
+       (EXEEXT): New node.
 
-       * automake.in (handle_configure): Fix setting of colon_infile
-       in case where multiple files are used to build Makefile.
-       [ Test colon5.test ]
-       
-Fri Apr  3 13:07:58 1998  Tom Tromey  <address@hidden>
-
-       * ansi2knr.c, texinfo.tex: New versions from respective
-       maintainers.
-
-       * automake.in (scan_one_configure_file): Exclude INSTALL_DATA from
-       configure_vars.  Test instdata.test.
-
-Tue Mar 31 21:07:42 1998  Tom Tromey  <address@hidden>
-
-       * automake.in (handle_yacc_lex_cxx): Changed to use new version of
-       ansi2knr.
-       * ansi2knr.c: New version from L. Peter Deutsch.
-
-Thu Mar 26 11:00:04 1998  Tom Tromey  <address@hidden>
-
-       * m4/exeext.m4: Correctly eliminate bad cases when computing
-       am_cv_exeext.  Report from Markus F.X.J. Oberhumer.
-
-Wed Mar 25 15:09:56 1998  Tom Tromey  <address@hidden>
-
-       * automake.in (handle_options): Support alpha version numbers.
-
-       * lisp.am (address@hidden@LISP): Allow .el files to appear in build
-       directory.  From Gary V Vaughan.
-
-Mon Mar 23 07:55:04 1998  Tom Tromey  <address@hidden>
-
-       * Released 1.2h.
-
-       * header.am (address@hidden@HEADERS): A header can appear in the
-       build directory as well as the source directory.  From Gary V
-       Vaughan.
-
-       * automake.in (handle_yacc_lex_cxx): Push lib sources onto
-       de_ansi_files before generating ._c dependencies.  Test
-       libobj8.test.
-
-       * m4/mktime.m4: New version from Jim Meyering.
-
-       * aclocal.in (usage): Document --print-ac-dir.
-       (parse_arguments): Added --print-ac-dir.
-
-       * ansi2knr.c, ansi2knr.1: New versions from ghostscript.
-       (main): Reapplied "-" change from Harlan Stenn.
-
-Fri Mar 20 22:42:30 1998  Tom Tromey  <address@hidden>
-
-       * automake.in (scan_one_configure_file): Use &am_conf_line_error,
-       not warn.  Check to make sure warnings happen only for
-       configure.in, not for "not aclocal.m4".
-
-Fri Mar 20 22:35:31 1998  Alexandre Oliva <address@hidden>
-
-       * automake.in: understand AM_PROG_LEX as a replacement for
-       AC_PROG_LEX and AC_DECL_YYTEXT
-       warn if the replaced macros are used.
-       * m4/Makefile.am: add lex.m4
-       * m4/lex.m4 (AM_PROG_LEX): new file and macro
-       * missing: added lex/flex support
-       instead of touching flex and bison output files, try to copy
-       them from a filename based on the last given argument
-
-Fri Mar 20 00:26:10 1998  Tom Tromey  <address@hidden>
-
-       * m4/protos.m4: Require AC_PROG_CPP.
-
-       * aclocal.in (add_file): If &search fails, and macro matches AM_,
-       then print error.  Test aclocalii.test.
-
-       De-ansi-fication fixes from Harlan Stenn:
-       * ansi2knr.c (main): Accept "-" argument to mean stdin.
-       * automake.in (handle_yacc_lex_cxx): Preprocess C source before
-       running through ANSI2KNR.
-       (get_object_extension): Generate rule for <dir>/ansi2knr.o.
-
-       * texinfos.am: Include $(DESTDIR).
-       * lisp.am: Include $(DESTDIR).
-       * java.am: Include $(DESTDIR).
-       * mans.am (address@hidden@): Include $(DESTDIR).
-       * automake.in (handle_man_pages): Include $(DESTDIR) in
-       installdirs variable.
-       (handle_texinfo): Likewise.
-       (am_install_var): Likewise.
-       * header-vars.am (DISTDIR): Define.
-       * data.am, header.am, libs.am, ltlib.am, progs.am, scripts.am:
-       Support $(DESTDIR) at install time.  From Assar Westerlund.
-
-       * automake.in (handle_java): Put Java sources in distribution.
-
-Thu Mar 19 01:33:35 1998  Tom Tromey  <address@hidden>
-
-       * automake.in (handle_java): Put JAVACFLAGS after -d option.  From
-       Per Bothner.
-
-       * automake.in (handle_java): Use $(JAVAROOT) in place of `../..'
-       in default CLASSPATH.
-       (am_install_var): Allow `JAVA' variable to be defined.  Don't
-       define `JAVA' primary.
-
-       * automake.in (scan_one_configure_file): Check for `sinclude' and
-       turn into recursive call.
-
-       * automake.in (initialize_per_input): Set $output_all.
-       (generate_makefile): Don't set $output_header or generate
-       `default' target.  Print $output_all before $output_header.
-       (handle_merge_targets): Put `all' target into $output_all.
-
-Wed Mar 18 14:48:44 1998  Tom Tromey  <address@hidden>
-
-       * automake.in (handle_configure): Put secondary dependencies from
-       multi-":" AC_OUTPUT entry into dependency list for file created by
-       config.status, not file created by automake.  Test colon3.test.
-       (generate_makefile): Pass $output, not $makefile, to
-       handle_merge_targets.
-
-       * Makefile.am (pkgdata_DATA): Added java.am, java-clean.am.
-       * java-clean.am: New file.
-       * java.am: New file.
-       * automake.in (generate_makefile): Call handle_java.
-       (handle_java): New sub.
-       (am_install_var): Only push primary variable on @all if not doing
-       Java.
-
-Sun Mar  8 15:43:09 1998  Tom Tromey  <address@hidden>
-
-       * automake.in (handle_configure): When recognizing AC_OUTPUT ":"
-       syntax, make regexp less greedy.  From Maciej W. Rozycki.  Test
-       colon4.test.
-
-Fri Mar  6 21:20:53 1998  Tom Tromey  <address@hidden>
-
-       * m4/exeext.m4 (AM_EXEEXT): Ignore am_c_test.o.  From Bruno
-       Haible.
-
-Tue Feb 24 12:10:44 1998  Tom Tromey  <address@hidden>
-
-       * Released 1.2f.
-
-       * mans.am (address@hidden@, address@hidden@): Quote
-       `$' in sed expression.
-
-       * config.guess, config.sub, texinfo.tex: New versions from FSF.
-
-       * Makefile.am (pkgdata_DATA): Added mans.am.
-       * automake.in (handle_man_pages): Rewrote for new man page
-       handling.
-       (initialize_global_constants): Removed install_man_format,
-       uninstall_man_format.
-       * mans.am: New file.
-
-       * data.am, header.am, libs.am, lisp.am, ltlib.am, progs.am,
-       scripts.am, texinfos.am: Put `@' before NORMAL_UNINSTALL
-       invocation.
-
-Mon Feb 23 13:38:56 1998  Tom Tromey  <address@hidden>
-
-       * automake.in (get_object_extension): Remove .c.lo rule from
-       libtool when dependencies turned on.
-       * libtool.am (.c.lo): Disable when dependency checking turned on.
-
-       Dependency fixes from Alexandre Oliva:
-       * automake.in (handle_dependencies): Fixed quoting when
-       substituting @PFX@ and @address@hidden  Don't look for the `.P' file.
-       * depend2.am (%.o): Use @PFX@ and @address@hidden
-       (%.lo): New rule.
-
-       * texinfos.am (.txi.info, .txi.dvi, .txi): New rules.
-       * automake.in (handle_texinfo): Recognize .txi files.  From Karl
-       Berry.
-
-       * automake.in (handle_single_transform_list): $objpat now a
-       parameter.  Set $objpat when suffix rule found.
-
-       * aclocal.in (parse_arguments): Only put current year in --version
-       output.
-       * automake.in (parse_arguments): Only put current year in
-       --version output.
-
-Mon Feb 16 00:12:03 1998  Tom Tromey  <address@hidden>
-
-       * automake.in (handle_aclocal_m4): When processing -I options,
-       directory is separate argument.  Test aclocali.test.
-
-Fri Feb 13 14:35:39 1998  Ian Lance Taylor  <address@hidden>
-
-       * automake.in (handle_texinfo): Correct condition for whether
-       texinfo.tex is required.  [Test texinfo5.test]
-
-Fri Feb 13 00:28:53 1998  Tom Tromey  <address@hidden>
-
-       * Released 1.2e.
-
-       * Makefile.am: Removed bogus line.
-
-Thu Feb 12 22:27:05 1998  Tom Tromey  <address@hidden>
-
-       * automake.in (get_object_extension): Conditionally include .c.o
-       rule from compile.am.
-       (handle_dependencies): Generate correct code when including new
-       depend2.am.
-       (file_contents_with_transform): Better error reporting.
-       * depend.am (MKDEP): Removed.
-       (.deps/.P): Removed.  Don't include .deps/.P.
-       * compile.am (.c.o): Now conditional on dependencies not being
-       generated by compiles.
-       * depend2.am (%.o): New rule.
-       (.deps/%.P): Removed.
-
-       * tags.am (TAGS): Uniquify list of files.  From Harlan Stenn.
-
-       * aclocal.in (scan_m4_files): Reverse-sort keys when constructing
-       `search' function.  From Johan Danielsson.
-
-Tue Sep 16 14:13:15 1997  Paul D. Smith  <address@hidden>
-
-       * automake.in: Create new option --generate-deps.  This option has
-       automake generate a .dep_segment file containing just the
-       dependencies created from the .P list.  This is needed to maintain
-       other makefiles that automake doesn't deal with (Makefile.DOS,
-       SMakefile, etc.)
-       * automake.texi (Invoking Automake): Document it.
-
-Thu Feb 12 19:45:16 1998  Tom Tromey  <address@hidden>
-
-       * aclocal.in (scan_configure): Tightened regexp a bit.  Test
-       whoami.test.  From Johan Danielsson.
-
-       Report from H.J. Lu.
-       * automake.in (output_yacc_build_rule): Don't write rule to create
-       `.h' file.
-       (handle_yacc_lex_cxx): Generate rule to build each .h file.
-
-       * automake.in (handle_options): Set readme-alpha and check-news
-       for Gnits after main processing.  Test alpha.test.  From Jim
-       Meyering.
-
-       * aclocal.in (usage): Updated bug-reporting address.
-       * automake.in (usage): Updated bug-reporting address.
-
-       * compile.am: Remove *.core for 4.4BSD systems.  From Assar
-       Westerlund.
-
-       * automake.in (handle_single_transform_list): Don't set
-       seen_any_source if all sources are C++.
-
-Wed Feb 11 17:30:01 1998  Tom Tromey  <address@hidden>
-
-       * aclocal.in (write_aclocal): Write to $output_file, not
-       aclocal.m4.  From Alexandre Oliva.
-
-Thu Feb  5 13:38:55 1998  Tom Tromey  <address@hidden>
-
-       * automake.in (scan_one_configure_file): Put CXCPP before CXX in
-       regexp.  From Garth Corral.  Test cxxxcpp.test.
-
-Sun Jan 25 11:16:53 1998  Tom Tromey  <address@hidden>
-
-       * automake.in (generate_makefile): Run handle_minor_options before
-       handle_dist, to make sure README-alpha ends up in distribution.
-       From Jim Meyering.
-
-Tue Jan 13 09:19:33 1998  Tom Tromey  <address@hidden>
-
-       * aclocal.in (add_file): Hack for Perl 4.  From Seth Alves.
-
-Thu Dec 11 12:29:46 1997  Ian Lance Taylor  <address@hidden>
-
-       * scripts.am: Don't add @EXEEXT@ to installed scripts.  Scripts
-       are not executables.
-
-Tue Dec  2 20:07:18 1997  Tom Tromey  <address@hidden>
-
-       * automake.in (initialize_global_constants): Bug fix in
-       uninstall_man_format.  Report from Eric Backus.
-
-Mon Dec  1 13:52:39 1997  Tom Tromey  <address@hidden>
-
-       * automake.in (handle_source_transform): Correctly generate
-       _OBJECTS when _SOURCES is defined conditionally.  Reported by Rob
-       Savoye.  Test cond3.test.
-
-       Fixes for test objc.test:
-       * automake.in (initialize_per_input): New global seen_any_source.
-       (handle_yacc_lex_cxx): Use seen_any_source to decide when to
-       define LINK, et al.
-       (handle_single_transform_list): Set seen_any_source.
-       (handle_lib_objects_cond): Likewise.
-
-Wed Nov 26 13:41:57 1997  Tom Tromey  <address@hidden>
-
-       * Released 1.2d.
-
-       * m4/ccstdc.m4: Don't force AM_PROG_CC_STDC before AC_PROG_CPP.
-       Temporary hack.
-
-       * m4/mktime.m4 (AM_FUNC_MTIME): New version from Paul Eggert.
-
-       * header-vars.am (NORMAL_INSTALL, PRE_INSTALL, POST_INSTALL,
-       NORMAL_UNINSTALL, PRE_UNINSTALL, POST_UNINSTALL): Define as `:',
-       not `true'.
-
-       * automake.in (output_yacc_build_rule): Don't overwrite .h file in
-       non-ylwrap case.
-
-       * tags.am (ID): Scan lisp files.
-       (TAGS): Make tags for lisp files.
-
-Tue Nov 25 14:20:42 1997  Tom Tromey  <address@hidden>
-
-       * ltlib.am: Use INSTALL_DATA, not INSTALL_PROGRAM.  From Gord
-       Matzigkeit.
-
-Fri Nov 21 15:15:50 1997  Tom Tromey  <address@hidden>
-
-       * m4/mingw.m4, m4/cygwin.m4: Argument to AC_TRY_COMPILE is
-       function body, not entire function.  From Ian Taylor.
-
-Sat Oct 25 12:39:19 1997  Tom Tromey  <address@hidden>
-
-       * automake.in (scan_one_configure_file): Skip empty string for
-       Perl 4.  From Assar Westerlund.
-
-       * config.guess, config.sub, texinfo.tex: New versions from FSF.
-
-Fri Oct 24 23:15:09 1997  Tom Tromey  <address@hidden>
-
-       * automake.in (output_yacc_build_rule): Use YFLAGS again.
-       (handle_yacc_lex_cxx): Error if YACCFLAGS used.
-
-Wed Aug 27 19:26:45 1997  Rob Savoye  <address@hidden>
-
-       * compile.am: Add suffix rules for ".s.o" and ".S.o" so assembler
-       files can be used.
-       * libtool.am: Add suffix rules for ".s.lo" and ".S.lo" so assembler
-       files can be used.
-       * automake.in: Add .S and .s to the standard list of suffixes so
-       assembler files can be used.
+       * tests/Makefile.am (TESTS): Added aclibobj.test.
+       * tests/aclibobj.test: New file.
+       * automake.in (handle_lib_objects_cond): Avoid undefined variable
+       error.
+       (scan_one_autoconf_file): Handle AC_LIBSOURCE and AC_LIBSOURCES.
 
-Fri Oct 24 13:39:01 1997  Tom Tromey  <address@hidden>
+       * automake.texi (Dist): Mention other distribution types.
+       (Install): Updates.
 
-       * m4/exeext.m4: Require AM_MINGW32.  Check MINGW32 setting.
+2001-07-29  Tom Tromey  <address@hidden>
 
-Thu Oct 23 21:16:28 1997  Tom Tromey  <address@hidden>
+       * automake.texi (Program and Library Variables): Texinfo fix.
+       From Alexey Mahotkin.
 
-       * m4/init.m4 (missing_dir): AC_REQUIRE AM_SANITY_CHECK,
-       AC_ARG_PROGRAM, and AC_PROG_MAKE_SET.
+2001-07-28  Tom Tromey  <address@hidden>
 
-Tue Oct 21 16:49:36 1997  Tom Tromey  <address@hidden>
+       * automake.texi (Strictness): Mention Cygnus mode.
+       (Cygnus): Updated.
+       (Uniform): Likewise.
+       (Canonicalization): Likewise.
+       (Install): Add `nobase_' to example; typo fix.
+       (Clean): Typo.
+       (Dist): Expand on putting a directory into EXTRA_DIST.  Insert
+       section markers.
+       (Options): Texinfo fixes; some text updates.
+       (Tags): Update.
 
-       * automake.in (handle_options): Recognize `cygnus'.
+2001-07-27  Tom Tromey  <address@hidden>
 
-Tue Sep  9 17:09:47 1997  Rob Savoye  <address@hidden>
+       * automake.texi (Invoking Automake): Document --Werror and
+       --Wno-error.
 
-       * m4/mingw.m4: New file for mingw32 support.
-       * m4/exeext.m4: Also check for the mingw32 environment.
+2001-07-26  Tom Tromey  <address@hidden>
 
-Tue Oct 21 00:39:44 1997  Tom Tromey  <address@hidden>
+       * tests/nolink.test: Added no-exeext.
 
-       * m4/Makefile.am (m4data_DATA): Added mingw.m4.
+       * automake.in (check_variable_defined_unconditionally): Don't call
+       macro_dump.
 
-       * automake.in (handle_lib_objects_cond): Don't require @address@hidden
+       * automake.texi (Optional): Don't mention ALL_LINGUAS.
+       (gettext): Likewise.
+       * automake.in (seen_linguas, all_linguas, all_linguas_line):
+       Removed.
+       (handle_gettext): Don't do any checking of the languages.
+       (scan_one_autoconf_file): Don't look for ALL_LINGUAS.
+
+       * automake.in (am_print_error): New function.
+       (am_error): Use it.
+       (am_file_error): Likewise.
+       (am_line_error): Likewise.
+       (am_conf_error): Likewise.
+       (am_conf_line_error): Likewise.
+
+       * automake.texi (Options): Document no-exeext.
+       * automake.in (handle_options): Recognize no-exeext.
+       (rule_define): Handle no-exeext.
+       * tests/Makefile.am (TESTS): Added new file.
+       * tests/exeext2.test: New file.
+
+       * automake.in (make_input_list): Removed.
+       (scan_autoconf_config_files): Don't add to make_input_list.
+       (scan_one_autoconf_file): Don't use make_input_list.
+       (scan_autoconf_files): Use make_list, not make_input_list.
+       (scan_autoconf_files): Likewise.
+
+       * automake.in (seen_exeext): Removed.
+       (generate_makefile): Don't define EXEEXT or OBJEXT.
+       (scan_one_autoconf_file): Don't check for AC_EXEEXT.
+       (am_install_var): Don't check $seen_exeext.
        (handle_programs): Likewise.
+       (rule_define): Allow x to override x$(EXEEXT), for now.
+       (file_contents_internal): Only define rule if rule_define allows
+       us to.
+       * m4/init.m4 (AM_INIT_AUTOMAKE): Define EXEEXT and OBJEXT.
 
-       * subdirs.am (check-recursive installcheck-recursive
-       info-recursive dvi-recursive): Handle case when SUBDIRS is empty.
-       (maintainer-clean-recursive): Likewise.  From Assar Westerlund.
-
-       * aclocal.in (scan_m4_files): If macro recognized, &search will
-       return 1.
-       (scan_configure): If AM_ macro not found, give error.
-
-       * m4/sanity.m4: If `ls' completely fails, die.  From Jim
-       Meyering.
-
-Mon Oct 20 16:13:48 1997  Tom Tromey  <address@hidden>
-
-       * automake.in (handle_single_transform_list): Fixlet for Fortran.
-       From Bernard Urban.
-
-       * libtool.am: Remove _libs, for libtool 1.0d.  From Gord
-       Matzigkeit.
-
-Sun Oct 19 22:59:35 1997  Tom Tromey  <address@hidden>
-
-       * texinfos.am: Bug fix.  From John W. Coomes.
-
-Mon Sep 29 12:57:00 1997  Tom Tromey  <address@hidden>
-
-       * Released 1.2c.
-
-       * automake.in (handle_dist_worker): In topmost directory of
-       project, use `distdir', not `top_distdir', as argument to
-       --output-dir; likewise when building in subdirs.
-
-Sun Sep 28 15:55:46 1997  Tom Tromey  <address@hidden>
-
-       * m4/sanity.m4: Test $*, not address@hidden  From Akim Demaille.
-
-       * automake.in (handle_minor_options): New sub.
-       (check_gnits_standards): Don't handle README-alpha here.
-       (handle_dist_worker): Check NEWS file if `check-news' option
-       requested.
-       (generate_makefile): Run handle_minor_options.
-       (handle_options): Handle readme-alpha and check-news.  Set them if
-       --gnits.
-
-       * depend.am (MKDEP): Use $(CC), not gcc.
-
-Wed Sep 24 23:48:26 1997  Tom Tromey  <address@hidden>
-
-       * Release 1.2b.
-
-       * m4/ccstdc.m4 (AM_PROG_CC_STDC): Make sure this is run before
-       AC_PROG_CPP.  From Markus Oberhumer.
-
-Fri Sep 12 00:04:19 1997  Paul Eggert  <address@hidden>
-
-       * m4/ccstdc.m4 (AM_PROG_CC_STDC): Don't look at __STDC__;
-       look only at whether function prototypes are supported.
-
-Wed Sep 24 16:10:37 1997  Tom Tromey  <address@hidden>
-
-       * Various: Put "-" before each `rm' line.  This avoids a bug in
-       some losing makes (Ultrix, 4.3 BSD).
-
-       * automake.in (handle_dist_worker): Correctly handle subdirs that
-       have their own configure.in.  From Peter Mattis.
-
-       * automake.in (handle_yacc_lex_cxx): Handle de-ansi-fied sources
-       in srcdir as well as build dir.
-
-       * automake.in (scan_one_configure_file): Detect AC_OUTPUT().
-       (handle_single_transform_list): Don't apply length() to a list.
-
-       * automake.in (handle_programs): Define _DEPENDENCIES variable if
-       not defined by user.
-
-Thu Sep 18 19:43:38 1997  Tom Tromey  <address@hidden>
-
-       * m4/sanity.m4: Quote "$@" for m4.  From Gord Matzigkeit.
-
-Mon Sep  1 23:50:38 1997  Tom Tromey  <address@hidden>
-
-       * automake.in (handle_texinfo): Set need_texi_file only when
-       TEXINFO_TEX not defined.
-
-Thu Aug 28 09:37:29 1997  Tom Tromey  <address@hidden>
-
-       From Juergen Erhard:
-       * automake.in (SUFFIX_RULE_PATTERN): New global.
-       (handle_single_transform_list): If suffix matches a source suffix,
-       rewrite.
-       (read_am_file): Add suffix rules to %suffix_rules.
-       (initialize_per_input): Initialize %suffix_rules.
-
-Wed Aug 27 12:56:50 1997  Tom Tromey  <address@hidden>
-
-       * automake.in (handle_texinfo): Also remove .kys and .ps files.
-
-       * automake.in (handle_yacc_lex_cxx): Quoting fixlet.  From Kaveh
-       Ghazi.
-
-       * aclocal.in (write_aclocal): Print copyright and copying
-       permissions.  From RMS.
-       * automake.in (initialize_global_constants): More copyright stuff
-       from RMS.
-
-       * automake.in (handle_texinfo): Only require texinfo.tex in
-       appropriate situations.  Report from Paul D. Smith.
-
-Mon Aug 25 15:45:52 1997  Tom Tromey  <address@hidden>
-
-       * automake.in (scan_dependency_file): Fix so that
-       OMIT_DEPENDENCIES will work.  From Alexander Lukyanov.
-
-       * automake.in (handle_texinfo): texi2dvi can generate `.cn'
-       files.  From Akim Demaille.
-
-Wed Aug  6 10:51:37 1997  Tom Tromey  <address@hidden>
-
-       * automake.in (handle_texinfo): Reversed sense of test.
-
-Tue Aug  5 17:49:54 1997  Tom Tromey  <address@hidden>
-
-       * automake.in (handle_dependencies): Always mark OMIT_DEPENDENCIES
-       as seen.
-
-       * automake.in (handle_yacc_lex_cxx): Make each _.c file depend on
-       ansi2knr.
-
-       * automake.in (handle_yacc_lex_cxx): Fix for makes which don't
-       allow $< in non-suffix rules.  From Akim Demaille.
-
-       * automake.in (value_to_list): If variable name contains configure
-       substitution, then just ignore it.
-
-       * automake.in (variable_defined): Mark variable is seen, even if
-       only conditionally seen.
-
-       * Makefile.am: Check for bad splits.
-       * automake.in (various): Use split(' ',...), not split(/ /,...).
-
-Tue Aug  5 14:08:51 1997  Ian Lance Taylor  <address@hidden>
-
-       * ylwrap: If the program is a relative path, force it to be
-       absolute.
-
-Tue Aug  5 16:59:41 1997  Tom Tromey  <address@hidden>
-
-       * missing: Examine A[CM]_CONFIG_HEADER for name of files to
-       touch.  From Markus F.X.J. Oberhumer.
-
-       * automake.in (require_file_internal): Better error message when
-       installing.
-
-       * automake.in (handle_texinfo): Smarter test when deleting output
-       of makeinfo.
-
-Sat Aug  2 13:32:45 1997  Tom Tromey  <address@hidden>
-
-       * automake.in (do_check_merge_target): In --cygnus mode, check
-       doesn't depend on all.
-
-       * automake.in (output_yacc_build_rule): Use YACCFLAGS, not
-       YFLAGS.  Per GNU Standards.
-
-       * dejagnu.am (RUNTESTDEFAULTFLAGS): New macro.
-       (check-DEJAGNU): Use it.
-
-       * subdirs.am (maintainer-clean-recursive): Actually reverse subdir
-       list.  From Alexander Lukyanov.
-
-       * automake.in (initialize_global_constants): Changed generated
-       copyright.  From RMS.
-
-       * automake.in (handle_configure): Pass correct value for
-       CONFIG_FILES.  From Ian Taylor.
-
-Thu Jul 31 17:36:10 1997  Ian Lance Taylor  <address@hidden>
-
-       * ylwrap (pairlist): Shift out trailing "--"; don't pass it to
-       $prog.
-
-Thu Jul 24 00:52:02 1997  Tom Tromey  <address@hidden>
-
-       * automake.in (initialize_global_constants): Changed index names
-       in dist hash so that alternate dist targets will be generated.
-       Report from Glenn Amerine.
-
-       Suggestion from Karl Berry:
-       * automake.in (usage): Added short info line.
-
-       * aclocal.in (usage): Updated bug-reporting address.  Added short
-       info line.
-
-       * automake.in (handle_emacs_lisp): Put contents of lisp-clean.am
-       into output.  Report from Karl Berry.
-
-Mon Aug 25 16:14:32 1997  Tom Tromey  <address@hidden>
-
-       * automake.in (handle_configure): Only generate ":" syntax for
-       CONFIG_FILES when really needed.
-
-Wed Aug  6 14:47:12 1997  Ian Lance Taylor  <address@hidden>
-
-       * remake-hdr.am (@CONFIG_HEADER@): Use a dummy command to force
-       GNU make to recheck the file modification time.
-
-Tue Aug  5 14:44:10 1997  Ian Lance Taylor  <address@hidden>
-
-       * ylwrap: If the program is a relative path, force it to be
-       absolute.
-
-Mon Aug  4 14:52:08 1997  Ian Lance Taylor  <address@hidden>
-
-       * automake.in ($RULE_PATTERN): Accept $ in body of rule name.
-       (handle_programs): Don't append $(EXEEXT) if the
-       program name contains '.'.
-       (am_install_var): When rewriting _PROGRAMS, don't append $(EXEEXT)
-       if the program names contains '.'.  Also, handle conditionals.
-
-Sat Aug  2 14:43:41 1997  Tom Tromey  <address@hidden>
-
-       * m4/exeext.m4: Fixed quoting.
-
-       * m4/exeext.m4 (am_cv_exeext): Use echo, not ls.
-
-       * automake.in (handle_programs): Transform @EXEEXT@ when including
-       program.am.
-
-Fri Aug  1 17:09:09 1997  Tom Tromey  <address@hidden>
-
-       * automake.in (handle_programs): Don't transform CYGWIN or
-       NOTCYGWIN.
-       (am_install_var): Likewise.
-
-       * progs-clean.am (address@hidden@PROGRAMS): Never include EXEEXT.
-
-       * progs.am: Removed @EXEEXT@; it is now implicit.
-       * program.am: Add @EXEEXT@ in appropriate places; removed
-       cygwin-dependent code.
-       * automake.in (seen_exeext): Renamed from seen_cygwin32.
-       (handle_programs): Use seen_exeext.
-       (scan_one_configure_file): Look for AM_EXEEXT, not AM_CYGWIN32.
-       (check_cygnus): Use seen_exeext.
-       (am_install_var): Likewise.
-       (am_install_var): When handling PROGRAMS primary, append EXELIST
-       to program names as necessary.
-       * m4/exeext.m4: Require AM_CYGWIN32.
-
-Thu Jul 31 17:36:10 1997  Ian Lance Taylor  <address@hidden>
-
-       * ylwrap (pairlist): Shift out trailing "--"; don't pass it to
-       $prog.
-
-       * texinfos.am: Add -I $(srcdir) when invoking $(MAKEINFO) for
-       CYGNUS .texinfo.info case and .texinfo case.
+2001-07-25  Tom Tromey  <address@hidden>
 
-       * automake.in (handle_configure): Correct handling of inputs for
-       for AC_OUTPUT files when invoking config.status.
+       From Nicolas Joly:
+       * tests/pr9.test: Require GNU make.
+       * tests/dirname.test: Don't use `-u'.
 
-Mon Jul 28 15:29:25 1997  Rob Savoye  <address@hidden>
+2001-07-22  Tom Tromey  <address@hidden>
 
-       * m4/cygwin.m4: Set a variable CYGWIN32, rather than EXEEXT.
-       * m4/exeext.m4: New autoconf test for an executable suffix.
-       * m4/Makefile.in: Install the new exeext.m4 test.
+       * tests/Makefile.am (TESTS): Added auxdir2.test.
+       (XFAIL_TESTS): Likewise.
+       * tests/auxdir2.test: New file.
 
-Sun Jun 22 14:01:59 1997  Tom Tromey  <address@hidden>
+       * tests/Makefile.am (XFAIL_TESTS): Removed substtarg.test.
+       * automake.in (TARGET_PATTERN): Add `@' as allowable character.
 
-       * Released version 1.2.
+       * tests/Makefile.am (XFAIL_TESTS): Removed exeext.test.
+       * automake.in (am_install_var): Add $(EXEEXT) even if program name
+       holds `.'.  Don't add $(EXEEXT) if program name already has it.
+       (handle_programs): Don't add $(EXEEXT) if user already did.
+       (make_paragraphs): Don't compute EXEEXT.
 
-       * automake.in (handle_texinfo): Look for texinfo.tex in aux dir.
+       * tests/Makefile.am (TESTS): Added exeext.test.
+       (XFAIL_TESTS): Likewise.
+       * tests/exeext.test: New file.
 
-       * automake.in (require_file_internal): Only print "installing"
-       when actually installing.  From Gord Matzigkeit.
+2001-07-22  Tom Tromey  <address@hidden>
 
-       * automake.in (handle_tests): Exit status `77' means `ignore
-       test'.  From François Pinard.
-       (handle_tests) Also, make banner same size as text.
+       * lib/am/progs.am (install-%DIR%PROGRAMS): Test for `prog', not
+       `prog.exe' on Cygwin with libtool.  From Robert Collins.
 
-       * automake.in (handle_configure): Don't handle PRE_BUILT_SOURCES.
-       (handle_built_sources): Likewise; don't have `all' depend on
-       BUILT_SOURCES.
+2001-07-21  Tim Van Holder  <address@hidden>
 
-       * depend.am (DEPS_MAGIC): New variable.
-       (.deps/.P): Depend on BUILT_SOURCES again.
+       * tests/dirname.test: Explicitly use $SHELL to run the
+       script; this avoids failures on DJGPP.
+       * tests/install2.test: Skip if 'chmod 000' doesn't make
+       a file unreadable.
 
-       * texinfos.am: Use ||, not ;.
+2001-07-21  Tom Tromey  <address@hidden>
 
-Tue Jun 10 11:04:16 1997  Tom Tromey  <address@hidden>
+       * tests/libtool2.test: Check for libtoolize.
 
-       * m4/cygwin.m4: Examine output of compiler to see if .exe needed.
+       * tests/Makefile.am (TESTS): Added substtarg.test.
+       (XFAIL_TESTS): Likewise.
+       * tests/substtarg.test: New file.
 
-Sun Jun  1 13:16:05 1997  Tom Tromey  <address@hidden>
+       * automake.in (handle_dist): Handle case where aux dir doesn't
+       have a Makefile.  Fixes depdist.test.
+       * tests/Makefile.am (XFAIL_TESTS): Removed depdist.test.
+       * tests/depdist.test: Look for config/depcomp.
 
-       * automake.in (handle_built_sources): Handle PRE_BUILT_SOURCES.
-       (handle_configure): Likewise.
+       * tests/Makefile.am (TESTS): Added depdist.test.
+       (XFAIL_TESTS): Likewise.
+       * tests/depdist.test: New file.  From Eric Magnien.
 
-       * depend2.am (.deps/%.P): Don't generate file if MKDEP fails.
-       From Alexandre Oliva.
+       * tests/ccnoco.test: Removed `configure.2' test; in autoconf 2.50
+       AC_PROG_CC_C_O does require AC_PROG_CC.
 
-       * depend.am (.deps/.P): Depend on PRE_BUILT_SOURCES, not
-       BUILT_SOURCES.
+       From Erik Lindahl:
+       * lib/depcomp (tru64): Some Tru64 compilers use `foo.d' and not
+       `foo.o.d'.
+       * m4/depend.m4 (_AM_DEPENDENCIES): Check to make sure compilation
+       output is suitable for make.
 
-       * automake.in (initialize_global_constants): Added 1997 to
-       copyright info.
+       * automake.texi (Macros): Document AM_PROG_AS.
+       (Assembly Support): New node.
+       * m4/Makefile.am (m4data_DATA): Added as.m4.
+       * m4/as.m4: New file.
 
-       * automake.in (output_yacc_build_rule): Never move y.tab.c over
-       the .h file.  From Jim Meyering.
+       * automake.texi (Tags): Added uref to global tags.
 
-Thu May 29 23:16:02 1997  Tom Tromey  <address@hidden>
+2001-07-21  Tim Van Holder  <address@hidden>
 
-       * automake.in (scan_one_configure_file): Avoid defining ACLOCAL,
-       AUTOCONF, AUTOMAKE, AUTOHEADER.  From David Zaroski.
+       * automake.in (handle_single_transform_list): Use $(DEPDIR)
+       instead of hardcoding '.deps'.
+       * m4/depend.m4 (AM_SET_DEPDIR): Sync with libtool's libdir check.
 
-Sat Feb 22 16:05:24 1997  Gordon Matzigkeit  <address@hidden>
+2001-07-20  Derek Price  <address@hidden>
 
-       * Makefile.am (pkgdata_DATA): Under this new scheme, we no longer
-       need compile-kr.am.  Delete it.
+       * m4/header.m4 (AM_CONFIG_HEADER): Create stamp-h files in the correct
+       locations.
+       * tests/dirname.test: New test.
+       * tests/stamph2.test: New test.
+       * tests/Makefile.am: Add new tests.
+       * tests/Makefile.in: Regenerated.
 
-       * automake.in (handle_yacc_lex_cxx, get_object_extension): Use
-       _.c, _.o, _.lo instead of ._c, ._o, .l_o for de-ansification.
+2001-07-19  Tom Tromey  <address@hidden>
 
-       * ansi2knr.c (main): Parse our arguments a little differently so
-       that we don't create null output files when we can't read the
-       input file.
+       * automake.texi (Tags): Document GTAGS_ARGS.
+       * lib/am/tags.am (GTAGS): Added GTAGS_ARGS.  From Shigio Yamaguchi.
 
-Wed May 28 23:40:33 1997  Tom Tromey  <address@hidden>
+2001-07-19  Tom Tromey  <address@hidden>
+            Alexandre Duret-Lutz  <address@hidden>
 
-       * depend.am (.deps/.P): Depend on $(BUILT_SOURCES) again.  From
-       Gord Matzigkeit.
+       Fix for ccnoco.test, subobj8.test:
+       * m4/Makefile.am (m4data_DATA): Added auxdir.m4.
+       * tests/Makefile.am (XFAIL_TESTS): Removed ccnoco.test,
+       subobj8.test.
+       * m4/minuso.m4 (AM_PROG_CC_C_O): Use absolute path to compile.
+       Use AM_AUX_DIR_EXPAND.
+       * lib/compile: Handle case where `-o' argument is the name of an
+       executable, not an object file.
+       * m4/auxdir.m4: New file, from...
+       * m4/missing.m4: ... here.  Moved AM_AUX_DIR_EXPAND.
+       * automake.in (handle_single_transform_list, lang_c_rewrite):
+       Require compile using `require_config_file'.
 
-Mon May 26 22:50:49 1997  Tom Tromey  <address@hidden>
+2001-07-19  Tom Tromey  <address@hidden>
 
-       * remake-hdr.am ($(srcdir)/@address@hidden): Make echo silent.  Report
-       from Alexandre Oliva.
+       * automake.texi (Program and Library Variables): Added X example
+       for _LDADD.
 
-       * automake.in (generate_makefile): If --no-force, check
-       Makefile.in against configure.in and aclocal.m4.  Report from
-       Alexandre Oliva.
+2001-07-19  Tom Tromey  <address@hidden>
 
-       * automake.in (handle_dist_worker): Put --include-deps on command
-       line if specified originally.
-       (handle_configure): Likewise.
+       * automake.texi (Distributing): Updated to reflect new license.
 
-       * configure.in: Error if Perl 5.001 is used.
+2001-07-18  Alexandre Duret-Lutz  <address@hidden>
 
-       * ylwrap: Don't quote $prog when executing it.  From Jim
-       Meyering.
+       * automake.in (require_build_directory): New function, extracted
+       from ...
+       (handle_single_transform_list): ... here.
+       (require_build_directory_maybe): New function.
+       (handle_prograns, handle_libraries, handle_ltlibraries): Call
+       require_build_directory_maybe() to ensure the subdirectory
+       in which a target may lie will exist when the target is created.
+       (handle_libraries, handle_ltlibraries): Use basename before
+       checking library name.
+       * lib/am/library.am (%LIBRARY%): Depend on %DIRSTAMP%.
+       * lib/am/ltlibrary.am (%LTLIBRARY%): Likewise.
+       * lib/am/program.am (%PROGRAM%): Likewise.
 
-Thu May 15 12:05:20 1997  Tom Tromey  <address@hidden>
+2001-07-18  Tim Van Holder  <address@hidden>
 
-       * automake.in (handle_merge_targets): Set INSTALL_SCRIPT in
-       install-strip target.
+       * m4/missing.m4: Reword comment.
 
-Tue May 13 08:20:02 1997  Tom Tromey  <address@hidden>
+2001-07-18  Pavel Roskin  <address@hidden>
 
-       * automake.in (handle_dependencies): Don't generate dependencies
-       if DEP_FILES would be empty.
+       * automake.texi: Rename AM_DEPENDENCIES to _AM_DEPENDENCIES.
+       * tests/gcj.test: Likewise.
+       * tests/gcj2.test: Likewise.
+       * tests/gcj3.test: Likewise.
 
-Sun May 11 13:59:14 1997  Tom Tromey  <address@hidden>
+2001-07-18  Tom Tromey  <address@hidden>
 
-       * config.guess: New version from FSF.
+       * lib/compile: Change how lockdir is computed.  If linking or
+       compiling without `-o', just run the compiler.
 
-       * automake.in (get_object_extension): If ansi2knr in another
-       directory, always define ANSI2KNR to full path.  From Akim
-       Demaille.
+       * tests/Makefile.am (TESTS): Added ccnoco.test.
+       (XFAIL_TESTS): Likewise.
+       * tests/ccnoco.test: New file.
 
-       * kr-extra.am (clean-krextra): Remove ansi2knr here, not in
-       distclean-krextra.
+2001-07-17  Tom Tromey  <address@hidden>
 
-       * missing: Regularized grammar.  From François Pinard.
+       * lib/ylwrap: Added special exception.
+       * lib/py-compile: Added license.
+       * lib/mdate-sh: Added special exception.
+       * lib/elisp-comp: Added special exception.
+       * lib/compile: Added special exception.
+       * lib/depcomp: Added special exception.
 
-Sat May 10 16:48:47 1997  Tom Tromey  <address@hidden>
+       Report from Motoyuki Kasahara:
+       * tests/make.test: Use am__include.
+       * tests/exsource.test: Use am__include.
+       * m4/make.m4 (AM_MAKE_INCLUDE): Use am__include and am__quote.
+       * automake.in (handle_languages): Use am__include and am__quote.
 
-       * Released 1.1p.
+       * m4/depend.m4 (AM_DEPENDENCIES): Renamed to _AM_DEPENDENCIES.
+       * m4/init.m4: Updated callers.
 
-       * m4/init.m4: Error if source directory already configured.
+2001-06-10  Tim Mooney  <address@hidden>
 
-       * automake.in (scan_dependency_file): Always use srcdir name as
-       passed in on command line.
+       * aclocal.in (parse_arguments, write_aclocal): Update Copyrights.
+       * aclocal.in (scan_configure, add_file): Handle the full macro
+       name even if it contains numbers, such as I18N.
 
-Thu May  1 12:53:46 1997  Ian Lance Taylor  <address@hidden>
+2001-07-16  Tom Tromey  <address@hidden>
 
-       * automake.in (value_to_list): Don't fail when a variable
-       substitution is not a complete word.
+       * automake.texi (Dependencies): Link to dependency tracking page.
+       (Data): Mention dist_.
+       (Clean): Mention clean heuristics.
+       (Install): Mention nobase_.
 
-Tue May  6 15:22:41 1997  Ian Lance Taylor  <address@hidden>
+       * automake.texi (Program and Library Variables): Document _LINK.
 
-       * subdirs.am: Fix check for make -k to use $(MAKEFLAGS) and to not
-       get fooled by command line arguments.
+2001-07-16  Alexandre Duret-Lutz  <address@hidden>
 
-Sat May 10 15:48:46 1997  Tom Tromey  <address@hidden>
+       * automake.in (handle_libraries): Allow libraries to lie in
+       a subdirectory by constraining only the basename to start
+       with 'lib', not the whole path.
 
-       * m4/ccstdc.m4: Print "none needed" if compiler accepts ANSI C by
-       default.
+2001-07-16  Alexandre Duret-Lutz  <address@hidden>
 
-Mon May  5 23:24:09 1997  Tom Tromey  <address@hidden>
+       * tests/subobj8.test: New file.
+       * tests/Makefile.am (XFAIL_TESTS, TESTS): Add subobj8.test.
 
-       * mkinstalldirs, config.guess, config.sub, COPYING, texinfo.tex:
-       New versions from FSF.
+2001-07-16  Tom Tromey  <address@hidden>
 
-Sun May  4 15:21:22 1997  Tom Tromey  <address@hidden>
+       Fix for PR automake/212:
+       * lib/am/lisp.am (install-%DIR%LISP): Added missing `\'.
+       (uninstall-%DIR%LISP): Likewise.
 
-       * texinfos.am (install-info): Avoid the Debian install-info.
-       (uninstall-info): Likewise.
+2001-07-15  Tom Tromey  <address@hidden>
 
-       * automake.in (handle_single_transform_list): Strip any directory
-       name before processing name.
+       * automake.in (usage): Rewrote code to handle columnization.
+       From Alexey Mahotkin and Maxim Sinev.
 
-Thu May  1 19:24:08 1997  Tom Tromey  <address@hidden>
+       Report from Ralf Corsepius:
+       * automake.in (TARGET_PATTERN): Add `+' as valid character.
+       (SUFFIX_RULE_PATTERN): Likewise.
+       * tests/Makefile.am (TESTS): Added cxx.test.
+       * tests/cxx.test: New file.
 
-       * depend2.am (.deps/%.P): Don't put $(srcdir)/ into dependency.
+       * lib/am/tags.am (distclean-tags): Remove files for gtags.
+       From Shigio Yamaguchi.
 
-Wed Apr 30 19:15:47 1997  Tom Tromey  <address@hidden>
+2001-07-14  Steve M. Robbins  <address@hidden>
 
-       * automake.in (handle_dist_worker): Change how top_distdir is
-       computed.  Based on patch from Ian Taylor.
-       (handle_dist): Define top_distdir.
+       * lib/am/distdir.am (distcheck): Emit diagnostic when files
+       remain after "make uninstall".
 
-       * automake.in (handle_yacc_lex_cxx): Include CXXFLAGS in CXXLINK.
-       (handle_yacc_lex_cxx): Include CFLAGS in LINK.
+2001-07-14  Tom Tromey  <address@hidden>
 
-Wed Apr 30 14:46:37 1997  Ian Lance Taylor  <address@hidden>
+       * lib/am/tags.am (.PHONY): Depend on GTAGS.  From Shigio Yamaguchi.
 
-       * automake.in (handle_dist_worker): When building a distribution,
-       if SUBDIRS is defined conditionaly, recur into each possible
-       subdirectory.
+       * lib/missing (makeinfo): Redirect stdout and stderr outside
+       subshell.  From Alexandre Oliva.
 
-       * clean.am (distclean-generic): Remove stamp-h[0-9]*.
+2001-07-14  Akim Demaille  <address@hidden>
 
-Tue Apr 29 19:11:45 1997  Tom Tromey  <address@hidden>
+       * automake.in ($obsolete_rx): No need for `\b(foo\b|\bbar)\b',
+       `\b(foo|bar)\b' is what we want.
+       * aclocal.in: Likewise.
 
-       * INSTALL, mkinstalldirs, install-sh: Update from François
-       Pinard.
+2001-07-14  Akim Demaille  <address@hidden>
 
-       * aclocal.in (add_macro): If AC_ macro was defined, then mark it
-       as seen.  Report from Janos Farkas.
+       * m4/depend.m4 (AM_DEPENDENCIES): Don't define `depcpp' which is
+       not used.
+       Do not require the corresponding AC_PROG_CC as AC_PROG_CC is
+       actually modified to require AM_DEPENDENCIES.
+       Rename `confdir' as `conftest.dir' so that the configure trap
+       remove it.
 
-       * subdirs.am: Clean targets now run in reverse order.  From Kevin
-       Dalley.
+2001-07-04  Tom Tromey  <address@hidden>
 
-       * automake.in (handle_texinfo): Put `aminfo', not `info' on
-       @clean.
+       Fix for nolink.test:
+       * tests/Makefile.am (XFAIL_TESTS): Removed nolink.test.
+       * lib/am/program.am (%PROGRAM%%EXEEXT%): Use %EXEEXT%.
+       * automake.in (am_install_var): Only rewrite PROGRAMS if
+       $seen_exeext.
+       (make_paragraphs): Always define %EXEEXT%.
 
-       * mdate-sh: New version from Ulrich Drepper.
+2001-07-04  Alexandre Duret-Lutz  <address@hidden>
 
-Mon Apr 28 01:18:05 1997  Tom Tromey  <address@hidden>
+       * tests/nolink.test: New file.
+       * tests/Makefile.am (TEST, XFAIL_TESTS): Add nolink.test.
 
-       * automake.in (handle_configure): Makefile only depends on
-       BUILT_SOURCES when generating dependencies.
+2001-07-04  OKUJI Yoshinori  <address@hidden>
 
-       * Released 1.1o.
+       * automake.in (scan_texinfo_file): Add the second argument to
+       address@hidden' into @CLEAN_SUFFIXES, because the combined index
+       itself may not be used directly.
 
-Sun Apr 27 23:58:20 1997  Tom Tromey  <address@hidden>
+2001-07-04  Tom Tromey  <address@hidden>
 
-       * automake.in (handle_dist): Use variable_value, not
-       variable_contents.
-
-Wed Apr 23 14:04:28 1997  Ian Lance Taylor  <address@hidden>
-
-       * automake.in (IF_PATTERN): Define.
-       (ELSE_PATTERN, ENDIF_PATTERN): Define.
-       (AM_CONDITIONAL_PATTERN): Define.
-       (%configure_cond): New global hash table.
-       (handle_source_transform): If xx_SOURCES is defined conditionally,
-       define xx_OBJECTS using the same conditions.
-       (handle_lib_objects): If variable is defined conditionally, define
-       xx_DEPENDENCIES conditionally.  Most code moved into subroutine.
-       (handle_lib_objects_cond): New function, broken out of
-       handle_lib_objects.
-       (scan_one_configure_file): Look for $AM_CONDITIONAL_PATTERN.
-       (conditional_true_when): New function.
-       (variable_defined): Add new parameter: cond.  Change some
-       callers.
-       (variable_conditions): New function.
-       (variable_conditionally_defined): New function.
-       (variable_value): New function.  Change most uses of $contents to
-       call variable_value instead.
-       (value_to_list): New function, from variable_value_as_list.
-       (variable_value_as_list): Add new parameter: cond.  Change all
-       callers.  Move some code into subroutine value_to_list.
-       (define_pretty_variable): Add new parameter: cond.  Change call
-       callers.
-       (read_am_file): Handle conditionals.
-       (initialize_per_input): Initialize %conditional and
-       @conditional_stack.
-       * m4/cond.m4: New file.
-       * m4/Makefile.am (m4data_DATA): Add cond.m4.
-
-Sun Apr 27 11:03:36 1997  Tom Tromey  <address@hidden>
-
-       * automake.in (handle_dist_worker): Run automake once per
-       directory, instead of once at the top.
-       (handle_dist_worker): Changed interface.
-       (handle_dist): Likewise.
-       (generate_makefile): Better error message if can't write the
-       file.
-       (handle_dist_worker): Pass top_distdir to subdir makes.
-
-       * automake.in (handle_dist_worker): Use mode 777 on directories in
-       distribution.  GNU Standards compliance.
-
-       * automake.in (handle_yacc_lex_cxx): Don't use interlock.
-       (output_yacc_build_rule): Don't use interlock; just use new ylwrap
-       instead.  The new ylwrap builds in a subdir; idea from Mark
-       Eichin.
-       (output_lex_build_rule): Likewise.
-       (initialize_global_constants): [common_files] Don't include
-       interlock.
-
-       * Makefile.am (pkgdata_SCRIPTS): Removed interlock.
-       * interlock: Removed.
-       * ylwrap: Changed interface.  Now runs command in subdir.
-
-       * remake.am (config.status): Look in srcdir for config header.
-       ($(srcdir)/configure): Likewise.
-       * remake-hdr.am (@STAMP@): Look in srcdir for config header.  From
-       Phil Nelson.
-       ($(srcdir)/@CONFIG_HEADER_IN@): Likewise.
-
-       * automake.in (handle_aclocal_m4): Make target $(ACLOCAL_M4), not
-       value spelled out.  From Phil Nelson
-
-       * automake.in (handle_configure): Don't skip Makefiles; instead
-       skip automake inputs.
-       (handle_merge_targets): Changed interface; put $makefile at
-       beginning of @all (rather than Makefile at end).
-
-       * automake.in (handle_yacc_lex_cxx): Correctly compute
-       de_ansi_sources.
-
-       * clean-kr.am (distclean-kr): Do nothing; ansi2knr is removed in
-       kr-extra.am.
-
-       * Makefile.am: Check to make sure there are no accidental
-       configure substitutions.
-
-       * automake.in (handle_texinfo): Don't allow configure substitution
-       on @MAKEINFO@ here.
-
-       * automake.in (handle_yacc_lex_cxx): ._c and ._o files both depend
-       on $(ANSI2KNR).
-
-       * kr-extra.am (ansi2knr): Removed.
-       (ansi2knr.o): Likewise.
-
-       * automake.in (get_object_extension): Allow ansi2knr to be built
-       from any directory.
-
-Fri Apr 25 12:33:23 1997  Tom Tromey  <address@hidden>
-
-       * missing: Changed bison text.  From Ian Taylor.
-
-       * m4/missing.m4: Redirect stdin of testee.  From Bill Fenner.
-
-       * automake.in (output_yacc_build_rule): Generate rule to create .h
-       file.
-       (handle_footer): Generate unique, sorted list of suffixes.
-
-       * automake.in (scan_one_configure_file): Recognize AC_PROG_AWK,
-       _CPP, _CXCPP, _LN_S.  From Ralph Schleicher.
-
-Mon Apr 21 12:35:57 1997  Ian Lance Taylor  <address@hidden>
+       * missing: Updated.
+       * lib/missing (makeinfo): Use subshell, not explicit sh
+       invocation.
 
-       * automake.in (@config_fullnames): New array.
-       (@config_names): New array, replacing $config_name.
-       (@config_headers): New array, replacing $config_header.
-       (get_object_extension): Handle multiple header files.
-       (handle_tags, handle_merge_targets): Likewise.
-       (scan_one_configure_file): Likewise.
-       (handle_configure): Likewise.  Don't check for the configuration
-       header file in AC_OUTPUT; it won't be there.
-       * remake-hdr.am: Handle multiple header files.
-       * clean-hdr.am: New file, broken out of remake-hdr.am.
-       * m4/header.m4: Handle multiple header files.
-       * Makefile.am (pkgdata_DATA): Add clean-hdr.am.
+       * automake.texi (Headers): Mention that we prefer uninstalled
+       headers in _SOURCES.
+       (ANSI): Mention cross-compilation limitation.
 
-Wed Apr 16 00:05:47 1997  Tom Tromey  <address@hidden>
+2001-07-03  Tom Tromey  <address@hidden>
 
-       * texinfos.am (.texi.info, .texi, .texinfo.info, .info): Remove
+       * configure.in: Upped to 1.4i.
 
-       * automake.in (define_program_variable): Added `override' argument.
-       (handle_texinfo): Pass override arg when defining MAKEINFO.
-       (AC_MISSING_PROG): New constant.
-       (scan_one_configure_file): Use it.
+       * configure.in: Released 1.4h.
 
-Tue Apr 15 12:12:28 1997  Tom Tromey  <address@hidden>
+       * lib/config.guess, lib/config.sub: Updated.
 
-       * automake.in (handle_texinfo): In --cygnus mode, reserve
-       clean-info for the user.
+2001-07-02  Tom Tromey  <address@hidden>
 
-       * automake.in (handle_subdirs): Typo fix.  From Akim Demaille.
+       Fix for libtool2.test:
+       * tests/libtool2.test: Use `rm -f' to placate maintainer-check.
+       * lib/am/libtool.am (distclean-libtool): Conditional on TOPDIR.
+       * automake.in (generate_makefile): Call handle_libtool
+       unconditionally.
+       * tests/Makefile.am (XFAIL_TESTS): Removed libtool2.test.
 
-       * automake.in (handle_tags): Only use SUBDIRS if it is actually
-       defined.  Report from Ian Taylor.
+       * tests/libtool2.test: Look for `.lo' files to be removed.
 
-       * tags.am: Added prefix to SUBDIRS rules.
+       * tests/Makefile.am (XFAIL_TESTS): Added libtool2.test.
 
-Wed Apr  9 17:09:40 1997  Tom Tromey  <address@hidden>
+       * tests/Makefile.am (TESTS): Removed dup.test.
+       * tests/dup.test: Removed.
+       * aclocal.in (scan_file): Don't give error for duplicate macro.
 
-       * automake.in (handle_ltlibraries): Use correct rpath
-       substitution.  Bug from Jim Blandy.
+2001-07-01  Tom Tromey  <address@hidden>
 
-Mon Apr  7 17:40:18 1997  Tom Tromey  <address@hidden>
+       * automake.texi (Program and Library Variables): Document
+       subdir-objects.  Document fact that per-object flags override AM_
+       flags.
+       (Options): Likewise.
+       (Yacc and Lex): Document YFLAGS, AM_YFLAGS, LFLAGS, AM_LFLAGS.
+       (Multilibs): New node.
+       (Macros): Documented missing macros.
+       (Auxiliary Programs): New node.
 
-       * automake.in (AM_INIT_AUTOMAKE_PATTERN): Fixed for new 3rd arg.
-       Test version2.test.
+       * lib/missing (makeinfo): If makeinfo exists, and we're in --run
+       mode, then simply fail.
 
-Thu Apr  3 19:07:59 1997  Tom Tromey  <address@hidden>
+2001-07-01  Tim Van Holder  <address@hidden>
 
-       * Released 1.1n.
+       * lib/ylwrap: Improve support for DOS paths (and paths
+       containing backslashes in general).
 
-       * tags.am (TAGS): Run "cd && etags" in subshell for proper
-       associativity.
+2001-07-01  Tom Tromey  <address@hidden>
 
-       * texinfos.am (install-info-am): If --cygnus, then info file can
-       be in build dir.  From David Zaroski.
+       * lib/missing: Added special exception to license.
 
-       * ltlibrary.am (@LTLIBRARY@): use @RPATH@, not explicit -rpath.
+       * missing: Updated.
+       * lib/missing: Updated.  Added comment explaining configure.ac
+       oddity.
 
-       * automake.in (handle_ltlibraries): Treat EXTRA_ libraries
-       specially.
+       * lib/depcomp: Reorder arguments to gcc3.
+       From Per Oyvind Hvidsten.
 
-Wed Apr  2 00:03:50 1997  Tom Tromey  <address@hidden>
+       * tests/Makefile.am (TESTS): Added libtool2.test.
+       * tests/libtool2.test: New file.
 
-       * automake.in (handle_source_transform): Don't generate dependency
-       on config.h.
-       (scan_dependency_file): Strip the .P file from the target.
+       * automake.texi (Program and Library Variables): Added example for
+       _AR.
 
-       * automake.in (handle_tags): Use single, not double, quotes when
-       setting list variable.
+2001-06-29  Tom Tromey  <address@hidden>
 
-       * data.am, header.am, libs.am, lisp.am, ltlib.am, progs-clean.am,
-       progs.am, scripts.am, tags.am: Use single quotes to fill list
-       variable; otherwise `$' in filename will not work.  From Per
-       Bothner.
+       * tests/cond11.test: Use `=', not `=='.
+       * tests/cond12.test: Look for automake in build directory, not
+       source directory.
 
-       * mdate-sh: Use "ls -d" so mdate-sh can be run on a directory.
-       From Bruno Haible.
+2001-06-29  Richard Boulton  <address@hidden>
 
-       * automake.in (handle_programs): Error if LIBADD used where LDADD
-       meant.
-       (handle_libraries): Error if LDADD used where LIBADD meant.
-       (handle_ltlibraries): Likewise.
+       * automake.in (conditionals_true_when): Pass first parameters by
+       reference, avoiding bug which put all parameters in @CONDS instead
+       of @WHENS.  Report by Kalle Olavi Niemitalo.
+       Take a single WHEN instead of an array of WHENS.
+       Remove FIXME; can't now have an empty @WHENS.
+       (conditional_is_redundant): New sub.
+       (variable_conditions_reduce): Check whether each condition is
+       implied by any of the other conditions (other those already
+       discarded), rather than checking only against those already
+       considered (and kept).  Also, fix sense of check: was keeping
+       tautologous terms instead of discarding them.  Use
+       conditional_is_redundant instead of conditionals_true_when.
+       * tests/Makefile.am (TESTS): Added cond11.test and cond12.test.
+       * tests/cond11.test: New file.
+       * tests/cond12.test: New file.
 
-Tue Apr  1 22:46:33 1997  Tom Tromey  <address@hidden>
+2001-06-29  Raja R Harinath  <address@hidden>
 
-       * automake.in (check_canonical_spelling): New sub.
-       (handle_programs): Use it.
-       (handle_libraries): Likewise.
-       (handle_ltlibraries): Likewise.
+       * automake.in (saw_sources_p): Work even if there are more
+       than one header files, and more than of one type of header.
+       * tests/Makefile.am (TESTS): Added new file.
+       * tests/depend4.test: New file.
 
-Mon Mar 31 12:13:08 1997  Tom Tromey  <address@hidden>
+2001-06-28  Tom Tromey  <address@hidden>
 
-       * depend2.am (.deps/%.P): Make .P file depend on everything the .c
-       file includes.
+       * lib/am/libs.am (RANLIB): Don't define.
 
-Fri Mar 28 23:34:49 1997  Tom Tromey  <address@hidden>
+2001-06-28  Alexandre Duret-Lutz  <address@hidden>
 
-       * automake.in (handle_configure): Error if stamp-h appears in
-       AC_OUTPUT line.
+       * automake.in (am_install_var): Assign 1 to $first on
+       first interation.
 
-Thu Mar 27 17:28:47 1997  Tom Tromey  <address@hidden>
+2001-06-23  Tom Tromey  <address@hidden>
 
-       * automake.in (handle_dist_worker): Avoid automake rules in
-       generated Makefile when no-dependencies specified.  From Greg
-       Woods.
-
-       * m4/lispdir.m4: Don't AC_SUBST ELCFILES.  From Greg Woods.
+       Fix for yacc5.test:
+       * lib/ylwrap: Changed usage.
+       * lib/am/yacc.am: Rewrote to use new substitutions.
+       * lib/am/lex.am: Likewise.
+       * automake.in (handle_languages): Skip files whose language
+       doesn't have a compiler.  Handle `define_flag' attribute.
+       Changed '$' to "\$" to aid Emacs fontification.
+       (struct): Added `rule_file'.  Removed `derived_autodep'.  Added
+       `_target_hook' and `define_flag'.
+       (yacc, yaccxx, lex, lexxx): Set `rule_file', `flags', `compile',
+       and `compiler' attributes.  Removed `linker', `derived_autodep',
+       and `ansi' attributes.  Added `define_flag'.
+       (yacc, yaccxx): Added `_target_hook'.
+       (saw_extension): Count number of times extension seen.
+       (count_files_for_language): New sub.
+       (saw_sources_p): Use it.
+       (handle_single_transform_list): Allow language rewrite function
+       to return a new source extension.  Call target_hook.
+       (yacc_sources, lex_sources): Removed.
+       (initialize_per_input): Don't initialize yacc_sources or
+       lex_sources.
+       (lang_yacc_rewrite): Rewrote.
+       (lang_yaccxx_rewrite): Likewise.
+       (lang_lex_rewrite): Likewise.
+       (lang_lexxx_rewrite): Likewise.
+       (output_yacc_build_rule): Removed.
+       (output_lex_build_rule): Removed.
+       (lang_yacc_finish): Removed build rule generation.
+       (lang_lex_finish): Likewise.
+       (DASH_D_PATTERN): New global.
+       (lang_yacc_target_hook): New function.
+       (_target_hook): New function.
+       (register_language): Default `define_flag'.
+       * tests/yacc5.test: Updated test.
+       * tests/yacc4.test: Exit with status 77 if bison doesn't work.
+       * tests/yacc3.test: Remove bogus `make' invocation.  Added test
+       for all YFLAGS variables.
 
-       * texi-vers.am (address@hidden@): Make commands silent.
+2001-06-20  Tom Tromey  <address@hidden>
 
-       * Makefile.am (maintainer-check): "true" is ok now.
+       * tests/yacc5.test: Check for per-executable YFLAGS.
 
-       * m4/init.m4: Added optional 3rd argument, which avoids
-       AC_DEFINE.
+2001-06-19  Tom Tromey  <address@hidden>
 
-       * automake.in (scan_one_configure_file): Explicitly avoid
-       INSTALL_SCRIPT to avoid defining it twice.
+       * tests/Makefile.am (TESTS): Added yacc5.test.
+       * tests/yacc5.test: New file.
 
-       * header-vars.am: Change _INSTALL variable definitions to `true'.
-       Updated all users to put `@' before invocation.
+2001-06-17  Tom Tromey  <address@hidden>
 
-Tue Mar 25 22:09:45 1997  Tom Tromey  <address@hidden>
+       * automake.in (require_file_internal): Check for already-required
+       file after searching for it, and only if it is not found.  Don't
+       use `readlink' when checking for dangling symlink.  Work if
+       --force-missing specified.
+       * tests/acoutput2.test: Also test --force-missing.
 
-       Update to follow GNU Standards:
-       * automake.in (handle_man_pages): Use NORMAL_UNINSTALL before
-       uninstall-man.
-       * texinfos.am (uninstall-info): Use two loops, and have
-       PRE_UNINSTALL before running install-info.
-       * data.am, header.am, libs.am, lisp.am, ltlib.am, progs.am,
-       scripts.am, texinfos.am: Use NORMAL_UNINSTALL.
-       * header-vars.am (PRE_UNINSTALL, POST_UNINSTALL,
-       NORMAL_UNINSTALL): Define.
+       Fix for libtool.test:
+       * automake.in (generate_makefile): Call handle_libtool.
+       (handle_libtool): New sub.
+       (handle_compile): Don't read `libtool' file.
 
-       * automake.in (scan_one_configure_file): Don't define ANSI2KNR as
-       a configure varriable.
+       * tests/acoutput2.test: New file.
+       * tests/Makefile.am (TESTS): Added acoutput2.test.
 
-       * m4/missing.m4: Run test in a subshell.  From Gord Matzigkeit.
+2001-06-15  Tom Tromey  <address@hidden>
 
-Mon Mar 24 23:28:59 1997  Tom Tromey  <address@hidden>
+       * tests/Makefile.am (TESTS): Added libtool.test.
+       * tests/libtool.test: New file.
 
-       * m4/sanity.m4: Sleep before creating temp file.
+2001-06-14  Tom Tromey  <address@hidden>
 
-       * header-vars.am (NORMAL_INSTALL, PRE_INSTALL, POST_INSTALL):
-       Define.
+       Fix some lisp bugs reported by Bruno Haible:
+       * lib/am/lisp.am (uninstall-%DIR%LISP): Added DESTDIR to the
+       echo.
+       (install-%DIR%LISP): Handle case where lispdir is not defined.
+       (uninstall-%DIR%LISP): Likewise.
+       (.el.elc): Added `else' clause.
 
-Sat Mar 22 00:06:00 1997  Tom Tromey  <address@hidden>
+       Fix for bug reported by Steve M. Robbins:
+       * automake.in (handle_single_transform_list): When building a file
+       from a subdirectory, continue to use `AM_' prefix.
+       * tests/Makefile.am (TESTS): Added subobj7.test.
+       * tests/subobj7.test: New file.
 
-       * automake.in (am_install_var): Make sure to delete
-       CYGWIN/NOTCYGWIN tokens as appropriate.
-       (handle_programs): Remove NOTCYGWIN tokens as well.
-       (file_contents_with_transform): A single newline makes an empty
-       line.
+       * lib/am/configure.am ($(top_builddir)/config.status): Added
+       $(top_builddir) prefix to work around problems with some vendor
+       makes.  From Nicholas Joly.
 
-       * program.am: Remove executable before linking.
+       * automake.in (yacc_lex_finish_helper): Find ylwrap in
+       top_srcdir.  From Tim Van Holder.
+       * tests/Makefile.am (TESTS): Added yacc6.test.
+       * tests/yacc6.test: New file.
 
-       * texinfos.am (.texi.dvi): Look in @TEXINFODIR@ for texinfo.tex.
-       (.texinfo.dvi): Likewise.
+2001-06-14  Tim Van Holder  <address@hidden>
 
-       * automake.in (handle_texinfo): TEXINFO_TEX variable can set
-       location of texinfo.tex.
+       * tests/defs, tests/installsh.test: Properly support
+       DOS-style paths.
 
-Fri Mar 21 10:22:51 1997  Tom Tromey  <address@hidden>
+2001-06-14  Tom Tromey  <address@hidden>
 
-       * texinfos.am (.texinfo.dvi): Mirror .texi.dvi.
+       * tests/Makefile.am (TESTS): Added mdate4.test.
+       * tests/mdate4.test: New file.
 
-       * ansi2knr.c, ansi2knr.1: New versions from L. Peter Deutsch.
+       * aclocal.in (scan_m4_files): Removed unused variable.
 
-       * scripts.am: Add @EXEEXT@ to installed scripts.
+2001-06-14  Alexandre Duret-Lutz  <address@hidden>
 
-Wed Jan 22 20:12:31 1997  Jim Meyering  <address@hidden>
+       * aclocal.in (scan_m4_files): Tweak the building of &search so
+       that multiple macro names can be found on the same line.  Ensure
+       we match whole macro name, not only substrings.
 
-       * m4/mktime.m4 (AM_FUNC_MKTIME): Run tests for each of a few values
-       for the TZ environment variable.  Andre Novaes Cunha provided the
-       hairy TZ setting that exercized the Solaris tzset bug.
+2001-06-12  Tom Tromey  <address@hidden>
 
-1997-01-22  Paul Eggert  <address@hidden>
+       * automake.texi (ANSI): Minor clarification.
+       (Other GNU Tools): Don't mention Guile.
+       (Guile): Removed.
+       (Java Support): Mention file extensions.
+       (Man pages): Mention dist_.  Don't mention info pages.
 
-       * m4/mktime.m4: (AM_FUNC_MKTIME): Fix bug in mktime test -- don't
-       test now, test a couple of thousand times.
+2001-06-11  Tom Tromey  <address@hidden>
 
-Thu Mar 20 00:16:54 1997  Tom Tromey  <address@hidden>
+       * automake.texi (Program variables): Document AM_CPPFLAGS.
+       Deprecate INCLUDES.
+       (Java Support): Document AM_GCJFLAGS.
+       (Support for Other Languages): Removed `fixme'; added link to
+       suffix rule handling.
 
-       * automake.in (handle_programs): Remove CYGWIN lines unless
-       AM_CYGWIN32 seen.
-       (am_install_var): Remove CYGWIN lines from -clean file as well.
+       * automake.texi (Program and Library Variables): Document _LIBADD,
+       _LDADD, _LDFLAGS, _AR, and _DEPENDENCIES.
 
-       * progs.am: Put @EXEEXT@ where appropriate.
+2001-06-11  Kevin Dalley  <address@hidden>
 
-       * program.am (@PROGRAM@): If using Cygwin32, then create actual
-       name in addition to ".exe" name.
+       * missing: Support configure.ac.
 
-       * progs-clean.am (address@hidden@PROGRAMS): Conditionalize on CYGWIN.
+2001-06-08  Tom Tromey  <address@hidden>
 
-       * automake.in (check_cygnus): Require AM_CYGWIN32 in --cygnus mode.
-       (am_install_var): If AM_CYGWIN32 not seen, then remove @EXEEXT@
-       from .am files.
+       * tests/version4.test: New file.
+       * automake.in (version_check): New sub.
+       (handle_options): Use it.
+       * tests/Makefile.am (AUTOMAKE_OPTIONS): Removed.
+       (TESTS): Added version4.test.
+       * m4/Makefile.am (AUTOMAKE_OPTIONS): Removed.
+       * Makefile.am (AUTOMAKE_OPTIONS): Remove `gnits'.
 
-       * automake.in (seen_cygwin32): New global.
-       (scan_one_configure_file): Check for AM_CYGWIN32.
+2001-06-04  Kevin Dalley  <address@hidden>
 
-       * m4/cygwin.m4: New file.
+       * lib/am/dejagnu.am (site.exp): Fix typo.
 
-       * automake.in (scan_one_configure_file): Explicitly handle
-       AC_CONFIG_HEADER so we can avoid spurious warnings.
-       (obsolete_macros): Removed AC_CONFIG_HEADER.
+2001-06-02  Tom Tromey  <address@hidden>
 
-       * automake.in (handle_yacc_lex_cxx): Perl 4 fixes.  From Greg
-       A. Woods.
+       * automake.in (variable_conditions_sub): Move parent-only code
+       from here...
+       (variable_conditions): ... to here.
+       (variable_conditions_sub): Include this variable's conditions in
+       the resulting condition list.
+       * tests/Makefile.am (XFAIL_TESTS): Removed ltdeps.test.
 
-Wed Mar 19 00:35:13 1997  Tom Tromey  <address@hidden>
+2001-06-01  Tom Tromey  <address@hidden>
 
-       * Released 1.1m.
+       * tests/Makefile.am (XFAIL_TESTS): Added ltdeps.test.
+       (TESTS): Likewise.
+       * tests/ltdeps.test: New file.  Report from Lars J. Aas.
 
-       * m4/missing.m4: Print message saying what is happening.
+2001-05-31  Tom Tromey  <address@hidden>
 
-       * m4/sanity.m4: sleep before testing.
+       * automake.texi (Alternative): New node.
+       (Macros): Use new name for gcc.
+       (Java Support): Likewise.
+       (Dependencies): Rewrote.
+       (Invoking Automake): (Re-)document -i, --ignore-deps, and
+       --include-deps.
 
-Tue Mar 18 17:20:03 1997  Tom Tromey  <address@hidden>
+       * automake.texi (Top level): Removed erroneous spaces.  Documented
+       MAKE and MAKEFLAGS.
 
-       * config.guess, config.sub: New from the FSF.
+2001-05-29  Tom Tromey  <address@hidden>
 
-       * automake.in (initialize_global_constants): [common_files]
-       Include `missing'.
-       (scan_configure): Require `missing'.
+       * m4/init.m4 (AM_INIT_AUTOMAKE): Allow any AM_*FLAGS variable.
 
-       * header-vars.am (MAKEINFO): Don't define.
+       * automake.texi (Include): Rewrote.
+       (Suffixes): Remove Java example.
+       (Java): Added more explanation.  Document variables.
+       (Uniform): Mention JAVA as a primary.
+       (Python): Updated for new Python support.
+       (Sources): Added a weak example.
 
-       * m4/init.m4 (missing_dir): Use AM_MISSING_PROG.
-       * m4/missing.m4: New file.
+       * lib/am/java.am (class%DIR%.stamp): Use AM_JAVACFLAGS.
 
-       `missing' changes from François Pinard:
-       * Everywhere: Use ACLOCAL_M4 to name aclocal.m4 file; ACLOCAL now
-       names aclocal program.
-       * m4/init.m4: Replace programs with `missing' if not found.
-       * automake.in (handle_texinfo): Define MAKEINFO as @address@hidden
-       (AC_CHECK_PATTERN): Check for alphanumeric names only.
-       (handle_aclocal_m4): Use ACLOCAL, not aclocal.
-       * Makefile.am (pkgdata_SCRIPTS): Include missing.
-       * missing: New file.
+       * automake.texi (A Program): Mention `check' prefix.
+       (Program and Library Variables): New node.
+       (Texinfo): Document UPDATED-MONTH, MAKEINFOFLAGS, and
+       AM_MAKEINFOFLAGS.
+       (etags): Mention per-program flags.
+       (Tests): Document AM_RUNTESTFLAGS; added sectioning; more
+       updates.
 
-       * automake.in (target_defined): New sub.
-       (handle_footer): Error if target .SUFFIXES used.
+       * lib/am/texinfos.am (.PHONY): Always list uninstall-info-am and
+       install-info-am.
 
-Sun Mar 16 14:33:41 1997  Tom Tromey  <address@hidden>
+2001-05-28  Tom Tromey  <address@hidden>
 
-       * automake.in (handle_lib_objects): Set seen_c_source to line
-       number.
-       (handle_yacc_lex_cxx): Use seen_c_source as line number.
-       (am_line_error): Line of -1 means skip line-number check.
+       * m4/Makefile.am (MAINT_CHARSET): Removed.
+       * Makefile.am (MAINT_CHARSET): Removed.
+       * automake.in (maint_charset, dist_charset): Removed.
+       (local_maint_charset): Removed.
+       (initialize_per_input): Don't use maint_charset.
+       (handle_dist): Don't compute maint_charset or check DIST_CHARSET.
 
-       * automake.in (read_am_file): Change to keep perl -w quiet.
-       (check_typos): Removed extra check of EXTRA_ containing config
-       subs.
+       * lib/am/texibuild.am (.%SUFFIX%.info): Use MAKEINFOFLAGS and
+       AM_MAKEINFOFLAGS.
+       (.%SUFFIX%.dvi): Likewise.
+       (.%SUFFIX%): Likewise.
 
-Mon Mar 10 23:17:19 1997  Tom Tromey  <address@hidden>
+2001-05-27  Tom Tromey  <address@hidden>
 
-       * remake-hdr.am (stamp-h): Set CONFIG_HEADERS to
-       $(CONFIG_HEADER_FULL).
-       * automake.in (handle_configure): Define CONFIG_HEADER_FULL.
+       * automake.in (handle_multilib): Only add multilib support code at
+       top level.
+       * lib/am/multilib.am: Handle invocation of *-multi targets
+       differently for SUBDIRS and non-SUBDIRS Makefiles.
+       * m4/multi.m4 (AM_ENABLE_MULTILIB): Removed erroneous comment.
+       Only add multilib code when the Makefile in question is actually
+       rebuilt.
 
-       * automake.in (handle_lib_objects): Set seen_c_source as
-       appropriate.  From Alexander V. Lukyanov.  Test cxxlibobj.test.
+       * lib/am/dejagnu.am (check-DEJAGNU): Added AM_RUNTESTFLAGS.
 
-Sat Mar  8 22:54:35 1997  Tom Tromey  <address@hidden>
+2001-05-25  Alexandre Duret-Lutz  <address@hidden>
 
-       * texinfo.tex: New version.
+       * automake.in (handle_single_transform_list): Skip unknown
+       extensions.
 
-       * automake.in (handle_emacs_lisp): If EMACS is `no', then we
-       couldn't find an Emacs.  So don't bother running elisp-comp.  From
-       Ulrich Drepper.
+2001-05-25  Tom Tromey  <address@hidden>
 
-       * automake.in (handle_texinfo): Added .tr and .cv to list of
-       texinfo clean extensions.  From Karl Berry.
+       * m4/init.m4 (AM_INIT_AUTOMAKE): Ignore AM_RUNTESTFLAGS.
 
-Fri Feb 28 22:14:53 1997  Tom Tromey  <address@hidden>
+2001-05-24  Tom Tromey  <address@hidden>
 
-       * Makefile.am: Make sure we never use "undef".
+       * automake.in (handle_texinfo_helper): Find mdate-sh in current
+       directory in some situations.
 
-       * automake.in (usage): Changed bug-reporting address.
-       (handle_dist): Use undef, not delete.
+       * automake.in (generate_makefile): Better explanation for ansi2knr
+       fix.
 
-Wed Feb 26 08:41:11 1997  Gordon Matzigkeit  <address@hidden>
+2001-05-23  Alexandre Duret-Lutz  <address@hidden>
 
-       * automake.in (%obsolete_macros): Reintroduce, with hints for what
-       to do to upgrade the support.
+       * automake.in (handle_languages): Skip unknown extensions.
+       (derive_suffix): Check whether $extension_map{$source_ext}
+       is undefined, not empty.
 
-       * automake.in, ltlib-clean.am, ltlib.am, ltlibrary.am: Revamped
-       libtool support to use the _LTLIBRARIES primary.
+2001-05-23  Alexandre Duret-Lutz  <address@hidden>
 
-Wed Feb 26 00:20:39 1997  Tom Tromey  <address@hidden>
+       * automake.in (read_am_file): Ignore trailing backslash on
+       comment lines.
 
-       * automake.in (handle_tags): In default case, add @tags_deps to
-       dependencies of tags target.
+2001-05-22  Alexandre Duret-Lutz  <address@hidden>
 
-Tue Feb 25 23:46:29 1997  Tom Tromey  <address@hidden>
+       * automake.in (ASSIGNMENT_PATTERN): Forbid : and + in variable names.
 
-       * automake.in (handle_tests): If a test failed, then make should
-       fail.  From Jim Meyering.
+2001-05-21  Akim Demaille  <address@hidden>
 
-Mon Feb 24 19:02:21 1997  Tom Tromey  <address@hidden>
+       * automake.texi (Macros): Explain the ``AC_PROG_LEX invoked
+       multiple times'' warning.
 
-       * texi-vers.am (@VTEXI@): Copy stamp file into output.
+2001-05-20  Tom Tromey  <address@hidden>
 
-Sun Feb 23 00:10:36 1997  Tom Tromey  <address@hidden>
+       * configure.in: Updated to 1.4g.
 
-       * automake.in (handle_programs): Give correct error line for lex
-       error.
-       (am_line_error): Avoid uninitialized value errors from perl -w.
+       * configure.in: Updated to 1.4f.
 
-       * aclocal.in (scan_m4_files): Fixed perl -w warning.
+       * Makefile.am (EXTRA_DIST): Added ChangeLog.2000.
 
-       * texinfos.am (.texi, .texinfo): New targets.
+       * lib/ansi2knr.c: New version.
 
-       * automake.in (scan_texinfo_file): Renamed.
-       (handle_texinfo): Handle files without ".info" extension.
+       * Makefile.am (FETCHFILES): Added ansi2knr.c.
+       (fetch): Likewise.
 
-       * automake.in (handle_subdirs): Error if directory contains "/".
-       (handle_yacc_lex_cxx): Quoting fix.
-       (handle_single_transform_list): Use transformed (non-ansi) version
-       of $obj instead of explicit ".o".  From Gord Matzigkeit.
+2001-05-19  Tom Tromey  <address@hidden>
 
-       * m4/sanity.m4: Pass -L to ls if possible.
+       * config.guess, config.sub: New versions from FSF.
 
-Sat Feb 22 15:22:31 1997  Tom Tromey  <address@hidden>
+       * Makefile.am (fetch): Compare against files in srcdir.
 
-       * dist-vars.am (DISTFILES): Don't distribute MANS.
+       For for ansi2knr report from Harlan Stenn:
+       * automake.in (generate_makefile): Run handle_compile before
+       handle_languages.
 
-       * automake.in (handle_dist): Use define_variable to define TAR,
-       GZIP.
-       (handle_dist): Pass GZIP in environment to tar.
-       (initialize_global_constants): Likewise.
+2001-05-18  Tom Tromey  <address@hidden>
 
-       From Kaveh Ghazi:
-       * m4/protos.m4: Don't put any dependencies on AC_C_INLINE or
-       AC_C_CONST.
-       * m4/ccstdc.m4: Force AM_PROG_CC_STDC to come before AC_C_INLINE
-       or AC_C_CONST.
+       * automake.in: Reverted erroneous checkin.
 
-Fri Feb 21 00:39:17 1997  Tom Tromey  <address@hidden>
+2001-05-18  Akim Demaille  <address@hidden>
 
-       From The Crimson Binome:
-       * automake.in (handle_yacc_lex_cxx): Handle C++ yacc/lex source.
-       (output_yacc_build_rule): New sub for C++ yacc/lex.
+       * lib/am/texinfos.am (install-info-am, uninstall-info-am): Be robust
+       to missing `install-info'.
 
-       * automake.in (my_glob): New sub.
-       (handle_dependencies): Use my_glob.
-       (handle_aclocal_m4): Scan ACLOCAL_AMFLAGS for dependencies.
+2001-05-17  Tom Tromey  <address@hidden>
 
-       * ltlibs.am, lisp.am, libs.am, header.am, data.am, progs.am,
-       scripts.am, texinfos.am: Add leading space to echo.
+       * automake.in (lang_c_finish): Use `rm -f'.
 
-       * automake.in (handle_texinfo): Added .tps and .vrs to list of TeX
-       endings.  From Jim Blandy.
-       (install_man_format): Make rule silent; instead print actual
-       command.
+       * automake.in (lang_c_finish): Remove _.c file if ansi2knr fails.
+       * tests/Makefile.am (TESTS): Added new file.
+       * tests/ansi5.test: New file.
 
-Tue Feb  4 18:29:42 1997  Tom Tromey  <address@hidden>
+2001-05-17  Alexandre Duret-Lutz  <address@hidden>
 
-       * dist-vars.am (TAR): Removed.
-       * automake.in (TAR): New variable.
-       (handle_dist): Explicitly define TAR.
-       * configure.in: Compute TAR.
+       * lib/am/install.am (install-strip): Set INSTALL_PROGRAM_ENV if
+       STRIP is not empty.
+       * m4/strip.m4 (AM_PROG_INSTALL_STRIP): Set INSTALL_STRIP_PROGRAM
+       to install-sh unconditionally.  Don't set INSTALL_STRIP_PROGRAM_ENV.
+       * automake.texi (Requirements): Document the use of the STRIP
+       variable in cross-compilation environments.
 
-       * automake.in (handle_lib_objects): Put @ALLOCA@ on @dep_list, not
-       @dep_files.
-       (AC_SUBST_PATTERN): Typo fix.
-       (handle_aclocal_m4): Use ACLOCAL_AMFLAGS.
-       (handle_clean): Put -recursive target before -am target.
-       (handle_merge_targets): Put basename of $config_name on @all.
-       Test confsub.test.  From Ramón García Fernández.
+2001-05-17  Tom Tromey  <address@hidden>
 
-Tue Jan 28 22:19:04 1997  Tom Tromey  <address@hidden>
+       * m4/depend.m4 (AM_DEPENDENCIES): If depcomp doesn't exist, revert
+       to no dependency tracking.
+       * tests/Makefile.am (TESTS): Added depcomp2.test.
+       * tests/depcomp2.test: New file.  From Pavel Roskin.
 
-       * automake.in (initialize_global_constants): Put libtoolize files
-       into @common_files, not @common_sometimes.  From Gord Matzigkeit.
+       * lib/depcomp (aix): Bug fix and simplification from Larry Jones.
 
-Sun Jan 26 17:46:08 1997  Tom Tromey  <address@hidden>
+       * lib/depcomp (tru64): New dependency tracking mode.
 
-       * texinfos.am (.texi.info): If --cygnus, set -I $(srcdir).  From
-       Per Bothner.
+       Fix for PR automake/159:
+       * lib/depcomp (aix): Rewrote.
+       (sgi): Likewise.
 
-Sun Jan 12 18:28:16 1997  Fred Fish  (address@hidden)
+       Fix for PR automake/174:
+       * tests/Makefile.am (XFAIL_TESTS): Removed comment3.test.
+       * automake.in (read_am_file): Warn if `#' is at start of rule.
 
-       * automake.in: Use 'interlock' and 'ylwrap' from source
-       directory or aux config directory, not build directory.
+2001-05-16  Tom Tromey  <address@hidden>
 
-Tue Jan  7 18:35:10 1997  Tom Tromey  <address@hidden>
+       For PR automake/174:
+       * tests/Makefile.am (TESTS): Added comment3.test.
+       (XFAIL_TESTS): Likewise.
+       * tests/comment3.test: New file.
 
-       * aclocal.in (parse_arguments): Handle -I.
-       (usage): Ditto.
-       (scan_m4_files): Ditto.
+       Fix for PR automake/175:
+       * tests/Makefile.am (XFAIL_TESTS): Removed make.test.
+       * m4/make.m4 (AM_MAKE_INCLUDE): Omit `Entering directory' and
+       `Leaving directory' messages.
 
-       * automake.in (handle_single_transform_list): Don't give error
-       message if extension unrecognized.
+       For PR automake/175:
+       * tests/Makefile.am (XFAIL_TESTS): Added make.test.
+       * tests/make.test: Run test with `make -w'.
 
-Tue Dec 17 11:18:20 1996  Andreas Schwab  <address@hidden>
+       * tests/Makefile.am (TESTS): Removed maintclean.test.
+       * lib/am/clean.am (maintainer-clean-generic): Don't remove
+       Makefile.in.
+       * lib/am/configure.am (maintainer-clean-am): Removed.
+       (maintainer-clean-conf): Removed.
+       * tests/maintclean.test: Removed.
+
+2001-05-15  Tom Tromey  <address@hidden>
+
+       Fix for PR automake/177:
+       * Makefile.am (maintainer-clean): Set perllibdir before invoking
+       automake or aclocal.
+
+       Fix for maintclean.test:
+       * tests/Makefile.am (XFAIL_TESTS): Removed maintclean.test.
+       * lib/am/clean.am (distclean-generic): Don't remove config.cache
+       or config.log.
+       (distclean, maintainer-clean): Moved to...
+       * lib/am/configure.am: ... here.
+       (distclean): Remove config.cache and config.log.
+       (maintainer-clean): Removed.
+       (maintainer-clean-conf): New target.
+       (maintainer-clean-am): New target.
+
+       * tests/Makefile.am (TESTS): Added maintclean.test.
+       (XFAIL_TESTS): Likewise.
+       * tests/maintclean.test: New file.
+
+       Fixes PR automake/175:
+       * tests/target-cflags.test: Use $needs_gnu_make.
+       * tests/exsource.test: Use $needs_gnu_make.
+       * tests/make.test: Require GNU make.
+       * tests/defs (needs_gnu_make): Compute.
+
+2001-05-14  Tom Tromey  <address@hidden>
+
+       * lib/ylwrap: Fixed quoting on regular expression.  Fixes
+       yacc4.test.
+
+       Fix for texinfo10.test.
+       * tests/Makefile.am (XFAIL_TESTS): Remove texinfo10.test.
+       * lib/am/texinfos.am: Use LOCAL-TEXIS liberally.
+       * automake.in (handle_texinfo_helper): New sub.
+       (handle_texinfo): Rewrote.  Now defines LOCAL-TEXIS.
+       * tests/texinfo10.test: Added more cases.
+
+       Fix for yaccvpath.test:
+       * tests/Makefile.am (XFAIL_TESTS): Removed yaccvpath.test.
+       * lib/am/distdir.am (distdir): Always look for file in build
+       directory first.
+       * lib/ylwrap: Quote the `#line' regular expression.
+       * lib/am/yacc.am (%YACC_SUFFIX%%C_SUFFIX%): Reverted earlier
+       change; don't run sed on the generated file.
+       * tests/yaccvpath.test: Create new parser in srcdir.  Added test
+       to make sure parser will be rebuilt at dist time.
+
+2001-05-13  Pavel Roskin  <address@hidden>
+
+       * automake.in ($IGNORE_PATTERN): Allow spaces before comments
+       beginning with `##'.
+       * automake.texi (General Operation): Document it.
+
+2001-05-13  Tom Tromey  <address@hidden>
+
+       Reported by Rainer Orth:
+       * lib/am/distdir.am (?DISTDIR?distdir): Define conditional on
+       TOPDIR_P.
+       * tests/Makefile.am (TESTS): Added distname.test.
+       * tests/distname.test: New file.
+
+       * Makefile.am (dist_pkgdata_DATA): Removed.
+
+       * tests/defs: Find files to copy in lib/.
+       * automake.in (perllibdir): Set to Automake directory.
+       * ansi2knr.c, ansi2knr.1: Removed.
+       * Makefile.am (dist_am_DATA): Removed.
+       (amdir): Removed.
+       (maintainer-check): Look for lib/am/*.am.  Expect 28 lines of
+       diffs.
+       (scriptdir): Removed.
+       (dist_script_DATA): Likewise.
+       (install-data-hook): Likewise.
+       (installcheck-local): Likewise.
+       (TAGS_FILES): Removed amfiles.
+       (dist_pkgdata_DATA): Removed ansi2knr.c and ansi2knr.1.
+       * tests/installsh.test (AUTOMAKE): Use --libdir, not --amdir, and
+       point it to the right directory.
+       * ansi2knr.am, check.am, clean-hdr.am, clean.am, comp-vars.am,
+       compile.am, configure.am, data.am, dejagnu.am, depend.am,
+       depend2.am, distdir.am, footer.am, header-vars.am, header.am,
+       install.am, java.am, lang-compile.am, lex.am, library.am, libs.am,
+       libtool.am, lisp.am, ltlib.am, ltlibrary.am, mans-vars.am,
+       mans.am, multilib.am, program.am, progs.am, python.am,
+       remake-hdr.am, scripts.am, subdirs.am, tags.am, texi-vers.am,
+       texibuild.am, texinfos.am, yacc.am: Moved to lib/am/.
+       * configure.in (AC_OUTPUT): Added lib/am/Makefile.
+       (AUTOMAKE): Use --libdir, not --amdir.
+       Ues AC_CONFIG_AUX_DIR.
+       * lib/Makefile.am (SUBDIRS): Added `am'.
+       (scriptdir): New macro.
+       (dist_script_DATA): Likewise.
+       (dist_pkgdata_DATA): Likewise.
+       (install-data-hook): New target.
+       (installcheck-local): Likewise.
+       * lib/am/Makefile.in: New file.
+       * lib/am/Makefile.am: Removed everything except amdir and
+       dist_am_DATA.
+
+2001-05-13  Akim Demaille  <address@hidden>
+
+       * automake.in ($pkgdata_dir): Rename as...
+       ($libdir): this.
+       ($am_dir): Remove, replace its uses with $libdir.
+       (&parse_arguments): Replace --amdir with --libdir.
+       * automake.texi (Invoking Automake): Document --libdir, not
+       --amdir.
+       * tests/defs (AUTOMAKE): Use --libdir, not --amdir.
+
+2001-05-13  Tom Tromey  <address@hidden>
+
+       * m4/depout.m4 (AM_OUTPUT_DEPENDENCY_COMMANDS): Use AMDEP_TRUE,
+       not AMDEP.
+       * m4/depend.m4 (AM_DEPENDENCIES): Require AM_DEP_TRACK.
+       Correctly look at AMDEP_TRUE, not AMDEP.
+
+       Report from Robert Boehne:
+       * tests/Makefile.am (TESTS): Added depend2.test.
+       * tests/depend2.test: New file.
+
+2001-05-13  James Henstridge  <address@hidden>
+
+       * m4/python.m4 (AM_PATH_PYTHON): Added more names for python.
+       Point pythondir at site-packages directory.  Rename
+       PYTHON_SITE_PACKAGE to pkgpythondir.  Rename PYTHON_SITE_EXEC to
+       pyexecdir.  Removed package/module argument.  Removed
+       PYTHON_SITE_INSTALL.  Added version checking.
+
+2001-05-14  Jim Meyering  <address@hidden>
+
+       * automake.in (macro_define): Change one remaining use of
+       `variable_dump' to `macro_dump'.
+
+2001-05-13  Tom Tromey  <address@hidden>
+
+       * m4/depend.m4 (AM_DEPENDENCIES): Prefer gcc3 over gcc for objc
+       and gcj.
+
+2001-05-13  Akim Demaille  <address@hidden>
+
+       * automake.in (&scan_texinfo_file, &handle_dist, &handle_gettext)
+       (&handle_footer, &handle_factored_dependencies, &handle_emacs_lisp)
+       (&am_primary_prefixes): Use `map' rather than `grep'.
+
+2001-05-13  Akim Demaille  <address@hidden>
+
+       * automake.in (Language): Set config_vars for yacc, yaccxx, lex,
+       lexxx, asm.
+       (&lang_c_finish, &lang_yacc_finish, &lang_lex_finish): Simplify.
+       (&lang_asm_finish): Remove, set asm's finisher to C's one.
+
+2001-05-13  Akim Demaille  <address@hidden>
+
+       * lang-compile.am: New file, loaded once per language.
+       * depend2.am: Move definitions loaded once per language in the
+       aforementioned file.
+       * automake.in (&handle_languages): Load it.
+       (&lang_ppf77_finish, &lang_ratfor_finish): Remove as it's now
+       handled by lang-compile.am.
+
+2001-05-13  Tom Tromey  <address@hidden>
+
+       * tests/Makefile.am (TESTS): Added python.test.
+       * tests/python.test: New file.
+       * automake.in (handle_languages): Use
+       config_aux_dir_set_in_configure_in.
+       (handle_python): Correctly mention AM_PATH_PYTHON.  Use
+       py-compile, not py_comp.  Define py_compile macro.
+
+2001-05-13  Derek Price  <address@hidden>
+
+       * automake.in (require_file_with_conf_line,
+       require_file_with_line, require_file): Pass a @require_file_path
+       of $relative_dir instead of '.' to require_file_internal so that
+       all the special casing of '.' can be removed elsewhere.
+       (require_config_file, require_conf_file_with_line,
+       require_conf_file_with_conf_line): Remove special casing for '.'
+       and make sure $config_aux_dir is maintained properly.
+       (require_file_internal): Remove special casing of '.' and set
+       @require_file_path when missing files are added.
+       (maybe_push_required_file): Remove special casing of '.'
+       (handle_dependencies): Remove a workaround for a bug now fixed
+       and remove $config_aux_dir special casing.
+       (handle_configure): Remove special casing for $config_aux_dir
+       (handle_python): Ditto.
+       (yacc_lex_finish_helper): Change $config_aux_dir switch to
+       switch on the value of $config_aux_dir_set_in_configure_in.
+       (handle_texinfo): Ditto.
+       (scan_one_configure_file): Set $config_aux_dir and
+       $config_aux_dir_set_in_configure_in properly so special casing
+       on the value of $config_aux_dir can be removed elsewhere.
+       * tests/depcomp.test: New file.
+       * tests/confsub.test: Look for depcomp in $(top_srcdir) instead of the
+       first subdir containing a C file.
+       * tests/libobj2.test: Ditto.
+       * tests/Makefile.am (TESTS): Added 'depcomp.test'.
 
-       * m4/header.m4 (AM_CONFIG_HEADER): Check for $CONFIG_HEADERS, not
-       $CONFIG_HEADER.
+2001-05-12  Tom Tromey  <address@hidden>
 
-Tue Jan  7 17:59:26 1997  Tom Tromey  <address@hidden>
+       * tests/gcj.test: Updated for gcj dependency tracking.
+       * tests/gcj2.test: Likewise.
 
-       * automake.in (scan_one_configure_file): AM_INIT_GUILE_MODULE runs
-       AM_PROG_INSTALL, not AC_PROG_INSTALL.  From Jim Blandy.
-       (handle_texinfo): Handle no-texinfo.tex option.
-       (handle_options): Ditto.
+       Fixes PR automake/169.
+       * m4/depend.m4 (AM_DEPENDENCIES): Handle GCJ.  Don't assume gcc
+       style for OBJC.
+       * automake.in (java): Added autodep entry.
+       * tests/Makefile.am (TESTS): Added gcj3.test.
+       * tests/gcj3.test: New file.
 
-Thu Jan  2 14:16:17 1997  Tom Tromey  <address@hidden>
+2001-05-12  Raja R Harinath  <address@hidden>
 
-       * automake.in (am_install_var): Ignore EXTRA libtool libraries.
-       From Marius Vollmer.
+       * automake.in (ASSIGNMENT_PATTERN): Make variable-name pattern
+       stop at the first '='.
+       * tests/Makefile.am (TESTS): Added vars.test.
+       * tests/vars.test: New file.
 
-Wed Dec 18 15:27:09 1996  Tom Tromey  <address@hidden>
+2001-05-12  Akim Demaille  <address@hidden>
 
-       * automake.in (read_am_file): Sort configure_vars before adding to
-       output_vars.
-       (handle_yacc_lex_cxx): Sort de_ansi_objects.
-       (handle_man_pages): Sort %section keys.
+       * automake.in (&handle_single_transform_list): Simplify
+       computation of $object and $this_obj_ext.
+       * tests/lex3.test: Merge into...
+       * tests/lex.test: here.
+       * tests/pr19.test: Improve and rename as...
+       * tests/lex3.test: this.
 
-Tue Dec 10 00:41:17 1996  Tom Tromey  <address@hidden>
+2001-05-09  Tom Tromey  <address@hidden>
 
-       * automake.in (AC_SUBST_PATTERN): Check for alphanumeric variable
-       names only.  Test subst.test.
-       (scan_one_configure_file): Skip AC_DEFUN lines.  Test
-       defun2.test.
+       * automake.in (read_am_file): Correctly compute $saw_bk.
+       (scan_autoconf_files): Ensure configure_dist_common is always
+       set.
+       * tests/defs (AUTOMAKE): Added --Werror.
 
-Mon Dec  9 08:18:42 1996  Tom Tromey  <address@hidden>
+2001-05-09  Pavel Roskin  <address@hidden>
 
-       * automake.in (file_contents_with_transform): Use ne, not !=, to
-       compare strings.  Compare against correct string.  From Jim
-       Meyering.
-       (handle_texinfo): Use rm -f to remove info files.  From Gord
-       Matzigkeit.
+       * automake.in (define_compiler_variable): Escape $(LIBTOOL) in
+       double quotes.
 
-       * Released 1.1l.
+2001-05-09  Tom Tromey  <address@hidden>
 
-       * automake.in (handle_texinfo): Put .ps on @suffixes.
+       * tests/werror.test: Use `rm -f'.
 
-Sun Dec  8 12:29:52 1996  Tom Tromey  <address@hidden>
+2001-05-09  Akim Demaille  <address@hidden>
 
-       * automake.in (am_install_var): Directory with 'exec' in its name
-       is installed by install-exec.
+       * automake.in (&am_line_warning): Invoke `am_line_error', not itself.
 
-       * subdirs.am (maintainer-clean-recursive): Make commands quiet.
-       * texinfos.am: Make commands quiet.
-       * scripts.am: Make commands quiet.
-       * progs.am: Make commands quiet.
-       * ltlibs.am: Make comamnds quiet.
-       * lisp.am: Make commands quiet.
-       * libs.am: Make commands quiet.
-       * header.am: Make commands quiet.
-       * data.am: Make commands quiet.
+2001-05-09  Akim Demaille  <address@hidden>
 
-       * automake.in (variable_value_as_list): Handle := substitution
-       references.
-       (am_conf_line_error): Take file argument.  Changed all callers.
-       (scan_one_configure_file): Skip config header of [$1].
-       (scan_dependency_file): Don't add top_builddir to regex if it is
-       ".".  Don't include top_builddir in output if it is ".".
-       (scan_one_configure_file): Skip version of [$2].
+       * automake.in: Remove some code left from bad patches.
+       (&handle_dependency): Remove, for the same reason.
 
-Sat Dec  7 11:34:39 1996  Tom Tromey  <address@hidden>
+2001-05-09  Akim Demaille  <address@hidden>
 
-       * automake.in (scan_one_configure_file): New sub.
-       (scan_configure): Scan aclocal.m4 as well as configure.in.
-       (handle_configure): Makefile.in now depends on $(ACLOCAL), because
-       automake scans it.
+       * automake.in (&make_paragraphs): Transform BUILD, HOST and TARGET.
+       (&handle_tests_dejagnu, &define_standard_variables): Don't.
+       (&define_standard_variables): Don't transform %top_builddir% since...
+       * header-vars.am: Use %TOPDIR% instead.
 
-       * automake.in (handle_configure): Put full path to file onto
-       @rewritten_inputs.  Test output4.test.
+2001-05-09  Akim Demaille  <address@hidden>
 
-       * automake.in (handle_configure): Put proper name onto @inputs.
-       Test output3.test.
+       * automake.in (@objects): Remove, unused.
+       Remove all the code related to it, and to former `$(OBJECTS)'.
 
-       * automake.in (handle_configure): Pass correct args to automake
-       invocations.  Test remake2.test.
+2001-05-08  Tom Tromey  <address@hidden>
 
-       * automake.in (handle_configure): Check dirname of $file, not of
-       $local.  Test output2.test.
+       For PR automake/29:
+       * ylwrap: Handle arguments to program.  Remove old code that tried
+       to avoid absolute paths and add new code to do it in all cases.
+       Removed ancient logic that tried to deal with relative path.
+       * tests/Makefile.am (TESTS): Added yacc4.test.
+       * tests/yacc4.test: New file.
 
-       * automake.in (handle_dependencies): Added some missing ";"s in
-       transforms.
-       (get_object_extension): Ditto.
-       (handle_tags): Ditto.
-       (handle_tests): Ditto.
-       (read_am_file): Ditto.
-       (am_install_var): Ditto.
-       (file_contents_with_transform): Die if transform missing trailing
-       ";".
+       Fix for PR automake/149 and werror.test:
+       * automake.in (require_file_internal): Use am_line_warning or
+       am_conf_line_warning when suppressing error.
+       (am_line_warning): New sub.
+       (am_conf_line_warning): Save and restore warning signal.
+       * tests/Makefile.am (XFAIL_TESTS): Removed werror.test.
 
-       * automake.in (am_install_var): Quote $ in regexp substitution.
-       From Ulrich Drepper.
+       Fix for PR automake/36:
+       * tests/Makefile.am (TESTS): Added asm.test.
+       * tests/asm.test: New file.
+       * automake.in (asm): Use ASFLAGS and AS.
+       (lang_asm_finish): New sub.
 
-Fri Dec  6 18:54:10 1996  Tom Tromey  <address@hidden>
+       * automake.in (read_am_file): Removed debugging code.
 
-       * automake.in (handle_configure): Require actual input files, not
-       rewritten input files.  From Ulrich Drepper.
+       For PR automake/149:
+       * tests/Makefile.am (TESTS): Added werror.test.
+       (XFAIL_TESTS): Likewise.
+       * tests/werror.test: New file.
 
-Thu Dec  5 02:52:20 1996  Tom Tromey  <address@hidden>
+       * automake.in (conditional_true_when): Don't return if we see
+       `TRUE'.
 
-       Suggestion from Mark Galassi:
-       * texinfos.am (DVIPS): New macro.
-       (.dvi.ps): New rule.
+       * tests/objc.test: Removed.
+       * tests/Makefile.am (XFAIL_TESTS): Removed objc.test.
+       (TESTS): Likewise.
 
-       * automake.in (handle_dependencies): Check to make sure
-       --build-directory specified before searching for .P files.
-       (handle_configure): Correctly handle ":" syntax when running
-       config.status.
+       * automake.in (subst): New sub.
+       (handle_languages): Use it.
+       (output_lex_build_rule): Likewise; also use _am_quote.
+       (check_libobjs_sources): Likewise.
+       (make_paragraphs): Use subst.
 
-       * remake.am: Removed rules to regenerate Makefile and Makefile.in;
-       now handled by handle_configure.
+       * automake.in (check_libobjs_sources): Re-fixed AMDEP_TRUE
+       problem.
 
-       * remake-subd.am: Removed.
+       * automake.in (file_contents_internal): Prototype now `$$%'.
+       (register_language): Prototype now `%'.
 
-       * automake.in (scan_configure): Handle multiple ":"s in AC_OUTPUT
-       arg.
-       (parse_arguments): Ditto.
-       (handle_configure): Ditto.
-       (%other_output_files): Removed.
-       (rewrite_inputs_into_dependencies): New sub.
-       (handle_configure): Use it.
-       (handle_configure): Ditto.
+       Fixes test subobj6.test and PR automake/160:
+       * tests/Makefile.am (XFAIL_TESTS): Removed subobj6.test.
+       * compile.am (mostlyclean-compile): Added MOSTLYRMS.
+       (distclean-compile): Added DISTRMS.
+       * tests/subobj6.test (wish_SOURCES): Updated to reflect
+       `mostlyclean' use; added test for non-subdir case.
+       * automake.in (compile_clean_files): New global.
+       (MOSTLY_CLEAN, DIST_CLEAN): New constants.
+       (initialize_per_input): Initialize compile_clean_files.
+       (handle_single_transform_list): Set compile_clean_files entries.
+       (handle_compile): Handle compilation cleanups.
 
-       From Gord Matzigkeit:
-       * automake.in (generate_makefile): Handle ":" in AC_OUTPUT arg.
-       (handle_configure): Ditto.
+2001-05-08  Lars J. Aas  <address@hidden>
 
-       * automake.in (handle_single_transform_list): .S is assembly
-       source.  From Anthony Green.
+       * automake.texi (Canonicalizing Automake macros): Document not
+       canonicalizing strudels (@) anymore.
 
-       * automake.in (handle_single_transform_list): Correctly rewrite
-       C++ and Fortran source to objects ending in ".o".  Test
-       cxxo.test.
+2001-05-08  Akim Demaille  <address@hidden>
 
-       * automake.in: Better error message if file missing.
+       * distdir.am (dist-all): Build all the flavors using a single
+       distdir.
 
-       * aclocal.in (@obsolete_macros): ud_GNU_GETTEXT is obsolete.
-       * automake.in (handle_gettext): Use AM_GNU_GETTEXT, not
-       ud_GNU_GETTEXT.
-       (scan_configure): Ditto.  ud_GNU_GETTEXT is now obsolete.
-
-Wed Dec  4 00:41:23 1996  Tom Tromey  <address@hidden>
+2001-05-08  Akim Demaille  <address@hidden>
 
-       * automake.in (scan_configure): Skip empty elements when adding to
-       libsources.  Perl 4 bug reported by Greg A Woods.
+       * automake.in (&file_contents_internal): Apply the @cond_stack to
+       the rules and assignments.
+       Don't rely on `$.' as it's biased by &make_paragraphs.
+       Don't remove backslashes in variable values.
 
-       * Makefile.am (perl4-check): New target.
-       (cvs-dist): Run perl4-check.
+2001-05-08  Akim Demaille  <address@hidden>
 
-       Perl 4 fixes.  Reported by Greg A. Woods:
-       * automake.in (file_contents_with_transform): If transform caused
-       all chars to go away, then skip rest of loop.
-       (handle_texinfo): Don't use "next" in arg to
-       file_contents_with_transform.
-       (handle_dependencies): Ditto.
-       (handle_tests): Ditto.
+       * automake.in ($IGNORE_PATTERN): Improve for multi-line matches.
+       ($RULE_PATTERN): Use that from `&make_paragraphs'.
+       ($MACRO_PATTERN): Just catch the name of a macro.
+       ($BOGUS_MACRO_PATTERN): Remove.
+       ($ASSIGNMENT_PATTERN): New.
+       (&file_contents_internal, &make_paragraphs): Adjust.
+       (&macro_define): Catch bad macro names.
+       (&cond_stack_endif): Better error message.
+       (&file_contents_internal): Don't remove backslashes in variable
+       values.
+       (&macro_define): Do it for `+=' user variables.
+       (&define_standard_variables): Use `undef' instead of a dummy
+       variable.
+       (&make_paragraph): Be sure not to chop the trail of hash only
+       lines: adjust the `##' regexp.
+       (&rule_define): Fix a bug: don't read $1 but $target.
+       * tests/condincl.test: Strengthen.
 
-       * m4/regex.m4 (AM_WITH_REGEX): Check for GNU regex in libc.  From
-       Andreas Schwab.
+2001-05-08  Akim Demaille  <address@hidden>
 
-       * automake.in (parse_arguments): Removed --strictness.
-       (handle_dist_worker): Don't use --strictness.
-       (handle_configure): Ditto.
-       (initialize_global_constants): Don't mention --strictness.
+       * automake.in (Language): Add attributes `Name' and `config_vars'.
+       (&finish): Work properly if there is no _finish.
+       (Automake): Register language Names and AC_SUBST dependencies.
+       Register Fortran 77 variables upon which ratfor and ppf77 depend.
+       (&handle_languages): Once per language, invoke
+       `define_linker_variables', and check its config_vars.
+       (&lang_cxx_finish, &lang_f77_finish, &lang_objc_finish)
+       (&lang_java_finish): Remove.
+       (&lang_ppf77_finish, &lang_ratfor_finish): Adjust.
+
+2001-05-08  Akim Demaille  <address@hidden>
 
-       * automake.in (handle_merge_targets): Use all-recursive-am instead
-       of all-recursive-hack.  The latter is ugly, according to Joel
-       Weber.
+       * automake.in (&file_contents_internal): Accept $IS_AM.
+       (&handle_compile, &define_standard_variables, &file_contents): Adjust.
 
-       * automake.in (handle_emacs_lisp): Push $(ELCFILES) onto @all.
+2001-05-08  Akim Demaille  <address@hidden>
 
-       * automake.in (do_one_clean_target): Allow -local version of clean
-       targets.
+       * automake.in (am_install_var): Use `next' instead of `if' on the
+       body of $X loop.
 
-Tue Dec  3 18:58:40 1996  Tom Tromey  <address@hidden>
+2001-05-08  Akim Demaille  <address@hidden>
+
+       * automake.in (Language): Add attributes `lder' and `ld'.
+       (&register_language): Specify for cxx, objc, f77, gcj.
+       (&define_linker_variable): New.
+       (&lang_cxx_finish, &lang_f77_finish, &lang_objc_finish)
+       (&lang_java_finish): Adjust.
+       (&libtool_compiler): Remove.
+
+2001-05-08  Akim Demaille  <address@hidden>
+
+       * automake.in (&handle_lib_objects_cond): Don't take $LEX_SEEN as
+       argument, as you don't use it.
+       Hence...
+       (&handle_lib_objects): Don't take $LEX_SEEN as argument, as you
+       don't use it.
+       Hence...
+       (&handle_programs): Don't mess with %lex_sources, as you don't use
+       it.
+
+2001-05-08  Akim Demaille  <address@hidden>
+
+       * automake.in (Language): Add attribute `link'.
+       (&register_language): Specify for cxx, objc, f77, gcj.
+       (&lang_cxx_finish, &lang_f77_finish, &lang_objc_finish)
+       (&lang_java_finish): Adjust.
+
+2001-05-08  Akim Demaille  <address@hidden>
+
+       * automake.in (&define_compiler_variables): Use only $LANG as
+       argument.
+       (&handle_languages): Adjust.
 
-       * automake.in (handle_dependencies): Skip C-only lines in
-       depend2.am when appropriate.
-       * depend2.am (.deps/%.P): Omit modification of $o if language is
-       not C.
+2001-05-08  Akim Demaille  <address@hidden>
 
-Tue Dec  3 11:29:01 1996  Gordon Matzigkeit  <address@hidden>
+       * automake.in (&define_program_variable): Remove.
+       (&scan_one_autoconf_file): Skip MAKEINFO when found in an
+       AM_MISSING_PROG.
+       (&handle_texinfo): Don't define MAKEINFO and TEXI2DVI.
+       * texinfos.am: Do it.
 
-       * compile-kr.am: Quote arguments to echo.
+2001-05-08  Akim Demaille  <address@hidden>
 
-       * progs.am: Fix up problems when LIBTOOL is not defined (by
-       setting shell variable instprog to the installation program).
+       * automake.in (&handle_tests_dejagnu): Don't define EXPECT and
+       RUNTEST.
+       * dejagnu.am: Do it.
+       (site.exp): Use `if'.
 
-       * aclocal.in (scan_file): Allow the acinclude.m4 file to override
-       any other macro files (but still prevent multiple definitions
-       within acinclude.m4).
+2001-05-08  Akim Demaille  <address@hidden>
 
-Tue Dec  3 10:40:48 1996  Tom Tromey  <address@hidden>
+       * automake.in: Formatting changes.
+       (variable_dump, variables_dump): Rename as...
+       (macro_dump, macros_dump): these.
 
-       From Ulrich Drepper:
-       * automake.in (handle_emacs_lisp): Typo fix.
-       (scan_configure): Only recognize VERSION after whitespace.
+2001-05-08  Akim Demaille  <address@hidden>
 
-       * texinfos.am: install-info requires path to info file.
+       Support `if !COND', `else COND', `end COND'.
 
-       * progs.am: Use @LIBTOOL@, not $(LIBTOOL).
+       * automake.texi (Conditionals): Document it.
+       * automake.in ($WHITE_PATTERN, $MACRO_PATTERN, $BOGUS_MACRO_PATTERN)
+       ($GNITS_VERSION_PATTERN, $INCLUDE_PATTERN): Use `\d' and `\s'.
+       ($IF_PATTERN, $ELSE_PATTERN, $ENDIF_PATTERN): Likewise, and accept
+       a leading `!' before the condition.
+       (&handle_options): Use `\d'.
+       (&cond_stack_if, &cond_stack_else, &&cond_stack_endif): New.
+       (&read_am_file, &file_contents_internal): Use them.
+       (&transform): No longer substitute `%!COND%', forcing the use of
+       `! %?COND%'.
+       * ansi2knr.am, lex.am, tags.am, texinfos.am, yacc.am: Adjust.
 
-       * automake.in (am_install_var): If -ltlibs passed, substitute
-       @address@hidden
+2001-05-08  Akim Demaille  <address@hidden>
 
-Mon Dec  2 13:51:11 1996  Gordon Matzigkeit  <address@hidden>
+       Uniform handling of per-object compilation rules.
+       Note: Automake is repaired.
 
-       * automake.in (get_object_extension): Unshift ansi2knr onto the
-       all target, so that it builds before any other targets.
-       [de_ansi_objects]: Delete, since unshifting ansi2knr is an easier
-       solution.
+       * automake.in (&handle_languages): Output per object rules for all
+       the objects, not only for those which language supports dependency
+       tracking.
+       Fix Automake: when outputting per-object rules, use `-o' if the
+       language has no `output_flag', as it's really needed.
+       (&handle_single_transform_list): Instead of special casing files
+       which need per object rules but which language don't support
+       dependency tracking, keep them in the queue for processing by
+       `&handle_languages'.
 
-Mon Dec  2 12:13:27 1996  Tom Tromey  <address@hidden>
+2001-05-08  Akim Demaille  <address@hidden>
 
-       * Released 1.1i.
+       * automake.in (&handle_languages): `ext-compile.am' and
+       `depend2.am' are now equivalent for generic rules: output only the
+       latter.
+       * ext-compile.am: Remove.
 
-       From Janos Farkas:
-       * automake.in (handle_texinfo): Must quote $ for make.
+2001-05-08  Akim Demaille  <address@hidden>
 
-Sun Dec  1 15:08:09 1996  Tom Tromey  <address@hidden>
+       Note: This patch breaks Automake.  Repaired within two patches.
 
-       * automake.in (handle_configure): Correctly handle common case of
-       multiple non-Makefiles in AC_OUTPUT.  Require all input files when
-       using ":" syntax.
+       * automake.in (Language): Replace the attribute `output_arg' with
+       `compile_flag' and `output_flag'.
+       (Automake): Adjust language registrations.
+       (&handle_languages): Transform `-c' and `-o' for both suffix and
+       per object rules, instead of `OUTARG' and `LTOUTARG' only for
+       generic rules.
+       (&handle_single_transform_list): Adjust to `compile_flag' and
+       `output_flag'.
+       * depend2.am, ext-compile.am: Use `%-c%' and `%-o%'.
 
-Sun Nov 24 00:33:50 1996  Tom Tromey  <address@hidden>
+2001-05-08  Akim Demaille  <address@hidden>
 
-       * automake.in (handle_source_transform): Don't define
-       EXTRA_prog_SOURCES unnecessarily.  Test extra2.test.
+       * automake.in (&handle_languages): Don't transform %COMPILER%.
+       Use `$lang->compiler' instead of `$pfx' to transform generic
+       %COMPILE% and %LTCOMPILE%.
+       * ext-compile.am: Use %COMPILE%, %LTCOMPILE% and %SOURCE% instead
+       of %COMPILER% and $<.
 
-       * automake.in (initialize_per_input): New variables
-       included_generic_compile, included_knr_compile,
-       included_libtool_compile.
-       (get_object_extension): Use them.
+2001-05-07  Akim Demaille  <address@hidden>
 
-       * automake.in (handle_single_transform_list): Removed
-       Objective-C/C++ support (didn't really work anyway).
-       (handle_single_transform_list): Handle assembly specially.
+       * automake.in (&handle_languages): Use the same `%transform' for
+       both `depend2.am' and `ext-compile.am'.
+       Delay the definition of `$flag' so it is right before the first use,
+       and rename as `$flags'.
 
-       * automake.in (handle_yacc_lex_cxx): Set --mode=compile or
-       --mode=link when running libtool.
+2001-05-07  Akim Demaille  <address@hidden>
 
-       * ltlibs.am: Set --mode=install when running libtool.
-       (address@hidden@PROGRAMS): Set --mode=uninstall when running
-       libtool.
-       * libtool.am (.c.lo): Set --mode=compile when running libtool.
-       * progs.am: Set --mode=install when running libtool.
+       * automake.in (&handle_languages): Compute `$ltoutarg' and
+       `$outarg' independently of dependency code.
+       There is no use looping on a language's possible extensions since
+       we loop over used extensions.
+       Therefore, there is no use for a local `%transform'.
 
-       Fix for bug reported by François Pinard:
-       * automake.in (do_check_merge_target): New sub.
-       (do_one_merge_target): No longer handle `check'.
-       (handle_merge_targets): Use do_check_merge_target.
-       (initialize_per_input): Set @check_tests.
-       (handle_tests): Push onto @check_tests, not @check.
+2001-05-07  Akim Demaille  <address@hidden>
 
-       * automake.in (am_install_var): Typo fix.
-       (handle_configure): Require $inputs[0].
+       * automake.in (&handle_languages): Don't use $comp.
 
-Fri Nov 22 00:01:45 1996  Tom Tromey  <address@hidden>
+2001-05-07  Akim Demaille  <address@hidden>
 
-       * automake.in (handle_lib_objects): Fixed error message
-       processing.
+       * automake.in (&handle_languages): Merge the two loops over
+       %extension_seen/%languages into one and group code to be run once
+       per language together.
 
-Thu Nov 21 22:29:30 1996  Tom Tromey  <address@hidden>
+2001-05-07  Akim Demaille  <address@hidden>
 
-       * automake.in (scan_configure): AC_FUNC_FNMATCH doesn't add to
-       LIBOBJS.
-       (handle_configure): Support multi-":" mode for AC_OUTPUT.
+       * automake.in (&handle_languages): Move the `if
+       ($use_dependencies)' block so that loops over extensions and
+       languages are next to each other.
 
-       * m4/header.m4: New file.
+2001-05-07  Akim Demaille  <address@hidden>
 
-       * automake.in (scan_configure): Recognize AM_CONFIG_HEADER.
+       * automake.in (&depend2): Remove, merged into...
+       (&handle_languages): here.
 
-Wed Nov 20 00:23:42 1996  Tom Tromey  <address@hidden>
+2001-05-07  Akim Demaille  <address@hidden>
 
-       * acinstall: Allow commentary at end of "serial" line.  From Gord
-       Matzigkeit.
+       * automake.in (&finish_languages): Rename as...
+       (&handle_languages): this.
+       Include the body of...
+       (&handle_dependency): this.
+       Remove.
 
-       * automake.in (handle_yacc_lex_cxx): Only replace output header if
-       it has changed.
+2001-05-06  Tom Tromey  <address@hidden>
 
-Tue Nov 19 19:03:30 1996  Tom Tromey  <address@hidden>
+       For PR automake/46:
+       * tests/Makefile.am (TESTS): Add subdir5.test.
+       (XFAIL_TESTS): Likewise.
+       * tests/subdir5.test: New file.
 
-       * automake.in (am_primary_prefixes): Allow configure variables to
-       be named after primary.
-       (am_install_var): Ditto.
+       * tests/subobj6.test (wish_SOURCES): Use $MAKE.
+       * tests/subobj5.test (wish_SOURCES): Use $MAKE.
 
-       * automake.in (initialize_per_input): Initialize output_header.
-       (generate_makefile): Set up output_header; print it before
-       output_rules.
-       (handle_footer): Put .SUFFIXES into output_header, for AIX.
+       * automake.in (GNITS_VERSION_PATTERN): Document.  Add `fork
+       identifier'.
+       (handle_options): Handle fork identifier in version number.
 
-Mon Nov 18 19:11:53 1996  Gordon Matzigkeit  <address@hidden>
+       * automake.texi (Dist): Document distcheck-hook.
 
-       * automake.in: Added a lot of libtool support.  New variable
-       prog_LDFLAGS to pass linker flags.  Use libtoolize to install
-       libtool support files.
+       * tests/confh4.test: Update to reflect DEFS change.
+       For PR automake/132.
 
-Mon Nov 18 13:29:55 1996  Tom Tromey  <address@hidden>
+       Fix for PR automake/132:
+       * automake.in (c, c++, objc, asm, ppf77): Add DEFAULT_INCLUDES to
+       compilation.
+       (java): Remove INCLUDES and DEFS from compilation.
+       (lang_c_finish): Add DEFAULT_INCLUDES to compilation.
+       * compile.am (DEFS): Don't include %DEFAULT_INCLUDES%.
+       (DEFAULT_INCLUDES): New macro.
 
-       * automake.in (handle_lib_objects): Push @LIBOBJS@ and @ALLOCA@
-       onto dependency list.
+       * automake.in (usage): Re-align explanatory text.
+       Fixes PR automake/148.
 
-       * aclocal.in (obsolete_macros): Include AM_SANITY_CHECK_CC; now
-       part of autoconf proper.
-       * m4/ccsanity.m4: Removed.
+       * automake.texi (Uniform): Don't use @address@hidden
+       Fixes PR automake/154.
 
-Sun Nov 17 12:25:17 1996  Tom Tromey  <address@hidden>
+       For PR automake/160:
+       * tests/Makefile.am (TESTS): Add subobj5.test and subobj6.test.
+       (XFAIL_TESTS): Add subobj6.test.
+       * tests/subobj6.test: New file.
 
-       * automake.in (check_typos): Check to make sure EXTRA_ variables
-       don't contain configure subs.
-       (handle_dist_worker): Removed EXTRA_DIST_DIRS; not needed.
+       * automake.texi (Uniform): Mention dist_, nodist_, and nobase_.
+       (Top level): Don't mention `flat'.
+       (Extending): Likewise.
+       (User Variables): New node.
 
-Fri Nov 15 18:58:04 1996  Tom Tromey  <address@hidden>
+       * distdir.am (distdir): Make subdirectory for each file.
+       Fixes test subobj5.test.
 
-       * tags-subd.am: Removed.
+       * tests/Makefile.am (TESTS): Add new file.
+       (XFAIL_TESTS): Likewise.
+       * tests/texinfo10.test: New file.
 
-       * tags.am (tags-recursive): Removed.
-       (TAGS): Depend on @DIRS@, @address@hidden  Use @CONFIG@ in rule.
-       (ID): From tags-subd.am.
-       
-       * aclocal.in (obsolete_macros): Include AM_FUNC_FNMATCH.
-       * automake.in (scan_configure): Recognize AC_FUNC_FNMATCH.
-       * m4/fnmatch.m4: Removed (now in autoconf).
+2001-05-05  Pavel Roskin <address@hidden>
 
-       * automake.in (initialize_per_input): Init de_ansi_objects.
-       (handle_single_transform_list): Error if extension unrecognized.
-       Set elements of de_ansi_objects.
-       (get_object_extension): Don't push ANSI2KNR onto @all.
-       (handle_yacc_lex_cxx): Put ANSI2KNR into dependency of all ._o
-       files.
-       (pretty_print_internal): Initialize $bol depending on the column.
+       * automake.in (scan_texinfo_file): Treat @defindex and @synindex
+       in the same way as @defcodeindex and @syncodeindex respectively.
 
-Fri Nov 15 16:22:15 1996  Gordon Matzigkeit  <address@hidden>
+2001-05-05  Tom Tromey  <address@hidden>
 
-       * library.am: Fixed references to LIBRARY according to new scheme.
+       * mans.am (install-man%SECTION%): Minor cleanup.
+       (uninstall-man%SECTION%): Likewise.
 
-       * libs.am, libs-clean.am: Removed references to LIBFILES.
+       * tests/Makefile.am (XFAIL_TESTS): Removed man.test.
+       * mans.am (install-man%SECTION%): Handle dist_ and nodist_
+       prefixes.
+       (uninstall-man%SECTION%): Likewise.
+       * automake.in (handle_man_pages): Handle dist_ and nodist_
+       prefixes.
 
-       * automake.texi (A Library): doc fix
+       * automake.texi (Future): Removed.
+       (Depth): Removed.
+       (Hello): Don't mention `deep'.
+       (Top level): Likewise.
 
-       * automake.in (handle_libraries): Deleted references to *LIBFILES,
-       since we now have the full library name in the *LIBRARIES
-       variable.
-       (am_install_var): Removed `-no-all' option, which was only required
-       for the LIBFILES hack.
+       * automake.in (conditional_true_when): Use a hash, not index().
+       Also, a TRUE component always results in a true return.
+       Fixes test cond10.test.  For PR automake/164.
+       * tests/Makefile.am (XFAIL_TESTS): Removed cond10.test.
 
-Fri Nov 15 16:39:29 1996  Tom Tromey  <address@hidden>
+2001-05-05  Raja R Harinath  <address@hidden>
 
-       * automake.in: Applied libtool-related patches from Gord.
-       (scan_configure): Set CC configure var if AM_PROG_LIBTOOL seen.
-       Also indicate that AC_CANONICAL_HOST was run.
+       For PR automake/164:
+       * tests/Makefile.am (TESTS): Added new file.
+       (XFAIL_TESTS): Likewise.
+       * tests/cond10.test: New file.
 
-       * Makefile.am (pkgdata_DATA): Removed aclocal.m4.
+2001-05-05  Tom Tromey  <address@hidden>
 
-Thu Nov 14 23:11:09 1996  Tom Tromey  <address@hidden>
+       * texinfos.am (uninstall-info-am): Debian install-info v1.8.3
+       prints to stderr.
+       (install-info-am): Likewise.
 
-       * automake.in (handle_yacc_lex_cxx): Don't auto-define YACC, LEX,
-       CXX, CC.
+2001-05-05  Pavel Roskin <address@hidden>
 
-       * dejagnu.am: Print warning if runtest missing.
+       * automake.in (scan_texinfo_file): Don't push undefined values
+       to @clean_suffixes.
 
-       From Joerg-Martin Schwarz:
-       * automake.in (handle_aclocal_m4): Find aclocal.m4 in srcdir.
-       (require_file_internal): Unlink file before creating it.
+2001-05-05  Richard Boulton  <address@hidden>
 
-       * depend2.am (.deps/%.P): Don't print commands when running.
+       * automake.in (handle_dist): Check for existence of DIST_SUBDIRS
+       first.
 
-Mon Nov 11 10:35:08 1996  Tom Tromey  <address@hidden>
+2001-05-05  Robert Collins  <address@hidden>
 
-       * automake.in (handle_single_transform_list): Simplified C++
-       matching expression.
+       * automake.in (required_targets): Added uninstall-am.
 
-Fri Nov  8 09:49:09 1996  Tom Tromey  <address@hidden>
+2001-05-05  Tom Tromey  <address@hidden>
 
-       * Released 1.1g.
+       Fix bug reported by Robert Boehne:
+       * automake.in (output_lex_build_rule): Don't let AMDEP_TRUE be
+       substituted.
+       (handle_dependencies): Likewise.
+       * Makefile.am (maintainer-check): Look for AMDEP_TRUE
+       substitution.  Correct diff now has 30 lines.  Look for space
+       after losing `undef'.
 
-       * compile-kr.am ($(OBJECTS)): Removed.
+2001-05-04  Peter Eisentraut  <address@hidden>
 
-       * automake.in (get_object_extension): Define ANSI2KNR.  Push onto
-       @all if ansi2knr is in this directory.
+       * m4/sanity.m4: Remove the temp file before possible error exits.
 
-       * configure.in: Don't run AC_ARG_PROGRAM, AC_PROG_MAKE_SET.
+2001-05-04  Akim Demaille  <address@hidden>
 
-       * m4/init.m4: Run AM_SANITY_CHECK.
+       * configure.in: Set perllibdir.
+       From Dave Morrison.
 
-       * m4/sanity.m4: New file.
+2001-05-04  Ralf Corsepius  <address@hidden>
 
-       * automake.in (handle_dist_worker): In Cygnus mode, possibly find
-       files to dist in build dir, not srcdir.
-       (%omit_dependencies): New global.
-       (scan_dependency_file): Handle OMIT_DEPENDENCIES.
-       (scan_configure): Put rx.h, regex.h on %omit_dependencies.  Ditto
-       libintl.h.
-       (handle_tests): Remove CYGNUS strings in Cygnus mode.
-       (handle_texinfo): Ditto.
+       * automake.in ($pkgdata_dir): New.
+       (&require_file_internal): Use it.
 
-       * texinfos.am (dist-info): New target.
+2001-05-03  Akim Demaille  <address@hidden>
 
-       * automake.in (handle_dist_worker): Use DISTFILES, not
-       DEP_DISTFILES.
-       (initialize_per_input): Initialize dist_targets.
-       (handle_texinfo): Don't compute @infos_list; don't define or use
-       INFOS.  Put dist-info onto @dist_targets.
-       (handle_dist_worker): Handle @dist_targets.  Don't use the "echo
-       trick" for expanding DISTFILES any more.
+       Case insensitive FS choke on Automake/ vs automake.
+       Reported by Tim Van Holder.
 
-       * dist-vars.am (DEP_DISTFILES): Removed.
-       (DISTFILES): Don't include INFOS.
+       * Automake/: Move into...
+       * lib/: this new directory.
 
-       * automake.in (handle_texinfo): Handle Cygnus mode.
-       * texinfos.am (.texi.info, .texinfo.info): Handle Cygnus mode.
+2001-05-03  Raja R Harinath  <address@hidden>
 
-       * automake.in (handle_single_transform_list): New sub.
-       (handle_source_transform): Use it.
-       (handle_built_sources): New sub.
+       * data.am (install-%DIR%%PRIMARY%): Execute the same command as
+       echoed.
 
-Thu Nov  7 14:49:16 1996  Tom Tromey  <address@hidden>
+2001-04-30  Jim Meyering  <address@hidden>
 
-       * remake.am ($(srcdir)/Makefile.in): Pass @ARGS@ to automake.
-       * remake-subd.am ($(srcdir)/Makefile.in): Pass @ARGS@ to
-       automake.
-       * automake.in (handle_configure): Pass --cygnus when running
-       automake again.
+       * automake.in: Remove `/lib' from include directory.
 
-       * remake-hdr.am ($(srcdir)/stamp-h.in): Depend on @FILES@, not
-       ACCONFIG, CONFIG_TOP, CONFIG_BOT.
-       * automake.in (handle_aclocal_m4): Always find aclocal.m4 in
-       top_srcdir.
-       (handle_configure): Don't define ACCONFIG, CONFIG_TOP, CONFIG_BOT;
-       instead substitute files directly.
+2001-04-27  Akim Demaille  <address@hidden>
 
-Wed Nov  6 10:22:26 1996  Tom Tromey  <address@hidden>
+       AM_INIT_AUTOMAKE is no longer optional.
 
-       * remake-hdr.am (stamp-h): Look in top_builddir for
-       config.status.
-       ($(srcdir)/stamp-h.in): Look in top_srcdir for configure.in.
+       * automake.in ($seen_make_set, $seen_prog_install)
+       ($seen_arg_prog): Remove.
+       (&handle_programs, &handle_scripts, &scan_one_autoconf_file):
+       Remove related code.
 
-Thu Oct 31 10:55:59 1996  Tom Tromey  <address@hidden>
+2001-04-27  Akim Demaille  <address@hidden>
 
-       * texinfos.am (.texi.dvi): Set MAKEINFO when running texi2dvi.
-       From Jim Meyering.
+       * tests/specflags4.test, tests/specflags5.test: Remove, merged
+       into...
+       * tests/specflags3.test: here.
 
-       * automake.in (handle_texinfo): Push install-info-am, not
-       install-info.
-       (handle_merge_targets): Handle no-installinfo option.
+2001-04-27  Akim Demaille  <address@hidden>
 
-       * texinfos.am (install-info-am): Renamed from install-info.
+       * automake.in ($seen_path_xtra): Remove.
+       (&handle_compile): Don't handle `AC_PATH_XTRA' AC_SUBST variables.
+       (&scan_one_autoconf_file): Do it, instead of setting $seen_path_xtra.
 
-       * automake.in (handle_subdirs): Include install-info-recursive if
-       no-installinfo given.
+2001-04-27  Akim Demaille  <address@hidden>
 
-       * subdirs.am: Include INSTALLINFO token.
+       * automake.in (&file_contents_internal): Declare it.
 
-       * automake.in (handle_texinfo): Explicitly define MAKEINFO,
-       TEXI2DVI.
-       (cygnus_mode): New global.
-       (handle_dist_worker): Pass --cygnus to automake.
-       (initialize_global_constants): Document --cygnus.
-       (check_cygnus): New sub.
-       (handle_texinfo): Don't require texinfo.tex in Cygnus mode.
+2001-04-27  Akim Demaille  <address@hidden>
 
-       * texi-vars.am: Removed.
+       * automake.in (&read_am_file, &file_contents_internal): Don't
+       define macros when `FALSE', to avoid errors on doubly defined
+       variables but under condition `FALSE'.  In order to allow...
+       (&am_install_var): When reading the associated file for the first
+       time, enable `%?FIRST%'.
+       (&handle_libraries): Let libs.am define $(AR) and $(RANLIB).
+       * libs.am: Do it when `%?FIRST%'.
 
-       * dejagnu.am (check-DEJAGNU): Don't define rootme.
+2001-04-27  Akim Demaille  <address@hidden>
 
-       * automake.in (handle_tests): Define EXPECT, RUNTEST.
+       * automake.in (handle_compile): Let ansi2knr.am define $(ANSI2KNR).
+       * ansi2knr.am: Do it.
+       Prefer `if %?FOO%' to `if %!FOO%'.
 
-       * dejagnu.am (EXPECT): Removed.
-       (RUNTEST): Removed.
+2001-04-27  Akim Demaille  <address@hidden>
 
-       * automake.in (define_program_variable): New sub.
+       * automake.in (&register_language, &finish_languages): Use `pure'
+       as a Boolean.
+       (&register_language): Use %done properly with objects, not names.
+       (&finish_languages): Replace `$non_c' with `$needs_c'.
 
-Mon Oct 28 10:43:48 1996  Tom Tromey  <address@hidden>
+2001-04-27  Akim Demaille  <address@hidden>
 
-       * automake.in (handle_dependencies): Use -M, not -MM, for C++
-       dependencies.
+       Unify LISP, PYTHON and JAVA primaries.
 
-Thu Oct 24 20:21:50 1996  Tom Tromey  <address@hidden>
+       * automake.in (&handle_emacs_lisp): Be like &handle_python, i.e.,
+       return if there are no files, hook elisp-comp on the Autoconf
+       macro, rely on lisp.am to define variables.
+       (&handle_python, &handle_java): Likewise.
+       (&scan_one_autoconf_file): Pseudo AC_SUBST of `pythondir' and
+       `PYTHON' must be handled here, not in `&handle_python'.
+       * java.am: Define needed variables and rules.
 
-       * automake.in (check_libobjs_sources): New sub.  Test
-       libobj4.test.
-       (handle_source_transform): Don't check for auto-discovered source
-       files here.
-       (handle_programs): Run check_libobjs_sources here.
-       (handle_libraries): Ditto.
+2001-04-27  Akim Demaille  <address@hidden>
 
-       * automake.in (define_configure_variable): New function.
-       (get_object_extension): Use define_configure_variable.
-       (handle_yacc_lex_cxx): Ditto.
-       (handle_emacs_lisp): Ditto.
-       (configure_vars): New global.
-       (AC_CHECK_PATTERN): New global.
-       (seen_ranlib, seen_prog_cc, seen_prog_cxx, seen_prog_lex):
-       Removed.
-       (handle_yacc_lex_cxx): Use configure_vars, not seen_prog_*.
-       (AC_SUBST_PATTERN): New global.
-       (scan_configure): Use AC_SUBST_PATTERN; don't set seen_prog_*.
-       (handle_libraries): Don't use seen_ranlib.
-       (read_am_file): Run define_configure_variable on each discovered
-       variable.
+       * automake.in (&am_install_var): Transform `ONE_PRIMARY'.
+       * data.am: Use it.
+       * header.am: Include data.am.
 
-Mon Oct 21 23:06:49 1996  Tom Tromey  <address@hidden>
+2001-04-27  Akim Demaille  <address@hidden>
 
-       * automake.in (scan_configure): Handle AM_INIT_GUILE_MODULE.
-       (handle_libraries): Pass configure substitutions directly on to
-       LIBFILES.
+       * automake.in (&am_install_var): Transform `PRIMARY'.
+       * data.am: Equip with %PRIMARY%.
 
-       * automake.in (AM_PACKAGE_VERSION_PATTERN): New global.
-       (scan_configure): Use it.  Test version.test.
+2001-04-27  Akim Demaille  <address@hidden>
 
-Sun Oct 20 12:08:46 1996  Tom Tromey  <address@hidden>
+       * automake.in (@conditional_stack): Rename as...
+       (@cond_stack): this.
+       (&file_contents_internal): Support inclusion of files.
 
-       * automake.in (handle_dist_worker): Explicitly pass distdir to
-       dist-hook make.  From Tatu Ylonen.
+2001-04-27  Akim Demaille  <address@hidden>
 
-       * m4/strtod.m4: Use correct cache variable.
+       * automake.in (&lang_extensions): Remove.
+       (&add_depend2, &saw_sources_p): Adjust.
+       * depend2.am: `%EXT%' no longer includes the dot.
 
-Thu Oct 17 13:45:20 1996  Tom Tromey  <address@hidden>
+2001-04-27  Akim Demaille  <address@hidden>
 
-       Lisp fixes from Erick Branderhorst:
-       * m4/lispdir.m4: Define lispdir, not LISPDIR.
-       * lisp.am: Added missing \.
+       * automake.in (&finish_languages, &handle_single_transform_list)
+       (&add_depend2, &handle_dependencies): No longer use the language
+       name in `$lang'.  Rename `$lang_obj' as `$lang'.
 
-Fri Oct 11 00:44:49 1996  Tom Tromey  <address@hidden>
+2001-04-27  Akim Demaille  <address@hidden>
 
-       * automake.in (handle_source_transform): Only rewrite c, yacc, lex
-       to use de-ansi-fication.
-       (scan_configure): Handle multi-line AC_REPLACE_FUNCS.  Test
-       libobj5.test.
+       * automake.in (&register_language): Use `new Language' with a hash.
 
-       * automake.in (handle_lib_objects): Added $lex_seen argument.
-       Error if lex file used but LEXLIB not seen.
-       (handle_programs): Ditto.
-       (handle_yacc_lex_cxx): Define LEXLIB variable.
-       (handle_lib_objects): Don't allow LEXLIB to end up on dependency
-       list.
+2001-04-27  Akim Demaille  <address@hidden>
 
-Thu Oct 10 16:12:38 1996  Tom Tromey  <address@hidden>
+       * automake.in (&register_language): Rename `output-arg' and
+       `derived-autodep' as `output_arg' and `derived_autodep' to match
+       the Language attribute.
+       Set the defaults in %option instead of $lang.
 
-       * automake.in (handle_gettext): Moved check for SUBDIRS and
-       ABOUT-NLS here.
+2001-04-27  Akim Demaille  <address@hidden>
 
-       * automake.in (handle_configure): Run mkinstalldirs under
-       $(SHELL).
-       (handle_yacc_lex_cxx): Run interlock under $(SHELL).
+       * Automake/: New directory.
+       * Automake/Struct.pm: New file, based on Perl 5.6's Class::Struct.
+       * automake.in (Language): Use Automake::Struct.
+       * tests/defs: Adjust to find Struct.
 
-       * remake-subd.am (Makefile): Run config.status under $(SHELL).
-       * remake-hdr.am (stamp-h): Run config.status under $(SHELL).
-       * remake.am (Makefile): Run config.status under $(SHELL).
-       (config.status): Ditto.
+2001-04-23  Pavel Roskin <address@hidden>
 
-       * automake.in (read_am_file): Removed UNMAINT code.
-       (file_contents_with_transform): Ditto.
-       * m4/maintainer.m4: Removed bogus UNMAINT code.
+       * automake.in: Add forward declaration for register_language().
+       * tests/Makefile.am (XFAIL_TESTS): Remove installsh.test - it
+       passes now.
 
-       * automake.in (handle_emacs_lisp): Define EMACS variable.
-       (handle_emacs_lisp): Make sure EMACS is in environment when
-       elisp-comp is run.
+2001-04-20  Akim Demaille  <address@hidden>
 
-       * elisp-comp: Exit with status 1 if usage bad.
-       Use "emacs -q".  Use EMACS environment variable if set (unless set
-       to t).
+       * automake.in (%required_targets): Add `uninstall'.
+       From Robert Collins.
 
-       * m4/lispdir.m4: Unset EMACS if it is set to `t'.
+2001-04-12  Akim Demaille  <address@hidden>
 
-       * automake.in (handle_dist_worker): Allow EXTRA_DIST items to be
-       in subdirs.
-       (do_one_merge_target): Use all-am, not all, in subdirs case.
-       (handle_merge_targets): Always generate all-am in subdirs case.
+       * automake.in (Language): Add attribute `name'.
+       (&register_language): The name of the language is now given in the
+       hash.
+       No longer use `$lang' as the name of the language.
+       Rename `$lang_obj' as `$lang'.
 
-       * remake.am (Makefile): Depend on BUILT_SOURCES.
-       * remake-subd.am (Makefile): Depend on BUILT_SOURCES.
-       * depend.am (.deps/.P): Don't depend on BUILT_SOURCES.
+2001-04-12  Akim Demaille  <address@hidden>
 
-       * automake.in (handle_yacc_lex_cxx): Handle y.tab.h in non-ylwrap
-       case.
+       * automake.in (Language): Add attribute `_finish'.
+       (&finish): New.
+       (Automake): Adjust.
+       (&lang_header_finish, &lang_yaccxx_finish, &lang_lexxx_finish)
+       (&lang_asm_finish): Remove.
 
-       * ylwrap: Bug fix.  From Jim Meyering.
+2001-04-12  Akim Demaille  <address@hidden>
 
-Wed Oct  9 22:51:16 1996  Tom Tromey  <address@hidden>
+       * automake.in (Language): Add attribute `extensions'.
+       (Automake): Pass a hash to `&register_language' instead of a
+       list of pseudo assignments.
+       (&register_language): Adjust.
+       (&finish_languages): Initialize `$ltoutarg'.
 
-       * m4/mktime.m4: Don't define AC_HEADER_SYS_TIME_H; instead just
-       check directly for header.
+2001-04-12  Akim Demaille  <address@hidden>
 
-Mon Oct  7 13:08:15 1996  Tom Tromey  <address@hidden>
+       * automake.in (Language): Add attribute `output_arg'.
+       (%language_map): Remove.
+       (&register_language): Build only the object, and store in
+       %languages only.
+       (&finish_languages, &handle_single_transform_list): Adjust.
 
-       * automake.in (scan_configure): fp_WITH_DMALLOC and fp_WITH_REGEX
-       are obsolete.
+2001-04-12  Akim Demaille  <address@hidden>
 
-Sun Oct  6 00:43:01 1996  Tom Tromey  <address@hidden>
+       * automake.in (Language): Add attributes `flags', `compile' and
+       `compiler'.
+       (&finish_languages, &handle_single_transform_list, &handle_dist)
+       (&add_depend2, &register_language): Use them and the `linker' and
+       `pure' attributes.
 
-       * automake.in (AC_CONFIG_AUX_DIR_PATTERN): New global.
-       (AM_INIT_AUTOMAKE_PATTERN): New global.
-       (scan_configure): Use them.
+2001-04-12  Akim Demaille  <address@hidden>
 
-       * aclocal.in (add_file): Search contents of included files.  Test
-       req.test.
-       (scan_m4_files): Don't skip acinclude.m4 when constructing
-       search.  Test acsilent.test.
-       (scan_m4_files): Scan acinclude.m4.
+       * automake.in (&handle_single_transform_list, &finish_languages)
+       (&handle_dist, &handle_dependencies): Use the language object for
+       autodep and derived-autodep too.
 
-       * aclocal.in (add_file): Removed debugging print.
-       (scan_configure): Set $file_contents when scanning acinclude.m4.
-       Test acinclude.test.
+2001-04-12  Akim Demaille  <address@hidden>
 
-       * configure.in: Upped to 1.1g.
+       * automake.in (&macro_define): Ignore Automake definition for
+       ($var, $cond) if there is already a user definition for ($var, $cond).
 
-       * Released 1.1f.
+2001-04-12  Akim Demaille  <address@hidden>
 
-       * texinfos.am: Run : after install-info.
+       * automake.in (&scan_texinfo_file): Catch @cindex and the like,
+       but also @deffn and so on which push data in indexes.
+       Reported by Derek R. Price.
 
-       * aclocal.in (parse_arguments): Better error message.
-       * automake.in (parse_arguments): Better error message.
+2001-04-12  Akim Demaille  <address@hidden>
 
-       * remake.am (Makefile): Depend on $(srcdir)/Makefile.in, to work
-       around broken makes.  From David A. Swierczek.
-       * remake-subd.am (Makefile): Ditto.
+       * automake.in (Language): New package, temporarily in this file.
+       Use Class::Struct.
+       (Automake): New package.
+       (%languages): New.
+       (&handle_single_transform_list): Use the language object's `ansi'
+       attribute instead of `$language_map{"$lang-ansi-p"}'.
+       (&register_language): Build and register the language too.
 
-Sat Oct  5 11:29:48 1996  Tom Tromey  <address@hidden>
+2001-04-11  Tom Tromey  <address@hidden>
 
-       * automake.in (generate_makefile): Put BUILT_SOURCES onto @all if
+       Fixes report from Larry Jones:
+       * automake.in (handle_dependencies): Add address@hidden@' where
        appropriate.
-       (handle_source_transform): Error if discovered source file is
-       mentioned.
-       (do_one_merge_target): Move all-vs-check test here.
-
-       * m4/obstack.m4: New file.
-       * m4/error.m4: New file.
+       * m4/make.m4 (AM_MAKE_INCLUDE): Handle BSD-style make.
 
-       * automake.in (scan_configure): Support AM_FUNC_MKTIME,
-       AM_FUNC_ERROR_AT_LINE, AM_FUNC_OBSTACK.
+2001-04-11  Akim Demaille  <address@hidden>
 
-       * texinfo.tex: New version from texinfo 3.9.
+       * depend2.am: Fix the `if' condition for Libtool.
+       Reported by Robert Boehne.
 
-       * automake.in (handle_yacc_lex_cxx): Updated for new ylwrap.
-       Also, handle y.tab.h file when "yacc -d" is used.
-       (do_one_merge_target): Use pretty_print_rule.
+2001-04-10  Robert Collins  <address@hidden>
 
-       * ylwrap: Changed usage.
+       * tests/subobj5.test: New file.
 
-       * m4/mktime.m4: New file.
+2001-04-10  Ralf Corsepius  <address@hidden>
 
-       * m4: Renamed all .m4 files to fit into 14-char limits.
+       * m4/make.m4 (AM_MAKE_INCLUDE): Pass `-s' to make.
+       * tests/Makefile.am (TESTS): Added make.test.
+       * tests/make.test: New file.
 
-       * m4/Makefile.am (EXTRA_DIST): New macro.
+2001-04-10  Tom Tromey  <address@hidden>
 
-       * aclocal.in ($ac_defun_rx, %map, %file_contents): New globals.
-       (scan_m4_files): Use $ac_defun_rx.
-       (add_file): Ditto.
-       Run scan_m4_files.
-       (scan_configure): Scan acinclude.m4 before anything else.
-       (scan_file): New sub.
-       (check_acinclude): New sub.
-       (add_file): Rewrote.
+       * tests/defs: Changed how ACLOCAL and AUTOMAKE are set.
 
-       * progs-clean.am, progs.am: Renamed from programs-clean.am,
-       programs.am.
-       * libs-clean.am, libs.am: Renamed from libraries-clean.am,
-       libraries.am.
-       * texi-vars: Renamed from texinfos-vars.am.
-       * comp-vars.am: Renamed from compile-vars.am.
-       * texi-vers.am: Renamed from texi-version.am.
+2001-04-10  Derek R. Price  <address@hidden>
 
-       * automake.in (require_file_internal): Give error if symlink can't
-       be made.
-       (require_config_file): Error message references configure.in.
-       (handle_yacc_lex_cxx): Fix order of arguments to ylwrap; from
-       Joerg-Martin Schwarz.
-       (handle_texinfo): Use texi-vers, not texi-version.
-       (get_object_extension): Use comp-vars, not compile-vars.
-       (handle_texinfo): Use texi-vars, not texinfos-vars.
-       (handle_libraries): Use `libs' prefix, not `libraries'.
-       (handle_programs): Use `progs' prefix, not `programs'.
+       * tests/defs: Allow user to override AUTOMAKE and ACLOCAL.
 
-Fri Oct  4 01:14:08 1996  Tom Tromey  <address@hidden>
+2001-04-10  Akim Demaille  <address@hidden>
 
-       * aclocal.in (scan_m4_files): New sub.
+       * distdir.am: Add a missing backslash.
 
-       * m4/AM_FUNC_STRTOD.m4 (am_cv_func_strtod_needs_libm): Set
-       am_cv_func_strtod_needs_libm, so we can avoid linking with -lm
-       everywhere.
+2001-04-10  Akim Demaille  <address@hidden>
 
-Thu Oct  3 20:11:16 1996  Tom Tromey  <address@hidden>
+       * automake.in (&scan_aclocal_m4): Handle $relative_dir and special
+       variables.
+       Specify to the caller whether $regen_aclocal_m4.
+       (&handle_configure): Adjust.
+       Transform `REGEN-ACLOCAL-M4'.
+       Reported by Tom.
+       * configure.am: Use it.
+       * tests/defs (me): New.
+       * tests/confdeps.test: New.
 
-       * texinfos.am (uninstall-info): Run install-info --remove.
+2001-04-09  Tom Tromey  <address@hidden>
 
-       * automake.in (read_am_file): Define all variables after reading
-       .am file.  Test vpath.test.  Reported by Anthony Green.
+       * m4/missing.m4 (AM_MISSING_HAS_RUN): Use `true', not `:'.
+       Fixes report from Jim Meyering.
 
-Mon Sep 30 08:31:51 1996  Tom Tromey  <address@hidden>
+2001-04-09  Akim Demaille  <address@hidden>
 
-       * texinfos.am: Run install-info.
+       * automake.in (&handle_configure): Don't bother with optimizing
+       macro uses.
 
-       * automake.in (variable_value_as_list): Just return if comment
-       seen.  Report from Mark Galassi.
-       (handle_options): Don't bother with explicit comment checking.
+2001-04-09  Akim Demaille  <address@hidden>
 
-Tue Sep 24 09:15:46 1996  Tom Tromey  <address@hidden>
+       * tests/cond3.test (expected): Adjust.
 
-       * automake.in (read_am_file): Cleaned up dejagnu variables.
+2001-04-09  Akim Demaille  <address@hidden>
 
-Mon Sep 23 00:04:48 1996  Tom Tromey  <address@hidden>
+       * automake.in (&handle_single_transform_list): Remove $xbase,
+       unused.
+       (&handle_source_transform): All the variables have conditions now,
+       simplify.
+       (&variable_delete): Admit an argument @conds.
 
-       * automake.in (parse_arguments): New usage to conform to GNU
-       standards.
+2001-04-09  Akim Demaille  <address@hidden>
 
-       * aclocal.in (parse_arguments): New usage to conform to GNU
-       standards.
+       * automake.in ($source_suffix_pattern): Remove, unused.
+       %extension_map seems to have replaced it.
 
-       * automake.in (handle_scripts): Push new target onto @check.
-       * scripts.am (address@hidden@SCRIPTS): New target.
+2001-04-09  Akim Demaille  <address@hidden>
 
-       * automake.in (initialize_global_constants): Define %dist,
-       dist_header, dist_trailer.
-       (handle_dist): Make dist-all target.
-       (generate_makefile): Run check_typos later.
-       (examine_variable): New sub.
-       (handle_tags): Examine TAGS_DEPENDENCIES.  Test spell3.test.
-       Error if TAGS_DEPENDENCIES but no sources used.
-       (handle_configure): Examine CONFIGURE_DEPENDENCIES.
+       * ext-compile.am: New file.
+       * automake.in (&finish_languages): Output it.
+       Require a C linker if there are several registered source suffixes.
+       (&handle_compile): No longer push the `.c', `.o', `.obj', `.lo'
+       extensions, which are discovered in ext-compile.am.
+       With the help from Robert Boehne.
 
-Sat Sep 21 13:59:15 1996  Tom Tromey  <address@hidden>
+2001-04-09  Akim Demaille  <address@hidden>
 
-       * automake.in (am_install_var): More error checking.
+       * automake.in (&handle_compile): Extract from...
+       (&get_object_extension): here.
+       (&read_am_file): Call it.
+       ($included_generic_compile, $included_knr_compile)
+       ($included_libtool_compile): Remove.
+       ($get_object_extension_was_run): New.
 
-Fri Sep 20 09:06:37 1996  Tom Tromey  <address@hidden>
+2001-04-09  Akim Demaille  <address@hidden>
 
-       * tags.am (TAGS): Minor cleanup.
+       Use AM_CONDITIONAL and if/endif for AMDEP.
 
-       * clean.am (distclean-generic): Don't remove CONFIG_HEADER.
+       * m4/depend.m4 (AM_DEP_TRACK): Use AM_CONDITIONAL to define AMDEP.
+       * automake.in (&add_depend2): Transform %AMDEP% into `AMDEP' (leading
+       to a configure time if/endif), or to `FALSE' (static removal of
+       the code).
+       (&handle_dependencies): Adjust to use `AMDEP_TRUE'.
+       * depend2.am: Use if/endif.
 
-       * remake-hdr.am (mostlyclean-hdr, clean-hdr, distclean-hdr,
-       maintainer-clean-hdr): New targets.
+       Adjust the 101 tests that use dependencies so that they
+       properly invoke aclocal before automake.  They need to `see'
+       `AM_CONDITIONAL([AMDEP], ...)'.
 
-       * automake.in (handle_configure): Define CONFIG_HEADER correctly
-       when it is in current directory.
-       (handle_configure): Push "hdr" on @clean.
+2001-04-09  Akim Demaille  <address@hidden>
 
-       * remake-hdr.am (stamp-h): Run config.status in top_builddir.
-       ($(srcdir)/stamp-h.in): Run autoheader in top_srcdir.
+       * tags.am: Fix missing leading tabs.
 
-       * automake.in (scan_configure): Check for install.sh here.
-       (basename): New sub.
-       (handle_configure): Handle case where config.h is in subdir.
-       (handle_configure): Make stamp-in.h for user if it doesn't already
-       exist.
-       (touch): New sub.
+2001-04-09  Akim Demaille  <address@hidden>
 
-Tue Sep 17 23:35:14 1996  Tom Tromey  <address@hidden>
+       * automake.in: Use simple quotes to define the _PATTERN variables
+       to unobfuscate the regexps.
+       ($AM_CONDITIONAL_PATTERN): Let the user quote the variable.
 
-       * Makefile.am (EXTRA_DIST): Include pkgdata_DATA.
+2001-04-09  Akim Demaille  <address@hidden>
 
-       * dist-vars.am (DISTFILES): Don't distribute BUILT_SOURCES or
-       DATA.
-       (DEP_DISTFILES): Ditto.
+       * automake.in (&rule_define): When you discover a suffix rules,
+       register the extensions for .SUFFIXES.
+       (&handle_texinfo): Don't register the suffixes.
+       (&get_object_extension): Don't register suffixes, let them be
+       discovered in depend2.am.
+       (&handle_emacs_lisp): Depend on your lisp.am.
+       * lisp.am: Include the rule &handle_emacs_lisp used to output.
 
-Mon Sep 16 22:28:56 1996  Tom Tromey  <address@hidden>
+2001-04-09  Akim Demaille  <address@hidden>
 
-       * automake.in (check_typos): Renamed.
-       (check_typos): Check for _LDADD, _LIBADD, and _DEPENDENCIES.
-       (variable_defined): Note variable as being "seen".
-       (handle_lib_objects): Don't push configure substitutions onto
-       _DEPENDENCIES.
+       * subdirs.am: Don't define info related recursive targets.
+       * texinfos.am: Do.
 
-Sun Sep 15 22:45:43 1996  Tom Tromey  <address@hidden>
+2001-04-09  Akim Demaille  <address@hidden>
 
-       * automake.in (initialize_per_input): Init content_seen.
-       (variable_value_as_list): Set content_seen entry.
-       (define_variable): Ditto.
-       (define_pretty_variable): Ditto.
-       (check_source_typos): New sub.
-       (generate_makefile): Call it.
+       * subdirs.am (RECURSIVE_TARGETS): New variable.
+       Use it.
+       * automake.in (&handle_subdirs): Output it.
+       (&file_contents_internal): Support value spread on several lines.
 
-Thu Sep 12 15:03:19 1996  Tom Tromey  <address@hidden>
+2001-04-09  Akim Demaille  <address@hidden>
 
-       * automake.in (handle_source_transform): Removed extraneous
-       space.  Test implicit.test.
-       (read_am_file): Make sure "canonical" variables are mentioned in
-       %contents.
-       (scan_configure): AC_CHECK_TOOL sets $seen_canonical to
-       $AC_CANONICAL_HOST conditionally.
-       (handle_footer): Don't use define_pretty_variable in all cases.
+       * automake.in (&handle_man_pages): Rely on mans.am to define
+       man%SECTION%dir and MANS.
+       * mans.am: Do it.
 
-Wed Sep 11 11:54:44 1996  Tom Tromey  <address@hidden>
+2001-04-09  Akim Demaille  <address@hidden>
 
-       * clean.am (distclean-generic): Remove CONFIG_CLEAN_FILES here,
-       per GNU/Gnits standards.
+       * automake.in (&variable_dump): Use %var_type properly.
+       (&macro_define): Enforce better overriding rules.
+       Handle the special case that used to handle...
+       (&define_pretty_variable): this.
+       Hence, don't.
+       The variables you define are owned by Automake.
+       (&generate_makefile): PRE_INSTALL and co must not be defined *by
+       the user*.
+       (&variable_defined): Now independent of the owner.
+       (&variable_output, &variable_pretty_output): Adjust to %var_type.
 
-       * libraries.am (address@hidden@LIBRARIES): Use two loops, so new
-       NORMAL_INSTALL and POST_INSTALL variables can work when empty.
+2001-04-09  Akim Demaille  <address@hidden>
 
-       * automake.in (handle_options): Rewrote version handling.  Now
-       returns error indicator.
-       (MACRO_PATTERN, BOGUS_MACRO_PATTERN): Handle `:=' definitions.
-       (RULE_PATTERN): Exclude `:=' from being a rule.
+       * automake.in (%var_was_plus_eq): Rename as...
+       (%var_type): this.
+       (%def_type): Remove.
+       (&macro_define): %var_type may now hold `', `+', or `:'.
+       (%conditional, %am_vars, %content_lines): Rename as...
+       (%var_value, %var_comment, %var_line): these.
 
-       * m4/AM_PROG_CC_STDC.m4 (ac_save_CC): Bug fix from Jim Meyering.
+2001-04-09  Akim Demaille  <address@hidden>
 
-       * automake.in (variable_value_as_list): Always use am_line_error.
-       (define_variable): New sub.
-       (get_object_extension): Use define_variable.
-       (handle_yacc_lex_cxx): Ditto.
-       (handle_source_transform): Ditto.
-       (handle_programs): Ditto.
-       (handle_libraries): Ditto.
-       (handle_texinfo): Ditto.
-       (handle_man_pages): Ditto.
-       (handle_dependencies): Ditto.
-       (handle_aclocal_m4): Ditto.
-       (define_pretty_variable): New sub.
-       (handle_source_transform): Use define_pretty_variable.
-       (handle_lib_objects): Ditto.
-       (handle_libraries): Ditto.
-       (handle_dist): Ditto.
-       (handle_dependencies): Ditto.
-       (handle_configure): Ditto.
-       (handle_footer): Ditto.
-       (handle_emacs_lisp): Ditto.
-       (am_install_var): Ditto.
-
-       * Released version 1.1e.
-
-       * automake.in ($GNITS_VERSION_PATTERN): Handle non-alpha
-       releases.
-
-       * configure.in: Version 1.1e.
-
-       * automake.in (handle_texinfo): Distribute .info file.
-
-Sun Sep  8 09:00:37 1996  Tom Tromey  <address@hidden>
-
-       * Makefile.am (EXTRA_DIST): New macro.
-       (maintainer-clean): Don't run "make check".
-       (pathchk): New target.
-
-       * automake.in (check_gnits_standards): Only check version number
-       syntax at top level.
-       ($package_version_line): New variable.
-       (scan_configure): Set it.
-       (check_gnits_standards): Use am_conf_line_error.
-       (scan_configure): Remove extraneous whitespace from version
-       number.
-       (handle_dist): Handle distcheck-hook.
-
-       * m4/AM_PROG_CC_STDC.m4: Applied patch from Jim Meyering.
-
-       * automake.in (scan_configure): Handle AM_WITH_REGEX.
-       (handle_lib_objects): Require .h files in %libsources but don't
-       generate dependencies for them.
-       (scan_configure): Also require rx.h and regex.h.
-
-       * m4/Makefile.am (m4data_DATA): Don't include AM_PROG_LIBTOOL,
-       AM_FEATURE_CTYPE, AM_FEATURE_ERRNO, AM_FEATURE_EXIT,
-       AM_SYSTEM_HEADER.
-
-       * texi-version.am: Use "cp; rm" and not "mv", to work around
-       broken mvs.
-
-       * automake.in ($package_version): New global.
-       (scan_configure): Set it.
-       (check_gnits_standards): Verify version string; require
-       README-alpha if alpha version.
-       (scan_configure): Recognize AM_FUNC_FNMATCH,
-       AM_REPLACE_GNU_GETOPT.
-
-       * Makefile.am (installcheck-local): Check all scripts.
-
-Sat Sep  7 19:22:32 1996  Tom Tromey  <address@hidden>
-
-       * tags-clean.am: Do deletions here again.
-
-Thu Sep  5 09:06:23 1996  Tom Tromey  <address@hidden>
-
-       * automake.in (usage): Include bug-reporting information.
-       (handle_lib_objects): Error if LIBOBJS seen but never set.
-
-       * aclocal.in ($acdir): Use @datadir@/aclocal.
-       (usage): Include bug-reporting information.
-
-Wed Sep  4 11:36:06 1996  Tom Tromey  <address@hidden>
-
-       * automake.in (handle_source_transform): .deps no longer in
-       srcdir.
-       (handle_lib_objects): Ditto.
-       (handle_dist_worker): Pass --build-dir to automake.
-       ($build_directory): New global.
-       (parse_arguments): Handle --build-dir.
-       (initialize_global_constants): Include --build-dir in help.
-       (scan_dependency_file): New sub.
-       (handle_dependencies): Use it.  Also, use $build_directory.
-       (initialize_global_constants): Added --srcdir-name.
-       (parse_arguments): Ditto.
-       (handle_dist_worker): Ditto.
-       ($srcdir_name): New global.
-       ($srcdir_rx): New global.
-       (parse_arguments): Set it.
-
-       * depend2.am: Removed all mention of $(srcdir).
-
-       * depend.am (MKDEP): Use gcc -M, not gcc -MM.
-       Removed all mention of $(srcdir); dependencies now put into build
-       dir.
-
-       * depend2.am ($(srcdir)/.deps/%.P): Fixed computation of `top'.
-       Don't do work silently.
-
-       * automake.in (handle_merge_targets): Error if invalid uninstall
-       targets are given.
-       (read_am_file): Fix for test block.test.
+       * automake.in (&variable_output): Admit a list of @CONDS.
+       (&variable_pretty_output): New.
+       (&define_pretty_variable): Use it.
+       (&read_am_file, &file_contents_internal): Prepend a separator to
+       $am_vars only if there is none yet.
+       (&file_contents_internal): Rename $separator as $spacing to
+       harmonize with &read_am_file.
 
-Tue Sep  3 18:50:32 1996  Tom Tromey  <address@hidden>
+2001-04-09  Akim Demaille  <address@hidden>
 
-       * texinfos.am (install-info): Added NORMAL_INSTALL.
-       * scripts.am (address@hidden@SCRIPTS): Added NORMAL_INSTALL.
-       * programs.am (address@hidden@PROGRAMS): Added NORMAL_INSTALL.
-       * lisp.am (address@hidden@LISP): Added NORMAL_INSTALL.
-       * libraries.am (address@hidden@LIBRARIES): Added NORMAL_INSTALL.
-       Also, use POST_INSTALL when running ranlib.
-       * header.am (address@hidden@HEADERS): Added NORMAL_INSTALL.
-       * data.am (address@hidden@DATA): Added NORMAL_INSTALL.
+       * automake.in (&am_install_var): Transform DIST, and let the *.am
+       files handle DIST_COMMON.
+       * data.am, header.am, java.am, list.am, python.am, script.am: Set
+       DIST_COMMON.
 
-       * automake.in (handle_man_pages): Added NORMAL_INSTALL invocation.
-       (handle_merge_targets): Ditto.
-       (handle_merge_targets): Error if PRE_INSTALL, POST_INSTALL, or
-       NORMAL_INSTALL defined.
+2001-04-09  Akim Demaille  <address@hidden>
 
-       * m4/AM_PROG_INSTALL.m4: INSTALL_SCRIPT defaults to
-       ${INSTALL_PROGRAM}.  From François Pinard.
+       * automake.in (%dist_common): Remove.
+       (%configure_dist_common): Replace with...
+       ($configure_dist_common): this.
+       (&generate_makefile): Read the user file before using
+       push_dist_common, as it sets DIST_COMMON, and read_am_file checks
+       that no variable is defined before it is run.
+       (&handle_texinfo): Don't handle DIST_COMMON, let your file do it.
+       (&dist_cmp): Rename as...
+       (&for_dist_common): this.
+       (&handle_dist): Don't handle DIST_COMMON, let `configure.am' do
+       it.
+       Adjust to $configure_dist_common.
+       * configure.am, texi-vers.am: Set DIST_COMMON.
 
-Tue Aug 27 08:25:05 1996  Tom Tromey  <address@hidden>
+2001-04-09  Akim Demaille  <address@hidden>
 
-       * automake.in (file_contents_with_transform): Correctly remove
-       @(UN)?MAINT@ from input when maintainer mode not active.
-       (handle_aclocal_m4): Handle no-maintainer-mode case.
+       * automake.in (&handle_aclocal_m4): Rename as...
+       (&scan_aclocal_m4): this.
+       Return the list of aclocal.m4 dependencies.
+       (&handle_configure): Invoke it, and use it when loading...
+       * configure.am: Template the rules to recreate aclocal.m4.
 
-       * remake-hdr.am ($(CONFIG_HEADER)): Removed @address@hidden
+2001-04-09  Akim Demaille  <address@hidden>
 
-       * m4/AM_SANITY_CHECK_CC.m4: New file (from Jim Meyering).
+       * automake.in (&get_object_extension): Use ansi2knr.am.
+       * clean-kr.am, kr-extra.am: Remove, merged into...
+       * ansi2knr.am: this new file.
 
-Mon Aug 26 21:37:32 1996  Tom Tromey  <address@hidden>
+2001-04-09  Akim Demaille  <address@hidden>
 
-       * automake.in (handle_lib_objects): Bug fix from Steve M Robbins.
-       (handle_libraries): Don't include libraries from EXTRA_LIBRARIES
-       in LIBFILES definition.  Reported by Steve M Robbins.  Test
-       alllib.test.
+       * automake.in (&transform): Fix an incredible bug which was
+       breaking the if/endif system.
+       ($ELSE_PATTERN): Admit an optional argument.
 
-       * automake.in (variable_value_as_list): New sub.
-       (handle_source_transform): Use it.
-       (handle_lib_objects): Ditto.
-       (handle_libraries): Ditto.
-       (handle_texinfo): Ditto.
-       (handle_man_pages): Ditto.
-       (am_install_var): Ditto.
-       (handle_options): Ditto.
+2001-04-09  Akim Demaille  <address@hidden>
 
-Sat Aug 24 09:30:46 1996  Tom Tromey  <address@hidden>
+       * comp-vars.am: Remove, merged into...
+       * compile.am: here.
+       * automake.in (&get_object_extension): Adjust.
 
-       Reported by Jim Meyering:
-       * automake.in (get_object_extension): Look in "./" for ansi2knr if
-       no path found.
-       (handle_aclocal_m4): Protect aclocal.m4 rule with @address@hidden
+2001-04-09  Akim Demaille  <address@hidden>
 
-       * remake.am (.PHONY): New target.
+       * remake.am: Merge into...
+       * configure.am: ... here.
+       * automake.in (&handle_configure): Adjust.
 
-       * m4/AM_MAINTAINER_MODE.m4: Also define UNMAINT.
+2001-04-09  Akim Demaille  <address@hidden>
 
-       * automake.in (check_gnu_standards): Disallow no-installman,
-       no-installinfo.
-       (read_am_file): Sed out UNMAINT too.
-       (file_contents_with_transform): Ditto.
+       * automake.in (&output_lex_build_rule): Output this...
+       * lex.am: New file.
 
-       * acinstall: New file.
+2001-04-09  Akim Demaille  <address@hidden>
 
-       * m4/AM_INIT_AUTOMAKE.m4: Define PACKAGE and VERSION.
+       * automake.in (&condition_negate): New.
+       (&variable_conditions_permutations): Use it.
+       (&read_am_file, &file_contents): Use it on `else' clauses to
+       support `if FALSE'.
+       (&output_yacc_build_rule): Output this...
+       * yacc.am: New file.
 
-       * m4/AM_WITH_REGEX.m4: New version from François Pinard.
+2001-04-09  Akim Demaille  <address@hidden>
 
-       * m4/AM_TYPE_PTRDIFF_T.m4: Use am_cv, not ac_cv.
-       * m4/AM_C_PROTOTYPES.m4: Ditto.
-       * m4/AM_FUNC_STRTOD.m4: Ditto.
-       * m4/AM_PROG_CC_STDC.m4: Ditto.
-       * m4/AM_PROG_LIBTOOL.m4: Ditto.
+       * automake.in (&make_paragraphs): Transform TOPDIR_P and TOPDIR.
+       (&handle_dist): Don't.
+       (&handle_clean): Don't handle config.status here, let...
+       * clean.am: ... do it.
+       * distdir.am: Adjust.
 
-Fri Aug 23 22:23:50 1996  Tom Tromey  <address@hidden>
+2001-04-09  Akim Demaille  <address@hidden>
 
-       * m4/Makefile.am (m4datadir): New macro
-       (m4data_DATA): Renamed.
+       * automake.in: Use strict vars and subs.
+       Declare `%require_file_found'.
+       (&handle_source_transform, &make_paragraphs): Declare my variables.
 
-       * Makefile.am (cvs-dist): Depend on distcheck target.
+2001-04-09  Akim Demaille  <address@hidden>
 
-Mon Aug 19 15:37:32 1996  Tom Tromey  <address@hidden>
+       * data.am, header.am, java.am, libs.am, lisp.am, ltlib.am,
+       * progs.am, python.am: Use if/endif instead of ?INSTALL?.
+       * java.am (_am_installdirs): Be sure to set it.
 
-       * automake.in (initialize_global_constants): [common_files]
-       Include acinclude.m4.
+2001-04-09  Akim Demaille  <address@hidden>
 
-       * m4/AM_PROG_CC_STDC.m4: Patch from Jim Meyering/Kaveh Ghazi.
+       * automake.in (&make_condition): Return '#' when FALSE.
+       (&conditional_string): Return FALSE, not '#' in the corresponding
+       cases.
+       (&file_contents_internal): Adjust.
+       (&check_variable_defined_unconditional): Dump the guilty variable.
 
-Sat Aug 17 11:27:14 1996  Tom Tromey  <address@hidden>
+2001-04-09  Akim Demaille  <address@hidden>
 
-       * automake.in (handle_dependencies): Push `depend'-clean targets
-       on @clean.
-       * depend.am (mostlyclean-depend, clean-depend, distclean-depend,
-       maintainer-clean-depend): New targets.
+       * distdir.am: Use and abuse of if/endif.
+       * scripts.am: Using if/endif with variables is fine.
 
-Tue Aug 13 17:53:58 1996  Tom Tromey  <address@hidden>
+2001-04-09  Akim Demaille  <address@hidden>
 
-       * texinfos.am (.texinfo.info): New target.
-       (.texinfo.dvi): New target.
+       * automake.in (&make_paragraphs):  Extract from &file_contents.
+       Make it more robust than the previous RE based scheme.
+       (&file_contents): Use it.
 
-       From Jim Meyering:
-       * automake.in (handle_texinfo): Use `.info[-0-9]*' as pattern to
-       match info files.
-       (handle_texinfo): Handle `.texinfo' files.
+2001-04-09  Akim Demaille  <address@hidden>
 
-Mon Aug 12 10:28:46 1996  Tom Tromey  <address@hidden>
+       * automake.in (&make_paragraphs):  Extract from &file_contents.
+       Make it more robust than the previous RE based scheme.
+       (&file_contents): Use it.
 
-       * automake.in (require_file_internal): Special-case `.' when
-       finding files to distribute.  Test libobj2.test.
+2001-04-09  Akim Demaille  <address@hidden>
 
-       * aclocal.in (add_file): Fixed regexp for matching AC_DEFUN.  Test
-       order.test.
+       * tests/yacc2.test: Don't define several times a variable, as
+       automake complains.
 
-       * m4/AM_HEADER_TIOCGWINSZ_NEEDS_SYS_IOCTL.m4: New file.
-       * m4/AM_SYS_POSIX_TERMIOS.m4: New file.
+2001-04-09  Akim Demaille  <address@hidden>
 
-       * compile-kr.am: Removed duplicate ansi2knr rules.
+       * automake.in (&handle_source_transform): Fix pr72: don't define
+       $linker if there are no @files.
 
-Sun Aug 11 00:20:16 1996  Tom Tromey  <address@hidden>
+2001-04-09  Akim Demaille  <address@hidden>
 
-       * automake.in (handle_yacc_lex_cxx): Bug fix from Josh MacDonald.
-       (handle_yacc_lex_cxx): Put C++ extensions on suffix list.
-       (mkdir): Removed.
+       Avoid reading twice header-vars.am as now macro_define
+       complains.
 
-       * automake.in (initialize_global_constants): [common_files]
-       Include interlock and ylwrap.
+       * automake.in (&define_standard_variables): Don't output the
+       variables.
+       (&read_main_am_file): Output first user variables, then Automake
+       variables.
+       Don't call twice &define_standard_variables.
+       Save variable comments in $am_vars.
+       (&variable_output): New.
+       (&file_contents_internal): New.
+       Save variable comments in $am_vars.
+       (&file_contents): Use it.
 
-       * Released version 1.1c.
+2001-04-09  Akim Demaille  <address@hidden>
 
-       * aclocal.in (obsolete_macros): md_TYPE_PTRDIFF_T and
-       ud_PATH_LISPDIR are obsolete names.
+       * automake.in (&macro_define): The user is allowed to override
+       a value if it was set by Automake, or if it was found in AC_SUBST.
 
-       * m4/AM_LC_MESSAGES.m4, m4/AM_WITH_NLS.m4, m4/AM_GNU_GETTEXT.m4:
-       Removed.
+2001-04-09  Akim Demaille  <address@hidden>
 
-       * automake.in (handle_lib_objects): Changed interface.  Now
-       generates _DEPENDENCIES variable if appropriate.
-       (handle_emacs_lisp): Use AM_PATH_LISPDIR.
-       (scan_configure): Ditto.
+       * automake.in (&handle_source_transform): Better locality of the
+       variables.
+       Use `next' to skip nonexistent variables.
 
-       * Makefile.am (CLEANFILES): Removed.
+2001-04-09  Akim Demaille  <address@hidden>
 
-       * automake.in (handle_configure): Define CONFIG_CLEAN_FILES.
+       * automake.in (&variable_dump): If a variable is undefined, say
+       it.
+       (&check_ambiguous_conditional): Give finer error messages.
+       (&macro_define): Check that a `+=' variable is not set with `='.
+       Check for ambiguous definitions each time you _set_ (even with `+=')
+       a variable.
+       (&read_main_am_file): Perform a deep copy of %conditional.
 
-       * clean.am (clean-generic): Remove $(CONFIG_CLEAN_FILES).
+2001-04-09  Akim Demaille  <address@hidden>
 
-       * compile-vars.am (CC, CFLAGS, COMPILE, LINK): Removed.
+       * automake.in (&variable_defined): Some callers, e.g.,
+       &am_primary_prefixes, really want to know if the variable is
+       defined for any condition, not `TRUE' by default.
+       (&am_primary_prefixes): Give a more precise error message.
 
-       * automake.in (handle_yacc_lex_cxx): Require ylwrap in
-       multi-lex/yacc case.
-       (handle_source_transform): Changed return result.
-       (handle_programs): Use linker returned by
-       handle_source_transform.
-       (seen_prog_cc, seen_prog_cxx): New globals.
-       (scan_configure): Recognize AC_PROG_CC and AC_PROG_CXX.
-       (handle_yacc_lex_cxx): Error message if AC_PROG_CXX or
-       AC_PROG_YACC missing.
-       (seen_decl_yytext, seen_prog_lex): New globals.
-       (scan_configure): Set them.
-       (handle_yacc_lex_cxx): Warn about missing AC_PROG_LEX or
-       AC_DECL_YYTEXT.
-       (handle_yacc_lex_cxx): Use $(LEX_OUTPUT_ROOT).
-       (initialize_per_input): Initialize seen_c_source.
-       (handle_yacc_lex_cxx): Define CC, CFLAGS, COMPILE, LINK only when
-       C source seen.
-       (handle_source_transform): Set seen_c_source.
+2001-04-09  Akim Demaille  <address@hidden>
 
-       * interlock: Changed usage.
+       (&variable_conditions): Don't include `FALSE' in the result.
 
-       * ylwrap: New file.
+2001-04-09  Akim Demaille  <address@hidden>
 
-       * automake.in (handle_yacc_lex_cxx): Renamed.
+       * automake.in (&variable_conditions_reduce): FALSE is absorbent.
+       (&variable_conditions): Don't include `FALSE' in the result.
 
-       * automake.in (handle_dependencies): Handle %cxx_extensions.
-       Include depend2.am when appropriate.
+2001-04-09  Akim Demaille  <address@hidden>
 
-       * depend2.am: New file; contents from depend.am but templatized.
+       * tests/defs, tests/depend3.test: Remove useless code.
 
-       * automake.in (initialize_per_input): Initialize
-       %cxx_extensions.
-       (handle_source_transform): Set %cxx_extensions.
+2001-04-09  Akim Demaille  <address@hidden>
 
-Sat Aug 10 10:29:30 1996  Tom Tromey  <address@hidden>
+       * automake.in (&handle_source_transform):  Use
+       &variable_conditions, don't read $conditional{$var}.
+       (&variable_conditions_sub): When the call is the top level call,
+       generate all the permutations of the conditions.
 
-       * interlock: New file.
+2001-04-09  Akim Demaille  <address@hidden>
 
-       * automake.in (handle_yacc_lex): New sub.
-       (handle_source_transform): Removed most yacc/lex handling.
-       (initialize_per_input): Init yacc_sources, lex_sources.
-       (generate_makefile): Run handle_yacc_lex.
-       (handle_merge_targets): Use `scalar' and not $# to find length of
-       array.
+       * depend2.am (@address@hidden): Define it when GENERIC so
+       that it does not get noticed twice by automake, which now
+       complains for multiple definitions.
+       * tests/vartar.test: s/INSTALL/install/g, automake now complains
+       because we defined INSTALL.
 
-       * m4/AM_FEATURE_EXIT.m4: Wrote.
-       * m4/AM_FEATURE_CTYPE.m4: Wrote.
-       * m4/AM_FEATURE_ERRNO.m4: Wrote.
+2001-04-09  Akim Demaille  <address@hidden>
 
-       * aclocal.in (macro_seen): New global.
-       (add_file): Set macro_seen entry.  Only push required macro on
-       @rlist if not already seen.  Test defun.test.
+       * automake.in (&generate_makefile) Use macro_define to define
+       SOURCES and OBJECTS.
+       (&variable_defined): Don't check for $conditional{VAR}{COND} as
+       this would make perl create $condition{VAR}, which we don't want.
 
-       * automake.in (get_object_extension): Handle directory prefix on
-       `ansi2knr' option.
+2001-04-09  Akim Demaille  <address@hidden>
 
-       * kr-extra.am: New file.
+       * automake.in (&variable_defined, &define_pretty_variable):
+       Simplify code which used to handle the cases where not all
+       variables were in %conditional.
+       (&define_variable): Use &define_pretty_variable.
+       (&variable_conditions_sub, &variable_value_as_list_worker)
+       (&variable_value_as_list, &rule_define): Simplify syntax.
+       (&read_main_am_file): Dump the guilty predefined variables.
 
-       * kr-vars.am: Removed.
+2001-04-09  Akim Demaille  <address@hidden>
 
-       * automake.in (handle_options): Handle directory prefix on
-       `ansi2knr' option.
+       * automake.in (&variable_conditions_sub)
+       (&variable_value_as_list_worker): Remove dead code which used to
+       handle the cases where not all variables were in %conditional.
 
-       * automake.in (scan_configure): Recognize AM_FUNC_STRTOD.
+2001-04-09  Akim Demaille  <address@hidden>
 
-       * aclocal.in (add_file): Error if macro is duplicated.  Test
-       dup.test.
+       * automake.in (&handle_source_transform, &read_main_am_file):
+       Simplify loops which were split in two parts, conditional vs
+       unconditional variables.
 
-Fri Aug  9 09:18:46 1996  Tom Tromey  <address@hidden>
+2001-04-09  Akim Demaille  <address@hidden>
 
-       * automake.in (handle_programs): Substitute @address@hidden  Make sure
-       linker variable is transformed name.
-       * program.am (@PROGRAM@): Use @XLINK@ to link.
+       Handle unconditional values of variables as conditioned by
+       `TRUE'.
 
-       * automake.in (handle_scripts): Fixed call to
-       am_primary_prefixes.
-       (handle_libraries): Better error message when AC_PROG_RANLIB
-       required.
+       * automake.in (%contents): Remove.
+       (&generate_makefile, &handle_ltlibraries, &macro_define)
+       (&read_am_file, &variable_defined, &variable_conditions_sub)
+       (&variable_value, &variable_value_as_list_worker)
+       (&variable_value_as_list, &define_pretty_variable)
+       (&read_main_am_file): Use
+       $conditional, not %contents.
+       (&variable_conditions_permutations): Don't return TRUE and FALSE.
+       (&variable_conditionally_defined): New.
+       (&handle_dist): Use it.
+       (&check_ambiguous_conditional): When multiply defined, specify
+       under which condition.
+       (&macro_define): Use it.
+       (&variable_delete): New.
+       (&read_am_file): Use it.
+       (&am_install_var): Simplify, as all the variables are in
+       %conditional now.
 
-       * automake.in (handle_libraries): Canonicalize library name.  Test
-       canon4.test.
-       * library.am (address@hidden@.a): Use @XLIBRARY@ where appropriate.
-       (address@hidden@.a): Look at _DEPENDENCIES variable.
+2001-04-07  Tom Tromey  <address@hidden>
 
-Thu Aug  8 10:57:21 1996  Tom Tromey  <address@hidden>
+       * tests/Makefile.am (XFAIL_TESTS): Added man.test.
+       (TESTS): Likewise.
+       * tests/man.test: New file.
 
-       * automake.in (handle_scripts): Correctly compute
-       $scripts_installed.  Test scripts.test.
+2001-04-07  Raja R Harinath  <address@hidden>
 
-Wed Aug  7 12:13:15 1996  Tom Tromey  <address@hidden>
+       * depcomp (gcc3): Invert test condition.
 
-       * ansi2knr.c: New version.
+2001-04-07  Tom Tromey  <address@hidden>
 
-Tue Aug  6 10:58:37 1996  Tom Tromey  <address@hidden>
+       * depcomp (gcc3, gcc): Don't assume $? will be set in `if'
+       statement.  Report from Larry Jones.
 
-       * automake.in (handle_source_transform): Handle more C++ file
-       extensions.  "Handle" Objective C.  Handle more FORTRAN
-       extensions.
+2001-04-07  Raja R Harinath  <address@hidden>
 
-       * compile-vars.am (LEX): Removed.
-       (YACC): Removed.
+       * depcomp (sgi): Fix sed expression.  Report from Robert Boehne.
 
-       * automake.in (handle_source_transform): Correctly handle lex
-       source.  Test lex.test.
-       (handle_source_transform): Skip more C++ headers.  Generate macro
-       definitions for YACC and LEX on first use.
+2001-04-01  Tom Tromey  <address@hidden>
 
-       * aclocal.in (parse_arguments): Mention GNU.
-       * automake.in (parse_arguments): Mention GNU.
+       * java.am (.PHONY clean-am): Removed trailing ":".
+       From Per Bothner.  Fixes PR automake/139.
 
-Mon Aug  5 00:12:45 1996  Tom Tromey  <address@hidden>
+2001-03-28  Akim Demaille  <address@hidden>
 
-       * automake.in (handle_programs): Define program_LINK.
-       * program.am (@PROGRAM@): Use program_LINK to link.
+       * program.am: Fix a stupid typo: now *all* (not none) the programs
+       use `$(EXEEXT)'.
+       Reported by Robert Boehne.
 
-       * Released version 1.1b
+2001-03-23  Akim Demaille  <address@hidden>
 
-       * automake.in (scan_configure): AM_INIT_AUTOMAKE sets
-       seen_prog_install to `2'.
+       * automake.in (&read_am_file, &file_contents): Avoid name clashes
+       on $cond.
 
-       * configure.in: Don't run AM_PROG_INSTALL.
+2001-03-23  Akim Demaille  <address@hidden>
 
-       * automake.in (parse_arguments): Use $PACKAGE.
-       ($PACKAGE): New global.
-       ($am_c_prototypes): Renamed.
-       (get_object_extension): Use am_c_prototypes.
-       (scan_configure): Ditto.
-       (scan_configure): Use AM_MAINTAINER_MODE.
-       (scan_configure): Warn about obsolete macros.
+       * automake.in (&variable_conditionally_defined): Rename as...
+       (&check_variable_unconditionally_defined): this.
+       (&variable_dump): Fix the output.
+       (&variable_defined, &macro_define): Since conditions are
+       canonicalized, don't use a loop to look for a condition: read the
+       hash.
+       (&macro_define, &rule_define, &read_am_file, &file_contents):
+       Rename $cond_string as $cond.
+       * distdir.am (PACKAGE, VERSION): Remove; since they are already
+       discovered via AC_SUBST, they now trigger a `defined twice' error.
 
-       * aclocal.in (parse_arguments): Use $PACKAGE.
-       ($PACKAGE): New global.
+2001-03-23  Akim Demaille  <address@hidden>
 
-       * Makefile.am (CLEANFILES): Added aclocal.
-       (ETAGS_ARGS): Added aclocal.in.
-       (TAGS_DEPENDENCIES): Ditto.
-       (maintainer-check): Depend on aclocal.
-       (maintainer-check): Check aclocal.
-       (bin_SCRIPTS): Include aclocal.
+       * automake.in (&handle_footer, &handle_installdirs)
+       (&read_main_am_file): Don't read %contents directly, use
+       &variable_value.
 
-       * automake.in (scan_configure): Handle AM_INIT_AUTOMAKE.
-       (scan_configure): Use AM_PROG_INSTALL.
+2001-03-23  Akim Demaille  <address@hidden>
 
-       * configure.in: Use AM_INIT_AUTOMAKE.
+       * automake.in (&read_am_file): Define the variables in a single
+       shot.
+       Factor the $saw_bk code.
 
-       * automake.in (keyed_aclocal_warning): Warning tells about
-       aclocal.
-       (handle_aclocal_m4): New sub.
-       (handle_configure): Use it.
+2001-03-23  Akim Demaille  <address@hidden>
 
-       * aclocal.in (output_file): New global.
-       (usage): Handle --output.
-       (parse_arguments): Handle --output.
+       * automake.in (&read_am_file): Keep $cond_string up to date.
 
-       * m4/AM_INIT_AUTOMAKE.m4: New file.
+2001-03-23  Akim Demaille  <address@hidden>
 
-       * m4/AM_PROG_CC_STDC.m4: Require AC_PROG_CC.
-       Don't touch CFLAGS.
+       * automake.in (&define_variable): Use &macro_define.
 
-       * automake.in (handle_dist_worker): Reverted erroneous "-chmod".
-       (handle_texinfo): Don't generate `.info-[0-9]' as a filename.
+2001-03-23  Akim Demaille  <address@hidden>
 
-       * texinfos.am (.texi.info): Force .info file to be built in
-       srcdir.  From Franc,ois Pinard.
+       * automake.in (&macro_define): Don't lose the location if we
+       redefine a variable.
+       Don't push all the variables in @var_list, let...
+       (&read_am_file, &file_contents): ... do it.
+       (&define_pretty_variable): Use macro_define.
+       (&am_install_var): Delete the value of variables being redefined
+       to pacify &macro_define which checks that variables are not
+       doubly defined.
 
-       From Jim Meyering:
-       * m4/AM_PROG_CC_STDC.m4: (fp_PROG_CC_STDC): Include sys/stat.h in
-       test program so that DYNIX/ptx V4.1.3 doesn't use `-Xc
-       -D__EXTENSIONS__' -- with those options on that system, sys/stat.h
-       gets compile errors.  With help from Marcus Daniels.
+2001-03-23  Akim Demaille  <address@hidden>
 
-       * automake.in (initialize_global_constants): Put elisp-comp into
-       @common_files.  Bug from Glenn Amerine.
+       * automake.in (&conditional_dump): Rename as...
+       (&variables_dump): this.  Use...
+       (&variable_dump): this new sub.
 
-Sun Aug  4 12:52:43 1996  Tom Tromey  <address@hidden>
+2001-03-23  Akim Demaille  <address@hidden>
 
-       * automake.in (handle_dist_worker): Use fgrep, not grep.
+       * automake.in (&file_contents): Maintain $cond_string sync with
+       @cond_stack.
+       Output rules only if not under `FALSE'.
+       Define variables under $cond_string.
+       * scripts.am: For the time being if/endif does not work properly
+       with macros.
 
-       * m4/AM_C_PROTOTYPES.m4: Changes from François Pinard.
+2001-03-23  Akim Demaille  <address@hidden>
 
-       * automake.in (handle_emacs_lisp): Include lisp-clean.am in
-       output.
-       (initialize_global_constants): [install_man_format] Don't hide
-       "ugliness" at install time.
+       * automake.in (IF_PATTERN): Unobfuscate the parens.
+       (ENDIF_PATTERN): Allow a condition to be specified.
+       (&file_contents): Use a @cond_stack.
+       (&transform): At least for an easy transition, also transform
+       %?FOO% and %!FOO%, as suggested by Lars.
+       * scripts.am: First test bed for static if/endif use.
 
-       * lisp-clean.am: New file.
+2001-03-23  Akim Demaille  <address@hidden>
 
-       * tags-clean.am (maintainer-clean-tags): Remove TAGS and ID here.
+       * automake.in (&file_contents): Use rule_define.
 
-       * automake.in (handle_man_pages): Patch from Janos Farkas to fix
-       bug when installing man pages.  Test man.test.
-       (initialize_global_constants): [install_man_format] Make sure man
-       page can actually be found in either source or build dirs.
-       (handle_dist_worker): Use "755" permissions on distdir.
+2001-03-23  Akim Demaille  <address@hidden>
 
-       * automake.in (handle_dist): Allow chmod's to fail.
-       (am_primary_prefixes): New function.
-       (am_install_var): Use it.
-       (handle_libraries): Use it.  Test libfiles.test.
-       (handle_dist): For dist-tarZ, assume traditional "tar" and
-       "compress".
+       * automake.in (&macro_define): Don't rely on $1.
+       Initialize the variable.
+       Set its Automakism only if not defined or if given to the user.
+       When concatenating values, insert a separator only if the value
+       was not empty.
+       (&read_am_file): When dumping the @var_list, skip Automake
+       variables.
+       (&file_contents): Use macro_define.
 
-       * m4/AM_FUNC_STRTOD.m4: New file.
+2001-03-23  Akim Demaille  <address@hidden>
 
-       * automake.in (handle_dist): Only generate `distdir' variable if
-       it doesn't already exist.
+       * automake.in (&rule_define): Extract from...
+       (&read_am_file): here.
 
-       Fix for bug reported by Harlan Stenn.  Test tags.test.
-       * automake.in (initialize_per_input): Define dir_holds_sources.
-       (handle_tags): Check dir_holds_headers.
-       (handle_headers): Set dir_holds_headers.
+2001-03-23  Akim Demaille  <address@hidden>
 
-       * automake.in (handle_texinfo): Generate "version.texi" dependency
-       for .dvi file.  Bug reported by Glenn Amerine.  Test vtexi2.test.
+       * automake.in (&macro_define, &read_am_file): More work for the
+       former from the latter.  Reorganize the latter.
 
-       * automake.in (handle_configure): Require file $input, not
-       "$local.in".  From Nyul Laszlo.  Test colon.test.
+2001-03-23  Akim Demaille  <address@hidden>
 
-Sun Jul 28 11:14:52 1996  Tom Tromey  <address@hidden>
+       * automake.in (&macro_define): Extract from...
+       (&read_am_file): here.
 
-       * aclocal.in: New file.
-       * configure.in: Generate m4/Makefile, aclocal.
-       * Makefile.am (SUBDIRS): Include m4.
-       * m4/Makefile.am: New file.
+2001-03-23  Akim Demaille  <address@hidden>
 
-Fri Jul 19 10:12:27 1996  Tom Tromey  <address@hidden>
+       * automake.in (%am_var_defs): Replace with...
+       (%var_is_am): this.
+       (&handle_installdirs, &variable_value_as_list_worker, &read_am_file)
+       (&file_contents, am_primary_&prefixes): Adjust.
+       (&variable_defined, &define_variable): The actual semantics is
+       `user defined'.
+       (&read_main_am_file): Assert the var is user defined when
+       outputting @var_list.
 
-       * automake.in (initialize_global_constants): Put ansi2knr.c and
-       ansi2knr.1 into common_files.  Bug report from François Pinard.
+2001-03-23  Akim Demaille  <address@hidden>
 
-Mon Jul 15 10:28:29 1996  Tom Tromey  <address@hidden>
+       * automake.in (read_am_file): TRUE and FALSE are predefined
+       conditionals.
+       (&by_condition): Adjust.
+       (&conditional_string): Recognize `TRUE' and `FALSE'.
+       (&make_condition): Use it.
+       * m4/cond.m4: Reject TRUE and FALSE as conditionals.
+       * automake.texi (Conditionals): Adjust.
+       * tests/cond9.test: s/FALSE/WRONG/.
 
-       * install-sh: Updated copyright notice.
+2001-03-12  Pavel Roskin  <address@hidden>
 
-Fri Jul  5 08:23:00 1996  Tom Tromey  <address@hidden>
+       * tests/Makefile.am (XFAIL_TESTS): Remove cond3.test, it passes
+       now.
 
-       * subdirs.am (maintainer-clean-recursive): Don't be so noisy.
-       Report from Josh MacDonald.
+2001-03-12  Akim Demaille  <address@hidden>
 
-       Bugs from Gord Matzigkeit:
-       * automake.in (handle_footer): Push contents of $(SUFFIXES), not
-       `$(SUFFIXES)'.
-       (handle_dist): Ignore chmod return results.
+       * automake.in (&variable_conditions_permutations): Separate the
+       conditions.
+       * tests/cond3.test: Improve the sed expression.
 
-       * programs-clean.am (address@hidden@PROGRAMS): Work around failing
-       Solaris "rm -f".  Bug from Kaveh R. Ghazi.
-       * libraries-clean.am (address@hidden@LIBRARIES): Likewise.
+2001-03-09  Pavel Roskin  <address@hidden>
 
-Fri Jun 21 10:42:06 1996  Tom Tromey  <address@hidden>
+       * Makefile.am (maintainer-check): Scan all *.am files and tests
+       for invocations of `rm' without `-f'.
+       * tests/mclean.test: Adjusted to prevent triggering the above
+       test.
 
-       * texinfos.am (install-info): Use "if", not "&&", to avoid
-       install problem when glob doesn't match.
+2001-03-09  Tom Tromey  <address@hidden>
 
-       * automake.in (initialize_global_constants): [USAGE] Added
-       --no-force.
-       (force_generation): New global.
-       (parse_arguments): Handle --no-force.
-       (generate_makefile): Handle --no-force.
+       * automake.in (scan_one_autoconf_file): Fixed comment to avoid
+       maintainer-check failure.
 
-       * Makefile.am (maintainer-check): Ensure all invocations of
-       mkinstalldirs are correct.
+2001-03-09  Akim Demaille  <address@hidden>
 
-Tue Jun 18 10:53:54 1996  Tom Tromey  <address@hidden>
+       * tests/cond3.test: Strengthen.
 
-       * automake.in (handle_tests): Don't directly generate site.exp.
+2001-03-09  Akim Demaille  <address@hidden>
 
-Sun Jun 16 22:21:16 1996  Harlan Stenn  <address@hidden>
-       
-       * automake.in:  Treat an initial `#' on a word in AUTOMAKE_OPTIONS
-       as a comment start.  Add support for a dist-tarZ target.
+       * automake.in (&conditional_string): Produce a unique string
+       characterizing a condition stack.
+       (&conditional_same): Remove, comparing two strings is now enough.
+       (&variable_defined): Adjust.
+       (&read_am_file): Use conditional_string.
 
-Tue Jun 11 22:14:21 1996  Marcus Daniels  <address@hidden>
+2001-03-08  Akim Demaille  <address@hidden>
 
-       * depend.am ($(srcdir)/.deps/%.P): Convert absolute $(top_srcdir)
-       paths into relative paths.
+       * automake.in: Use -w.
+       Normalize all use of `$lang . '-foo'' into `"$lang-foo"'.
+       (&parse_arguments): Support --Werror and --Wno-error as a
+       temporary hack until --warning/-W is properly implemented.
+       (&handle_single_transform_list): Prototype.
+       Be sure to define $directory.
+       Use `exists' instead of testing the value of a maybe undefined
+       hash value.
+       (&add_depend2, &handle_configure, &handle_footer, &file_contents)
+       (&handle_factored_dependencies): Use defined values.
+       (&scan_one_autoconf_file): Save $_.
+       * tests/lex2.test, tests/sinclude.test, tests/suffix3.test:
+       Run automake with --Wno-error.
 
-Mon Jun 10 21:11:20 1996  Tom Tromey  <address@hidden>
+2001-03-07  Akim Demaille  <address@hidden>
 
-       * texinfo.tex: New version.
+       * automake.in (&handle_all): Use an array instead of a scalar for
+       local_headers.
+       Get rid of all-redirect: let `all' be that target.
 
-       * automake.in: Look for AM_PROG_LIBTOOL.  From Gord Matzigkeit.
-       (initialize_global_constants): Added libtool to
-       @common_sometimes.
-       (handle_source_transform): Pass YFLAGS to yacc and LFLAGS to lex.
+2001-03-07  Akim Demaille  <address@hidden>
 
-Sun Jun  9 17:45:48 1996  Tom Tromey  <address@hidden>
+       * automake.in (&handle_merge_targets): Ventilate its non `all'
+       related content into...
+       (&generate_makefile): here.
+       (&handle_merge_targets): Rename as...
+       (&handle_all): this.
+       Remove a useless `if': address@hidden' is obviously not empty, since it
+       contains at least the `basename ($makefile)' which has just been
+       unshifted.
 
-       * texinfos.am (install-info): Don't install ~ files.  Bug report
-       from Greg McGary.
-       * automake.in (handle_texinfo): Don't push '.info*' onto
-       @infos_list.
+2001-03-07  Akim Demaille  <address@hidden>
 
-       * automake.in (handle_gettext): Ensure po and intl in SUBDIRS when
-       using gettext.
-       (handle_dist): Pass --with-included-gettext to configure if using
-       gettext.
+       * automake.in, aclocal.in: Backquote is inert in double quotes.
 
-       * compile-kr.am (._c._o): Pass -c to $(COMPILE).
-       (.c._o): Ditto.
-       * compile.am (.c.o): Pass -c to $(COMPILE).
-       * compile-vars.am (COMPILE): Don't include -c.
+2001-03-06  Akim Demaille  <address@hidden>
 
-       * remake.am ($(srcdir)/Makefile.in): Pass --strictness to
-       automake.
-       * automake.in (handle_configure): Supply --strictness arg to
-       automake.
+       * Makefile.am (maintainer-check): Simplify `grep -v ... | grep .'
+       into `grep -v ...'.
 
-Fri Jun  7 12:31:31 1996  Tom Tromey  <address@hidden>
+2001-03-06  Pavel Roskin  <address@hidden>
 
-       * automake.in (handle_tests): Fix quoting on `pwd`.
-       (handle_options): Recognize no-installinfo option.
-       (handle_man_pages): Don't put man directory on @installdirs if
-       no-installman is specified.
-       (handle_texinfo): Handle no-installinfo option.
-       (handle_options): Compare version against $num_version, not
-       $VERSION.
-       (handle_source_transform): Generate rules for output of lex,
-       yacc.  Bug report from Thomas Morgan.  Test yacc.test.
-       (handle_dist): "distcheck" now runs "make dvi".
-       (handle_tests): Support $(TESTS_ENVIRONMENT).  Idea from Ulrich
-       Drepper.
+       * java.am: Use `rm -f' instead of `rm'.
 
-       * dejagnu.am (check-DEJAGNU): Depend on site.exp.
+2001-03-06  Akim Demaille  <address@hidden>
 
-Sun Jun  2 10:33:10 1996  Tom Tromey  <address@hidden>
+       * automake.in (&push_dist_common): Simplify.
 
-       * automake.in (handle_emacs_lisp): New function.
-       (initialize_global_constants): Added elisp-comp to
-       @common_sometimes.
-       (seen_lispdir): New global.
-       (scan_configure): Handle ud_PATH_LISPDIR.
+2001-03-06  Jens Krüger <address@hidden>
 
-       * elisp-comp: New file.
+       * ltlib.am: Replaced spaces with tab.
 
-       * lisp.am: New file.
+2001-03-06  Pavel Roskin  <address@hidden>
 
-       * automake.in (generate_makefile): Run handle_emacs_lisp.
+       * tests/Makefile.am (XFAIL_TESTS): noinstdir.test removed, it's
+       fixed now.
 
-       * aclocal.m4 (ud_PATH_LISPDIR): New macro, from Ulrich Drepper.
+2001-03-05  Pavel Roskin  <address@hidden>
 
-       * automake.in (initialize_global_constants): Removed version.texi
-       from common_sometimes.
-       (initialize_global_constants): Added texinfo.tex to common_files.
-       Test texinfo.test.
-       (handle_tests): Allow dejagnu- and automake-style test suites to
-       coexist.  Test dejagnu.test.
-       (initialize_global_constants): New constants AC_CANONICAL_HOST,
-       AC_CANONICAL_SYSTEM.
-       (scan_configure): Use new constants.
-       (handle_tests): Put target specific information into site.exp if
-       AC_CANONICAL_* used.
-       (read_am_file): Generate some extra variables when AC_CANONICAL_*
-       used.
-       (handle_options): Allow version number to have letters appended.
-       (handle_tests): Error if RUNTEST, RUNTESTFLAGS defined but dejagnu
-       option not specd.
-       (initialize_global_constants): install_man_format changed to
-       handle built man pages.
+       * header.am, scripts.am: Use ?INSTALL? in the install and
+       uninstall rules.
 
-Wed May 29 10:35:01 1996  Tom Tromey  <address@hidden>
+2001-03-05  Pavel Roskin  <address@hidden>
 
-       * config.guess, config.sub: New versions.
+       * tests/copy.test: Never use `rm' without `-f' - it may ask
+       questions, notably for read-only files during `make distcheck'.
+       * tests/insh.test: Likewise.
+       * tests/installsh.test: Likewise.
+       * tests/symlink.test: Likewise.
+       * tests/symlink2.test: Likewise.
+       * tests/symlink3.test: Likewise.
 
-Tue May 28 19:27:11 1996  Tom Tromey  <address@hidden>
+2001-03-05  Pavel Roskin  <address@hidden>
 
-       * configure.in (VERSION): Upped to 1.0.
+       * noinstdir.test: New test.
+       * tests/Makefile.am (TESTS): Add noinstdir.test.
+       (XFAIL_TESTS): Likewise.
 
-Sat May 25 10:19:53 1996  Tom Tromey  <address@hidden>
+2001-03-05  Akim Demaille  <address@hidden>
 
-       * automake.in (handle_tests): Handle dejagnu.
-       (handle_options): Recognize dejagnu option.
+       * automake.in (&handle_options): Change the RE so that the third
+       part of the versions always exist.
+       (&file_contents): Don't pass uninitialized values to &transform.
 
-       * dejagnu.am: New file.
+2001-03-05  Akim Demaille  <address@hidden>
 
-Thu May 23 10:01:13 1996  Tom Tromey  <address@hidden>
+       * automake.in (&file_contents): Require a hash as second argument.
+       Adjust callers.
 
-       * automake.in (handle_dist): Run installcheck target from
-       distcheck.
+2001-03-05  Akim Demaille  <address@hidden>
 
-       * configure.in (VERSION): Upped to 0.34.
+       Always use hashes with &file_contents.
 
-       * automake.in (scan_configure): Always allow upgrading to
-       fp_PROG_INSTALL.  Test fpinstall.test.
+       * automake.in (&handle_texinfo): texibuild.am does not need
+       TEXINFODIR.
+       texinfos.am wants only TEXICLEANS.
+       (&handle_dist, &add_depend2, &handle_clean): Replace $xform with
+       %transform.
+       * texinfos.am: Adjust.
 
-Wed May 22 14:45:28 1996  Joshua Cowan  <address@hidden>
+2001-03-05  Akim Demaille  <address@hidden>
 
-       (handle_dist): Make `distcheck' check `install' target, too.
+       * automake.in (&handle_programs, &handle_libraries, &handle_tags)
+       (&handle_ltlibraries, &handle_emacs_lisp, &handle_python): Adjust.
+       (&am_install_var): Forget about `-clean'.
+       Transform ?INSTALL?.
+       Always output the *.am file.
+       * data-clean.am, java-clean.am, libs-clean.am, lisp-clean.am,
+       * ltlib-clean.am, progs-clean.am, python-clean.am, tags-clean.am:
+       Remove, merged into the corresponding *.am file.
+       * data.am, libs.am, ltlib.am, progs.am, python.am: Equip with
+       ?INSTALL?.
 
-Wed May 22 09:49:27 1996  Tom Tromey  <address@hidden>
+2001-03-05  Pavel Roskin  <address@hidden>
 
-       * automake.in (initialize_per_input): Don't initialize
-       $output_directory here; initialize it globally.  From Joshua
-       Cowan.  Test outdir.test.
+       * Makefile.am (amfiles): Add configure.am. Sort alphabetically.
 
-Sat May 18 10:57:40 1996  Tom Tromey  <address@hidden>
+2001-03-05  Akim Demaille  <address@hidden>
 
-       * automake.in (handle_tests): Don't push TESTS onto dist_common.
-       (initialize_global_constants): Put install-sh and mkinstalldirs
-       into @common_files.  Test insh2.test.
+       If OBJEXT and EXEEXT are not set, provide a default value, and use
+       them unconditionally.
 
-Fri May 17 09:02:02 1996  Tom Tromey  <address@hidden>
+       * automake.in (&generate_makefile): Provide default values for
+       EXEEXT and OBJEXT.
+       (&get_object_extension, &finish_languages)
+       (&handle_single_transform_list, &handle_programs, &add_depend2)
+       (&check_cygnus, &lang_c_finish, am_install_var): Don't bother with
+       them, they are defined.
+       * compile.am, depend2.am, program.am, progs.am: Likewise.
+       * remake-hdr.am: Fix a typo.
+       * tests/cxxo.test, tests/fo.test, tests/implicit.test,
+       * tests/interp.test, tests/subobj.test, tests/subobj2.test,
+       * tests/suffix2.test: Adjust.
 
-       * automake.in (handle_source_transform): Don't generate _OBJECTS
-       when no source files specified.  Test number.test.
+2001-03-05  Akim Demaille  <address@hidden>
 
-       From Joerg-Martin Schwarz:
-       * automake.in (seen_package, seen_version): New globals.
-       (scan_configure): Look for PACKAGE= and VERSION=.
+       * automake.in (&file_contents): Map MAINTAINER-MODE to
+       @MAINTAINER_MODE_TRUE@ or nothing.
+       * configure.am, remake-hdr.am, remake.am, texi-vers.am: Adjust.
+       Suggested by Tom.
 
-       * automake.in (handle_options): Recognize dist-zip.
-       (handle_dist): Handle dist-zip.
-       (handle_options): Use ' ', not \s+, with split.  Test
-       backsl.test.
-       (handle_source_transform): Likewise.
-       (handle_lib_objects): Likewise.
-       (handle_libraries): Likewise.
-       (handle_texinfo): Likewise.
-       (handle_man_pages): Likewise.
-       (handle_subdirs): Likewise.
-       (handle_gettext): Likewise.
-       (handle_footer): Likewise.
-       (handle_tests): Likewise.
-       (scan_configure): Likewise.
-       (am_install_var): Likewise.
+2001-03-05  Akim Demaille  <address@hidden>
 
-       * Makefile.am (TAGS_DEPENDENCIES): New macro.
+       * automake.in (&do_one_merge_target): Remove, was only called from...
+       (&handle_merge_targets): here for `all'.
+       Adjust.
 
-       * tags.am (tags-recursive): New target.
-       (TAGS): Depend on it.
+2001-03-05  Akim Demaille  <address@hidden>
 
-       * automake.in (handle_tags): Put tags-recursive on @phony.
+       Make the installation/uninstallation of Info pages follow the
+       regular am/recursive scheme.
 
-       * tags-subd.am (TAGS): Depend on HEADERS, SOURCES,
-       TAGS_DEPENDENCIES.
-       * tags.am (TAGS): Depend on HEADERS, SOURCES, TAGS_DEPENDENCIES.
-
-Thu May 16 09:21:48 1996  Tom Tromey  <address@hidden>
-
-       * remake.am (configure): Depend on $(CONFIGURE_DEPENDENCIES).
-
-       * automake.in (scan_configure): Look for install-sh and
-       mkinstalldirs here.
-       (initialize_global_constants): Moved mdate-sh from
-       common_sometimes to common_files.  Test mdate2.test.
-
-Tue May 14 21:52:01 1996  Tom Tromey  <address@hidden>
-
-       * automake.in (seen_maint_mode): New global.
-       (scan_configure): Handle jm_MAINTAINER_MODE.
-       (read_am_file): Handle seen_maint_mode.
-       (file_contents_with_transform): Handle seen_maint_mode.
-       (handle_source_transform): Changed interface, all callers.
-
-       From Jim Meyering:
-       * remake-hdr.am, remake-subd.am, remake.am, texi-version.am:
-       Handle @address@hidden
-       * aclocal.m4 (jm_MAINTAINER_MODE): New macro.
-
-       * automake.in (handle_configure): Check $config_aux_dir against
-       empty string.  From Markku Rossi.  Test mkinstall.test.
-
-Fri May 10 14:38:47 1996  Gord Matzigkeit  <address@hidden>
-
-       * automake.in (distcheck): Added new rule to top level
-       Makefile.in.
-
-Wed May  8 21:57:21 1996  Gord Matzigkeit  <address@hidden>
-
-       * automake.in (scan_configure): Make sure that gm_PROG_LIBTOOL
-       sets seen_ranlib.
-       (generate_makefile): libtool, config.sub, and config.guess should
-       only ever appear in the top directory of a package.
-
-Tue May 14 10:24:30 1996  Tom Tromey  <address@hidden>
-
-       * automake.in (initialize_global_constants): Added libversion.in
-       to @common_files.
-
-       * configure.in (VERSION): Upped to 0.33.
-
-       * automake.in (am_install_var): Fixed problem in EXTRA_ handling.
-       Test extra.test.
-
-Mon May 13 10:41:41 1996  Tom Tromey  <address@hidden>
-
-       * install-sh (transformbasename): Correct misspelling of
-       transformbasename.  From Ian Lance Taylor.
-
-Sat Apr 27 11:39:10 1996  Tom Tromey  <address@hidden>
-
-       * automake.in (handle_configure): Set mkinstalldirs variable
-       here.
-       (handle_dist_worker): Explicitly set distdir in subdir makes.
-       (handle_dist): Handle separate distdir target.
-       (handle_dist_worker): Only generate distdir target.
-
-       * texinfos.am (install-info): Use $(mkinstalldirs).
-       * scripts.am (address@hidden@SCRIPTS): Use $(mkinstalldirs).
-       * programs.am (address@hidden@PROGRAMS): Use $(mkinstalldirs).
-       * libraries.am (address@hidden@LIBRARIES): Use $(mkinstalldirs).
-       * header.am (address@hidden@HEADERS): Use $(mkinstalldirs).
-       * data.am (address@hidden@DATA): Use $(mkinstalldirs).
-
-       * automake.in (read_am_file): Set mkinstalldirs variable.
-       (handle_man_pages): Use it.
-       (handle_installdirs): Ditto.
-
-Fri Apr 26 15:10:48 1996  Tom Tromey  <address@hidden>
-
-       * automake.in (handle_man_pages): Fix mkinstalldirs invocation.
-
-Thu Apr 25 18:40:06 1996  Tom Tromey  <address@hidden>
-
-       * automake.in (handle_dist_worker): Use $(TAR), not tar.
-       (handle_merge_targets): Make sure config header is built before
-       recursing into subdirs.
-       (handle_libraries): Generate LIBFILES for check_LIBRARIES.
-       (handle_merge_targets): Handle case where nothing is installed but
-       something must be built -- "make install" must still work.
-
-       * dist-vars.am (TAR): New macro.
-
-       * automake.in (scan_configure): Support AC_REPLACE_GNU_GETOPT.
-       (handle_configure): Require stamp-h.in when config header used.
-
-Tue Apr 23 17:57:13 1996  Andreas Schwab  <address@hidden>
-
-       * doc/mdate-sh: Extract the last field from the date output, not
-       the sixth, which will fail when the timezone name has more than
-       one word or is missing.
-
-Wed Apr 24 20:29:26 1996  Tom Tromey  <address@hidden>
-
-       * automake.in (am_install_var): Use delete, not undef, to remove
-       EXTRA entry.  From Gord Matzigkeit.
-
-Mon Apr 22 17:48:50 1996  Tom Tromey  <address@hidden>
-
-       * automake.in (read_am_file): Handle case where last line doesn't
-       end in newline.
-
-Tue Apr  9 22:53:16 1996  Tom Tromey  <address@hidden>
-
-       * automake.in (variable_defined): New function.
-       (read_am_file): Ensure a blank line comes before starting comments
-       from Makefile.am.
-       (initialize_per_input): Initialize %targets.
-       (read_am_file): Set appropriate entry in %targets.
-       Many changes to use variable_defined.
-       (check_gnu_standards): Only require ChangeLog at top level.  From
-       Gord Matzigkeit.
-       (handle_tests): check-TESTS depends on $(TESTS).  From Gord
-       Matzigkeit.
-
-Mon Apr  8 22:51:41 1996  Tom Tromey  <address@hidden>
-
-       * automake.in (parse_arguments): Added short options.
-       (initialize_global_constants): Ditto.
-
-Fri Apr  5 00:22:14 1996  Tom Tromey  <address@hidden>
-
-       * mkinstalldirs (errstatus): Don't necessarily die if mkdir
-       fails.
-
-       * automake.in (handle_source_transform): Typo fix.
-
-Thu Apr  4 15:10:50 1996  Tom Tromey  <address@hidden>
-
-       * automake.in (handle_dist_worker): Renamed dist-local to
-       dist-hook.
-       (handle_merge_targets): Added install-data-hook and
-       install-exec-hook.
-       (handle_source_transform): Handle EXTRA_prog_SOURCES form.
-
-       * automake.in (handle_scripts): Never allow scripts_installed to
-       become 0.
-
-       * scripts.am (address@hidden@SCRIPTS): Scripts can be found in
-       srcdir.
+       * automake.in (%required_targets, %dependencies): Add
+       install-info.
+       (%dependencies): Add install-info, install-info-am, and
+       unstall-info.
+       (&handle_subdirs): Don't transform INSTALLINFO, which mapping was
+       reversed BTW.  Does anybody use the option `no-installinfo'?
+       (&handle_merge_targets): Let the handling of info related targets
+       to...
+       (&handle_factored_dependencies): this.
+       * subdirs.am: Use ?INSTALL-INFO?.
+       * texinfos.am: Define the install-info, uninstall-info and
+       uninstall-info-am targets.
 
-       * automake.in (generate_makefile): Derived file names from given
-       input; don't assume Makefile.in and Makefile.am.
-       (am_file_name, in_file_name): New globals.
-       (read_am_file): Use them.
+2001-03-05  Akim Demaille  <address@hidden>
 
-       * program.am (@PROGRAM@): Use transformed program name.
+       * automake.in (%required_targets, %dependencies): Add dvi, info,
+       dvi-am, info-am.
+       (@info, @dvi): Remove.
+       (&handle_texinfo, &handle_merge_targets): Adjust.
+       (&handle_factored_dependencies): Required targets are phony.
+       * texinfos.am: Build info, dvi, and the corresponding -am or
+       -recursive targets.
 
-       * remake-hdr.am (stamp-h): Actually touch stamp-h.
+2001-03-05  Akim Demaille  <address@hidden>
 
-Wed Apr  3 15:16:06 1996  Tom Tromey  <address@hidden>
+       * automake.in (&am_install_var): Remove $cygxform, unused.
 
-       * automake.in (require_file_internal): Use correct file for error
-       messages.  Test insh.test.
+2001-03-05  Akim Demaille  <address@hidden>
 
-Mon Apr  1 09:47:44 1996  Tom Tromey  <address@hidden>
+       * automake.in (&file_contents): Transform LIBTOOL.
+       (&am_install_var): Remove $ltxform.
+       * ltlib.am, progs.am: Adjust.
 
-       * texinfos.am (.texi.info): Build output file in srcdir.
+2001-03-05  Akim Demaille  <address@hidden>
 
-       * automake.in (require_file_internal): If $dir is ".",then look in
-       relative directory.
-       (handle_texinfo): Canonicalize name of texi file before looking
-       for dependency variable.
+       * automake.in: Require AC_PROG_INSTALL in...
+       (&scan_autoconf_files): here.
 
-Thu Mar 28 08:33:21 1996  Tom Tromey  <address@hidden>
+2001-03-05  Akim Demaille  <address@hidden>
 
-       * automake.in (require_conf_file_with_conf_line): Yet another
-       function of this form.
-       (libtool_line): New variable.
-       (handle_libraries): Handle libtool.
+       * configure.am: New file.
+       * automake.in (&file_contents): Transform CONFIGURE-AC.
+       (&handle_texinfo, &handle_configure): Don't transform
+       CONFIGURE_AM.
+       (&handle_configure): Use `configure.am'.
+       * remake-hdr.am, remake.am, texi-vers.am: Adjust to
+       MAINTAINER-MODE and CONFIGURE-AC.
 
-       * libraries-vars.am: Removed.
+2001-03-05  Akim Demaille  <address@hidden>
 
-       * automake.in (seen_libtool): New variable.
-       (scan_configure): Look for gm_PROG_LIBTOOL or AC_PROG_LIBTOOL.
+       * automake.in (&pretty_print_internal): Don't output useless
+       spaces.
+       (define_pretty_variable): Don't issue the space after the `=' sign
+       to avoid trailing spaces in Makefile.ins.
 
-       * automake.in (handle_dist_worker): Handle dist-local.
+2001-03-05  Akim Demaille  <address@hidden>
 
-       * Makefile.am (maintainer-check): Do "make check" after all syntax
-       checks.
+       * automake.in (&generate_makefile): Invoke &initialize_per_input
+       *before* setting $am_file_name and $in_file_name.
 
-       * texi-version.am (address@hidden@): Look for mdate-sh in appropriate
-       directory.
+2001-03-05  Akim Demaille  <address@hidden>
 
-       * automake.in ($seen_arg_prog): New global.
-       (handle_programs): Error if AC_ARG_PROGRAM not seen.
-       (handle_scripts): Ditto.
-       (handle_configure): mkinstalldirs now a config file.
-       (handle_installdirs): Find mkinstalldirs in config_aux_dir.
-       (handle_dist_worker): Removed DIST_SUBDIRS.
-       (require_file_path): New variable.
-       (require_file_with_conf_line): Set it.
-       (require_file_with_line): Ditto.
-       (require_file): Ditto.
-       (require_file_internal): Incorporated code from
-       require_config_file.
-       (require_config_file): Rewrote.
-       (require_conf_file_with_line): New function.
-       (handle_texinfo): Use it for mdate-sh.
-       (handle_texinfo): Look for mdate-sh in appropriate directory.
+       * automake.in ($in_file_name, $am_file_name, $relative_dirs):
+       Globals, initialized...
+       (&initialize_per_input): here.
 
-Tue Mar 26 13:47:54 1996  Tom Tromey  <address@hidden>
+2001-03-05  Akim Demaille  <address@hidden>
 
-       * Makefile.am (cvs-dist): Find NEWS in srcdir.
-       * automake.in (handle_dist_worker): Find NEWS in srcdir.
-       ($RULE_PATTERN): Include chars "$(){}/" in allowable patterns in a
-       rule.
-       (require_config_file): Set config_aux_path when file found.
-       ($config_aux_dir): New variable.
-       (require_config_file): Set it.
-       (handle_man_pages): Find mkinstalldirs in config_aux_dir.
+       * automake.in ($am_relative_dir): Global.
+       (&initialize_per_input): Init it.
+       (%make_list, @make_input_list): My them from
+       (&scan_autoconf_files): here.
+       (&require_file_internal): Mying changes.
 
-Mon Mar 25 15:32:57 1996  Tom Tromey  <address@hidden>
+2001-03-05  Akim Demaille  <address@hidden>
 
-       * data.am (address@hidden@DATA): Also allow data to be in build
-       directory.
+       * automake.in (%am_vars, @var_list, %def_type): Globals.
+       (&initialize_per_input): Initialize them.
+       (&read_main_am_file): Don't local them.
+       (&get_object_extension): $objext is private.
+       (&handle_single_transform_list): $lang is.
+       (&handle_ltlibraries): $libname_rx is.
+       (&scan_autoconf_config_files): How about actually paying attention
+       to your arguments, instead of working on $_? (this is no Perl
+       variable, it's a Perl variable followed by a question mark).
+       (&file_contents): $contents and $separator are private.
+       (&am_install_var): Declare @condvals, not $condvals.
+       (%make_dirs): My.
 
-Sun Mar 24 19:56:28 1996  Tom Tromey  <address@hidden>
+2001-03-05  Akim Demaille  <address@hidden>
 
-       * automake.in (am_install_var): Don't look in EXTRA_primary
-       variable any more; it is handled in the main loop.
+       * automake.in (&initialize_per_input): Move to the top.
+       Precede with the `my' list of its variables.
 
-Wed Mar 20 16:22:35 1996  Tom Tromey  <address@hidden>
+2001-03-05  Akim Demaille  <address@hidden>
 
-       * data.am (address@hidden@DATA): Find data in srcdir.
+       * automake.in ($am_file): Use vars.
+       ($am_file_name, $in_file_name): Private to &generate_makefile.
 
-Fri Mar 15 18:30:31 1996  Tom Tromey  <address@hidden>
+2001-03-05  Akim Demaille  <address@hidden>
 
-       * automake.in (require_config_file): Use correct filename when
-       looking for errors.  Also, install file in `.' if not found.  Bug
-       reported by Gord Matzigkeit.  Test installsh.test.
+       * automake.in: Preparation for `use strict': Move the
+       initialization of the constants to the top, from...
+       (&initialize_global_constants): here.
 
-Thu Mar 14 09:28:21 1996  Tom Tromey  <address@hidden>
+2001-03-05  Akim Demaille  <address@hidden>
 
-       * Makefile.am (cvs-diff): New target.
+       * automake.in (&handle_single_transform_list, &add_depend2): Let
+       $lang_specific_files{$lang} be a list instead of a string.
 
-       Fix for bug when install var substitutes empty.  Test empty.test.
-       * header.am (address@hidden@HEADERS): Allow empty list of headers.
-       (address@hidden@HEADERS): Ditto.
-       * scripts.am (address@hidden@SCRIPTS): Allow empty list of scripts.
-       (address@hidden@SCRIPTS): Ditto.
-       * libraries.am (address@hidden@LIBRARIES): Allow empty list of
-       libraries.
-       (address@hidden@LIBRARIES): Ditto.
-       * data.am (address@hidden@DATA): Allow empty list of data.
-       (address@hidden@DATA): Ditto.
-       * programs.am (address@hidden@PROGRAMS): Added missing semicolon.
-       From François Pinard.
-       (address@hidden@PROGRAMS): Fixed bug when list of programs empty.
-       (address@hidden@PROGRAMS): Ditto.
-
-Wed Mar 13 19:50:23 1996  Tom Tromey  <address@hidden>
-
-       * tags-subd.am (ID): Name of ID file must be flush against -f.
-
-       * configure.in (VERSION): Version 0.32.
-
-Mon Mar 11 17:50:58 1996  Tom Tromey  <address@hidden>
-
-       * automake.in (seen_linguas, all_linguas_line): New variables.
-       (handle_gettext): New function.
-       (generate_makefile): Run it.
-       (scan_configure): Recognize ALL_LINGUAS.
-
-Mon Mar 11 14:34:36 1996  Gord Matzigkeit  <address@hidden>
-
-       * automake.texi: doc fix.
-
-       * automake.in (am_install_var): Added support for check and
-       installcheck special prefixes.
-
-Sun Mar 10 10:44:42 1996  Tom Tromey  <address@hidden>
-
-       * automake.in (handle_subdirs): Don't do SUBDIRS check for
-       gettext.
-
-Tue Mar  5 18:12:04 1996  Tom Tromey  <address@hidden>
-
-       * automake.in (OBJECT_PATTERN): Removed.
-       (am_install_var): No error if name is invalid.
-       (handle_programs): Canonicalize program names.
-       (BOGUS_MACRO_PATTERN): New variable.
-       (read_am_file): Error if bad macro name given.
-       (require_file_internal): Use am_line_error, not am_conf_error.
-
-       * program.am (@PROGRAM@): Recognize @address@hidden
-
-Mon Mar  4 19:30:24 1996  Tom Tromey  <address@hidden>
-
-       * automake.in (handle_lib_objects): New function.
-       (handle_libraries): Use it.
-       (handle_programs): Ditto.
-       (handle_dist_worker): Deprecate DIST_SUBDIRS.
-       (am_install_var): Allow extended directory mechanism to work.
-       Test exdir.test.
-
-       * dist-vars.am (DISTFILES): Use EXTRA_DIST.
-       (DEP_DISTFILES): Ditto.
-
-       * automake.in (OBJECT_PATTERN): New variable.
-       (am_install_var): Use it.
-       (handle_dist): DIST_OTHER is an anachronism.
-
-Sat Mar  2 17:04:38 1996  Tom Tromey  <address@hidden>
-
-       * automake.in (handle_dist_worker): Only cause Automake to be
-       re-run if not making a distribution.  Fixes bug reported by
-       Joerg-Martin Schwarz.
-       (require_file_with_line): New function.
-       (require_file): Use it.
-       (am_line_error): Don't print line number if $symbol is empty.
-       (get_object_extension): Use require_file_with_line.
-       (handle_libraries): Use require_file_with_line.
-       (handle_texinfo): Use require_file_with_line.
-       (handle_configure): Use am_conf_line_error and
-       require_file_with_conf_line.
-       (handle_subdirs): Use require_file_with_conf_line.
-       (handle_configure): Use require_file_with_conf_line.
-       (handle_tests): Push check-TESTS on @phony.
-       (am_conf_line_error): New function.
-       (require_file_with_conf_line): New function.
-       (require_file_internal): New function.
-       (require_file_with_line): Use it.
-       (require_file): Ditto.
-       (am_conf_line_error): Handle empty line number.
-       (ac_gettext_line, ac_output_line): New variables.
-       (scan_configure): Set them.
-
-Fri Mar  1 00:13:04 1996  Tom Tromey  <address@hidden>
-
-       * automake.in (parse_arguments): Default strictness is gnu.
-       Changed `normal' to `foreign' everywhere.
-       (parse_arguments): Handle --foreign.
-       (initialize_global_constants): Document --foreign.
-       (handle_dependencies): Better error message.
-       (handle_texinfo): Don't push $vtexi on @texis.
-       (handle_texinfo): Only push $vtexi on @texi_deps if not null.
-       (handle_configure): install-sh is a config file; require it as
-       such.
-       (parse_arguments): Renamed --install-missing to --add-missing.
-       (add_missing): Renamed from install_missing.
-       (am_install_var): Check to make sure contents of install variable
-       are correct if primary requires it.  Test badprog.test.
-       (initialize_global_constants): Initialize
-       %primary_uses_subobjects.
-       (handle_source_transform): Skip configure substitutions.  Test
-       depend.test.  Also, skip empty elements.
-
-Thu Feb 29 22:00:30 1996  Tom Tromey  <address@hidden>
-
-       * texinfo.tex: New version.
-
-       * automake.in (am_install_var): Allow extended range of
-       installation directories.
-
-       * automake.in (get_object_extension): Don't allow
-       @CONFIG_INCLUDE_SPEC@ in the Makefile.in when config.h not used.
-       From Gord Matzigkeit.  Test confincl.test.
-
-       * texinfos.am (install-info): Changed usage of install-info (in
-       comment).  Per Feb 25 GNU Standards document.
-
-Wed Feb 28 07:40:55 1996  Tom Tromey  <address@hidden>
-
-       * automake.in (handle_tests): New function.
-       (generate_makefile): Call it.
-       (handle_subdirs): Skip directories whose names look like configure
-       substitutions.
-       (handle_subdirs): Require intl and po, not @INTLSUB@ and @POSUB@,
-       when using gettext.
-       (scan_configure): Clear in_ac_output if "]" found.  Test
-       acoutqnl.test.
-       (require_config_file): New function.
-       (generate_makefile): Use require_config_file.
-       (config_aux_path): New variable.
-       (scan_configure): Check for AC_CONFIG_AUX_DIR.
-       (handle_merge_targets): Add install-strip rule.
+2001-03-05  Akim Demaille  <address@hidden>
 
-Tue Feb 27 20:00:36 1996  Tom Tromey  <address@hidden>
+       Let's make it run ten times faster...
 
-       * mdate-sh: New version from Ulrich Drepper.
+       * automake.in (&transform): Be sure to remove the `\n' with ?FOO?
+       transformations.
+       (&file_contents): Let `$command' remove the Automake commands, and
+       normalize the series of `\n'.
+       Slurp the file and apply $command in a single step.
+       No longer apply the address@hidden@' transformation which
+       is already normalized to be handled by &transform.
 
-       * automake.in (handle_source_transform): Changed fill back to
-       empty string.
-       (handle_libraries): Ditto.
-       (handle_dist): Ditto.
-       (handle_dependencies): Ditto.
-       (handle_footer): Ditto.
-       (handle_phony): Ditto.
+2001-03-05  Tom Tromey  <address@hidden>
 
-       * Makefile.am (DIST_SUBDIRS): Removed.
-       (installcheck-local): Use Perl, not test -x.
-       (PERL): New macro.
-       (maintainer-check): Use $(PERL), not @address@hidden
+       * automake.in (register_language): Add entry for `-pure'.
+       Added `pure=yes' entries for cxx, objc, f77, ppf77, ratfor, java.
+       (finish_languages): Use `-pure' field of language map.
 
-       * configure.in (VERSION): Upped to 0.31.
+2001-03-03  Tom Tromey  <address@hidden>
 
-Sat Feb 24 18:02:19 1996  Tom Tromey  <address@hidden>
+       * tests/yaccvpath.test: No need to remove dummy files.
+       * tests/subobj3.test: No need to remove dummy files.
+       * tests/pr9.test: No need to remove dummy files.
+       * tests/pr87.test: No need to remove dummy files.
+       * tests/pr19.test: No need to remove dummy files.
+       * tests/install2.test: No need to remove dummy files.
+       * tests/defs: Actually copy in install-sh, mkinstalldirs, missing,
+       and depcomp.
 
-       * automake.in (scan_configure): AC_CHECK_TOOL requires config.sub
-       and config.guess.
+2001-02-27  Pavel Roskin  <address@hidden>
 
-       * automake.in: Use keyed_aclocal_warning when warning about
-       fp_PROG_INSTALL.
-       (get_object_extension): Use keyed_aclocal_warning when warning
-       about fp_C_PROTOTYPES.
-       (keyed_aclocal_warning): New function.
+       * tests/yaccvpath.test: Add a delay to make parse.c really out
+       of date. Detect the problem earlier, after `make distdir'. Drop
+       dependency on flex. Always use the `-y' flag for bison. Comment
+       changes.
+       * tests/Makefile.am: Add yaccvpath.test to XFAIL_TESTS.
 
-       * Makefile.am (pkgdata_DATA): Install aclocal.m4.
-       * aclocal.m4: Include fp_C_PROTOTYPES, fp_PROG_CC_STDC.
+2001-03-02  Jens Krüger <address@hidden>
 
-       * automake.in (get_object_extension): Only give error about
-       fp_C_PROTOTYPES once.
+       * depend2.am (?!GENERIC??LIBTOOL?%LTOBJ%): Add `%' to fix typo.
 
-       * automake.in (seen_ranlib): New variable.
-       (scan_configure): Recognized AC_PROG_RANLIB.
-       (handle_libraries): Error if ranlib not checked for.
+2001-02-28  Akim Demaille  <address@hidden>
 
-       * automake.in (default_strictness): Default to GNU.
-       (default_strictness_name): Ditto.
+       * automake.in (&add_depend2): Transform `GENERIC'.
+       Get rid of the ad hoc transformation of address@hidden@.o:' which in
+       addition was broken by the `@ -> %' patch.
+       * depend2.am: Adjust to use ?GENERIC?.
 
-Wed Feb 21 18:15:02 1996  Tom Tromey  <address@hidden>
+2001-02-28  Akim Demaille  <address@hidden>
 
-       * automake.in (read_am_file): Removed @kr@ support.
-       (get_object_extension): Ditto.
+       * Makefile.am (maintainer-check): `undef $/' is OK.
 
-       * Makefile.am (pkgdata_DATA): Include ansi2knr.c and ansi2knr.1.
+2001-02-28  Akim Demaille  <address@hidden>
 
-Tue Feb 20 17:25:18 1996  Tom Tromey  <address@hidden>
+       * automake.in (&handle_configure): Fortunately, $top_reldir,
+       the definition of which was highly suspicious, was unused.
 
-       * depend.am ($(srcdir)/.deps/%.P): Regexp fix.
+2001-02-27  Akim Demaille  <address@hidden>
 
-Mon Feb 19 19:53:09 1996  Tom Tromey  <address@hidden>
+       * automake.in (%exec_dir_p): Move to the top so that it is visible
+       to all routines.
 
-       * remake.am ($(srcdir)/Makefile.in): Depend on configure.in.
-       * remake-subd.am ($(srcdir)/Makefile.in): Depend on configure.in.
+2001-02-27  Pavel Roskin  <address@hidden>
 
-       * automake.in (handle_scripts): Ensure $scripts_installed set to
-       boolean value.  Test proginst.test.
+       * tests/yaccvpath.test: Prevent automake from looking into ..
+       and ../.. by using AC_CONFIG_AUX_DIR in configure.in.
 
-       * Makefile.am (installcheck-local): New target.
+2001-02-27  Akim Demaille  <address@hidden>
 
-       * automake.in (require_file): No error if missing file is
-       installed.
+       * automake.in (%exec_dir_p): Pulled out from...
+       (&am_primary_prefixes): here.
 
-Sun Feb 18 17:10:00 1996  Tom Tromey  <address@hidden>
+2001-02-27  Akim Demaille  <address@hidden>
 
-       * automake.in (handle_scripts): SCRIPTS no longer automatically
-       cleaned.  Now possible to install scripts in pkgdatadir.
-       ($seen_canonical): New variable.
-       (generate_makefile): Check for config.guess and config.sub here;
-       fixes bug reported by Gord Matzigkeit.
+       * automake.in (&usage): Display $0, not $me.
 
-       * Makefile.am (pkgdata_SCRIPTS): New variable.
-       (CLEANFILES): New macro.
+2001-02-27  Akim Demaille  <address@hidden>
 
-       * scripts-clean.am: Removed.
+       * mans.am: s/INSTALL_MAN/INSTALL-MAN/.
+       * automake.in (&handle_clean): Don't escape what's given to
+       &transform.
 
-Sat Feb 17 00:15:20 1996  Tom Tromey  <address@hidden>
+2001-02-27  Akim Demaille  <address@hidden>
 
-       * automake.in (am_install_var): Error if primary variable actually
-       defined.
-       (am_install_var): Skip elements that look like configure
+       Distinguish automake substitutions from config.status
        substitutions.
-       (am_install_var): "EXTRA" is a valid prefix.
-       (am_install_var): Push contents EXTRA_PRIMARY onto @result.
-       (handle_merge_targets): Treat "all" target like "install".
-       (handle_subdirs): Don't push all-recursive.
-
-       * header.am (address@hidden@HEADERS): Don't depend on all.
-       * data.am (address@hidden@DATA): Don't depend on all.
-       * libraries.am (address@hidden@LIBRARIES): Don't depend on all.
-       * programs.am (address@hidden@PROGRAMS): Don't depend on all.
-       * scripts.am (address@hidden@SCRIPTS): Don't depend on all.
-
-       * automake.in (am_install_var): Push generated install targets
-       onto @phony.
-
-       * subdirs.am: No longer depend on Makefile and $(CONFIG_HEADER).
-       * automake.in (handle_merge_targets): Correctly handle recursive
-       calls of uninstall, install-exec, and install-data.
-       (handle_merge_targets): Put Makefile, and possibly $config_name,
-       onto @all.
-       (handle_merge_targets): Push 'all' onto @install as appropriate.
-
-Fri Feb 16 18:27:04 1996  Tom Tromey  <address@hidden>
-
-       * automake.in (handle_configure): config.status is in
-       $(top_builddir), not $(top_srcdir).  Reported by Anthony Green.
-
-       * automake.in (scan_configure): Recognize (AC|fp)_FUNC_FNMATCH.
-
-Thu Feb 15 19:12:45 1996  Tom Tromey  <address@hidden>
-
-       * automake.in: (seen_prog_yacc): New variable.
-       (scan_configure): Look for yacc.
-       (handle_source_transform): Skipp C++ header files.
-       (handle_source_transform): .cxx is a C++ source file.
-
-Wed Feb 14 08:36:02 1996  Tom Tromey  <address@hidden>
-
-       * depend.am ($(srcdir)/.deps/.P): Use "echo", not ":".
-
-       Implemented --verbose feature; idea from Greg Woods:
-       * automake.in (verbose): New global.
-       (generate_makefile): Print creating message if verbose.
-       (grep_for_vers_texi): Print message if verbose.
-       (handle_dependencies): Ditto.
-       (scan_configure): Ditto.
-       (read_am_file): Ditto.
-       (parse_arguments): Added --verbose.
-       (initialize_global_constants): Ditto.
-
-       * automake.in (get_object_extension): Use am_line_error.
-       (handle_source_transform): Ditto.
-       (handle_libraries): Ditto.
-       (handle_texinfo): Ditto.
-       (handle_man_pages): Ditto.
-       (handle_dist): Ditto.
-       (handle_dist): Ditto.
-       (handle_subdirs): Ditto.
-       (handle_configure): Ditto.
-       (handle_merge_targets): Ditto.
-       (am_install_var): Ditto.
-       (am_line_error): Allow actual line number as argument.
-       (handle_configure): Use am_line_error.
-       (scan_configure): Set config_header_line.
-       (config_header_line): New global.
-       Use @PERL@ to find perl during exec.  From Greg Woods.
-
-Tue Feb 13 22:06:51 1996  Tom Tromey  <address@hidden>
-
-       * automake.in (initialize_per_input): Init %content_lines.
-       (read_am_file): Set appropriate content_lines elements while
-       reading.
-       (am_line_error): New function.
-       (read_am_file): Use it.
-       (handle_options): Ditto.
-
-       * automake.in (scan_configure): Handle case where more than one .o
-       is put into LIBOBJS at once.  Test libobj.test.
-
-Mon Feb 12 20:39:28 1996  Tom Tromey  <address@hidden>
-
-       * automake.in (scan_configure): Ignore "\" in AC_OUTPUT line.
-       Test acouttbs.test.
-       (handle_subdirs): Restored intl, po warnings.
-
-       * automake.in (scan_configure): Delete everything after "," or
-       ")".  Test acoutnoq.test.
-       (handle_dist): Use $relative_dir, not nonexistent $subdir.
-       (handle_subdirs): 'po' and 'intl' are sometimes substituted into
-       SUBDIRS; don't warn about their absence.
-
-Sun Feb 11 16:55:15 1996  Tom Tromey  <address@hidden>
-
-       * automake.in (handle_texinfo): Removed bogus error message.
-
-       * automake.in (handle_texinfo): Push $(INFO_DEPS), not 'info',
-       onto @all.
-       (handle_options): Handle version number.
-
-       * automake.in ($maint_charset, $dist_charset): New variables.
-       (initialize_per_input): Init $local_maint_charset.
-       (handle_dist): Handle DIST_CHARSET and MAINT_CHARSET.
-       (generate_makefile): Don't print "creating...".
-
-Sat Feb 10 16:45:07 1996  Tom Tromey  <address@hidden>
-
-       * automake.in (get_object_extension): Substitute
-       @CONFIG_INCLUDE_SPEC@ if CONFIG_HEADER defined.
-       (handle_source_transform): Use $1, not \1.
-       (pretty_print_internal): Handle Tabs in fill when computing indent
-       on new line.
-       (handle_merge_targets): Always generate install-exec and
-       install-data targets.  Test instexec.test.
-       Fixed error message if fp_PROG_INSTALL missing.
-
-       * compile-vars.am (DEFS): Include -I., -I$(srcdir), and
-       @address@hidden
-
-       * automake.in (scan_configure): Delete everything after "]".  Test
-       acoutput.test.
-
-       * configure.in (AC_OUTPUT): Create tests/Makefile.
-       * Makefile.am (SUBDIRS): New macro.
-
-       * automake.in (handle_texinfo): Put $vtexi on texi_deps.  From Jim
-       Meyering.
-
-       * configure.in (AC_OUTPUT): Ensure automake is executable.
-
-Thu Feb  8 17:30:29 1996  Tom Tromey  <address@hidden>
-
-       * automake.in (handle_subdirs): Error if directory in SUBDIRS does
-       not exist.
-
-       * automake.in (handle_configure): Handle AC_OUTPUT ":" syntax.
-
-       From Jim Meyering:
-       * libraries.am (address@hidden@LIBRARIES): Depend on all, not
-       (@address@hidden).
-       * header.am (address@hidden@HEADERS): Depend on all, not
-       $(@address@hidden).
-       * data.am (address@hidden@DATA): Depend on all, not $(@address@hidden).
-       * scripts.am (address@hidden@SCRIPTS): Depend on all, not
-       $(@address@hidden).
-       * programs.am (address@hidden@PROGRAMS): Depend on all, not
-       $(@address@hidden).
-
-       * automake.in (initialize_per_input): Initialize
-       $use_dependencies.
-       ($seen_path_xtra): New variable.
-       (scan_configure): Look for AC_PATH_XTRA.
-       (get_object_extension): Add variables to output if X seen.
-
-Thu Feb  8 10:02:45 1996  Greg A. Woods  <address@hidden>
-
-       * automake.in (handle_programs): add pkglib to list of
-       directories for C
-       (various): include a tab as fill for continuation lines
-       printed with pretty_print*, esp. for macro variable assignments.
-       [ changed to 4 spaced by me ]
-
-Wed Feb  7 18:00:29 1996  Tom Tromey  <address@hidden>
-
-       * configure.in (VERSION): Upped to 0.30.
-
-       * Makefile.am (automake): Removed.
-       (DIST_OTHER): Removed.
-
-       * automake.in (handle_source_transform): All dep_files are
-       relative to $(srcdir).
-       (handle_libraries): Ditto.
-       (scan_configure): Test for AC_PROG_INSTALL as well as
-       fp_PROG_INSTALL.  Don't error here.
-       (seen_prog_install): Now global.
-       (scripts_installed): New global.
-       (handle_scripts): Set it.
-       Give error if appropriate install macro not seen.
-       (handle_subdirs): Ensure $seen_gettext before requiring
-       gettext-specific files.
-       (handle_configure): Automatically rebuild 
-
-        From Jim Meyering:
-       * automake.in (handle_source_transform): Use \W when quoting
-       regexp.  When blah_SOURCES not explicitly defined, still create
-       entry in %deps.
-       * depend.am ($(srcdir)/.deps/%.P): Don't use \< in regexp.
-       * subdirs.am (maintainer-clean-recursive): Now depends on
-       $(CONFIG_HEADER) and Makefile.
-
-       * automake.in (handle_source_transform): Skip macro references.
-
-Mon Feb  5 14:58:58 1996  Tom Tromey  <address@hidden>
-
-       * automake.in (handle_texinfo): Include "rm" when deleting files.
-
-       * Makefile.am (maintainer-check): Expect only one ${...}.
-       * texinfos.am (install-info): Remove unneeded ${...}.  From Jim
-       Meyering.
-
-       * automake.in (handle_configure): Only define CONFIG_HEADER if
-       $config_name.
-       ($seen_gettext): New variable.
-       (handle_subdirs): Do all gettext-related checking here.
-       (scan_configure): Just set $seen_gettext.
-       (handle_man_pages): Properly quote $(MANS).
-
-Wed Jan 31 09:51:30 1996  Tom Tromey  (address@hidden)
-
-       * depend.am: Don't use srcdir anywhere.
-       * automake.in (handle_libraries): Don't make .deps relative to
-       srcdir.
-       (handle_options): Recognize no-dependencies.
-
-       * depend.am (MKDEP): From Jim Meyering: Do nothing if srcdir is
-       ".".  Properly quote regexp.
-
-Tue Jan 30 12:19:09 1996  Tom Tromey  (address@hidden)
-
-       * automake.in (handle_configure): Only defined CONFIG_HEADER if
-       $config_name.
-       (read_am_file): Quote regexp when substituting top_builddir.
-       (handle_source_transform, handle_libraries): Look in
-       $(srcdir)/.deps for .P files.
-
-Fri Jan 26 00:15:25 1996  Tom Tromey  <address@hidden>
-
-       * automake.in (am_conf_error): New function.
-       (scan_configure): Use it.
-       (scan_configure): A comma also ends AC_OUTPUT macro.
-
-       * automake.in (read_am_file): Compute top_builddir when including
-       header-vars.am.
-       (handle_configure): Use $top_builddir, not $top_reldir.
-       (other_input_files): New variable.
-       (dirname): Fixed bug where dirname of 'a/b/c' was 'a', not 'a/b'.
-
-       Changes from Gord Matzigkeit to enabled hierarchies deeper than 2:
-       * automake.in (input_files, seen_make_set): Declare globally.
-       (parse_arguments): Use input_files, not make_list.
-       Only scan configure.in once.
-       (handle_dist): Use SUBDIRS to determine when to make
-       subdirectories and recurisvely dist.  Use $(topdir), not "..", to
-       find top of dist tree.
-       (handle_configure): Check for AC_PROG_MAKE_SET here.  Don't require
-       configure.in (done elsewhere).
-       (scan_configure): seen_make_set is global.  Allow arbitrary space
-       in LIBOBJS assignment.
-       (top_builddir): New variable.
-       * header-vars.am (top_builddir): New variable.
-       * remake-subd.am (Makefile): Look in top_builddir, not .., when
-       remaking.
-       * automake.in (handle_merge_targets): Run 'all' before
-       check-recursive.
-
-       * automake.in (file_contents_with_transform): Changed error
-       message.
-       (handle_configure): Define $contents{'CONFIG_HEADER'}.
-
-       * texi-version.am: Many changes to support multiple .texi files.
-       Replaced "version.texi" with "@VTEXI@".  Replaced "vti" with
-       "@VTI@".
-       * automake.in (handle_configure): install.sh is an anachronism.
-       (handle_texinfo): Generalized for multiple .texi files.  Handle
-       'clean-info' internally.
-       * texi-clean.am: Removed.
-       * Makefile.am: Updated for removal.
-
-Wed Jan 24 22:55:32 1996  Tom Tromey  <address@hidden>
-
-       * automake.in (grep_for_vers_texi): New function.
-       (handle_texinfo): Use grep_for_vers_texi, not system("grep").
-       (handle_texinfo): Changes to generalize to multiple .texi files.
-
-Tue Jan 23 14:22:16 1996  Tom Tromey  <address@hidden>
-
-       Fixes from Gord Matzigkeit:
-       * libraries.am (address@hidden@LIBRARIES): Use top_srcdir, not
-       topsrcdir.
-       * header.am: New file.
-       * Makefile.am (pkgdata_DATA): Install header.am.
-       * automake.in (handle_headers): Use header.am, not data.am.
-       (am_install_var): Allow pattern to be compiled multiple times.
-
-       * config.guess, config.sub: New files.
-       * Makefile.am (pkgdata_DATA): Install config.guess and
-       config.sub.
-       * automake.in (scan_configure): Recognize AC_CANONICAL_HOST and
-       AC_CANONICAL_SYSTEM.
-
-Sun Jan 21 15:51:48 1996  Tom Tromey  <address@hidden>
-
-       * automake.in (handle_texinfo): Use info_TEXINFOS, not TEXINFOS.
-       (handle_man_pages): Use man_MANS, not MANS.
-
-       * Makefile.am (info_TEXINFOS): Renamed.
-
-       * automake.in (scan_configure): Remove comments from input line.
-       (am_variable): Removed.
-
-       * remake-hdr.am (stamp-h): Use new macro CONFIG_HEADER_IN.
-
-       * automake.in (config_name, config_header): New globals.
-       (scan_configure): Look for AC_CONFIG_HEADER.
-       (handle_configure): Handle more uses of AC_CONFIG_HEADER.
-
-Sat Jan 20 15:54:24 1996  Tom Tromey  <address@hidden>
-
-       * automake.in (handle_dist_worker): Bug fix.
-
-Fri Jan 19 00:50:29 1996  Tom Tromey  <address@hidden>
-
-       * automake.in (require_file): Install missing files only according
-       to desired strictness.
-       (initialize_per_input): Don't init libsources.
-       (scan_configure): Reinit libsources.
-       (handle_libraries): Search _LIBADD for @LIBOBJS@ and @address@hidden
-       (fp_c_prototypes): New global.
-       (scan_configure): Set it.
-       (get_object_extension): Error if fp_C_PROTOTYPES not in
-       configure.in when using ansi2knr.
-       (handle_source_transform): Skip header files.
-
-       * automake.in (handle_dist_worker): Explicitly make 'dist' in
-       subdirs.
-
-Thu Jan 18 00:25:56 1996  Tom Tromey  <address@hidden>
-
-       From François Pinard:
-       * automake.in (handle_source_transform): Transform $o file into .P
-       file.
-       (handle_dist_worker): Handle case where DISTFILES includes
-       wildcard.  Bug fix in subdir case.
-
-       * automake.in (parse_arguments): Initialize strictness to
-       'normal'.
-
-Sun Jan 14 13:54:16 1996  Tom Tromey  <address@hidden>
-
-       * automake.in (scan_configure): Look for NLS support.
-
-       Changes from François Pinard:
-       * texinfos.am (install-info): Correctly install when build dir is
-       not srcdir.
-       * tags-subd.am (ID): Indentation change.
-       * kr-vars.am (o): Use "address@hidden@o", not "@address@hidden".
-       * depend.am ($(srcdir)/.deps/%.P): Remove temporary file.
-       * automake.in (handle_dist_worker): Fixlets.
-       (handle_dist): Sort keys going into dist_common.
-
-Sat Jan 13 00:18:06 1996  Tom Tromey  <address@hidden>
-
-       * automake.in (handle_dist_worker): If Gnits, don't allow release
-       until NEWS is updated.
-
-       * configure.in (VERSION): Version 0.29.
-
-       * Makefile.am (maintainer-check): Look for perl4.036 in path.
-
-       * dist-vars.am (DISTFILES):  Include BUILT_SOURCES.
-       (DEP_DISTFILES): Ditto.
-
-       * automake.in (handle_dist_worker): Depend on DEP_DISTFILES.
-       * dist-vars.am (DEP_DISTFILES): New variable.
-
-       * automake.in (handle_options): Support dist-shar option.
-       (handle_dist_worker): New function.
-       (handle_dist): Use it.
 
-       * texi-version.am (mostlyclean-vti): Remove version.tmp, not
-       *.tmp.
+       * automake.in (&add_depend2): Transform AMDEP.
+       (&handle_clean): Transform MCFILES and MFILES.
+       (&file_contents): Transform MAINTAINER_MODE.
+       (&transform, &am_install_var): Use `%', not `@'.
+       Adjust all the *.am files.
+       * clean.am: Use ?MFILES? instead of ad hoc MAINTAINERCLEAN.
+       * depend2.am: Display the double dependency on both ?AMDEP? and
+       @address@hidden
 
-       * automake.in (handle_dist): Chmod distdir 777.  From François
-       Pinard.
+2001-02-27  Tom Tromey  <address@hidden>
 
-       * automake.in (scan_configure): New function.
-       (initialize_per_input): Init libsources.
-       (generate_makefile): Run handle_configure first.
-       (handle_configure): Run scan_configure.
-       (handle_configure): Don't look for AC_PROG_MAKE_SET here.
+       * distdir.am (distcheck): Fixed new code.
 
-Thu Jan 11 23:14:18 1996  Tom Tromey  <address@hidden>
+       * tests/yaccvpath.test: Fail gracefully if bison/flex not found.
+       Only configure once.
 
-       * Makefile.am (AUTOMAKE_OPTIONS): New variable.
-
-       * automake.in (strictness, strictness_name): Renamed.
-       (initialize_per_input): Set strictness, strictness_name.
-       Initialize %options.
-       (generate_makefile): Run handle_options.
-       (handle_options): New function.
-       (handle_man_pages): Make install-man depend on $(MANS).  Turn off
-       man page install if no-installman option given.
-       (read_am_file): Deprecate @address@hidden
-       (get_object_extension): Look at ansi2knr option.
-       (parse_arguments): Take global strictness from command-line
-       options.
-
-Tue Jan  9 11:24:14 1996  Tom Tromey  <address@hidden>
-
-       Fixes from François Pinard:
-       * depend.am ($(srcdir)/.deps/%.P): Handle deansification.
-       * automake.in (get_object_extension): Use $o, not $(kr)o.
-       (handle_source_transform): Don't look for $(kr)c files.
-       * kr-vars.am (o): New macro.
-       (kr): Removed.
-
-       * depend.am (DEP_FILES): Removed.
-       * automake.in (handle_source_transform): Push .P file onto
-       dep_files.
-       (initialize_per_input): New variable %dep_files.
-       (handle_dependencies): Generate DEP_FILES here.
-
-Mon Jan  8 22:27:33 1996  Tom Tromey  <address@hidden>
-
-       * automake.in (do_one_clean_target): Only remove config.status in
-       top-level directory.
-       (handle_tags): Removed 'id' from .PHONY list.  From Jim Meyering.
-
-       * clean.am (maintainer-clean-generic): Remove BUILT_SOURCES.
-
-       * automake.in (handle_dist): Make "ln" quiet.
-
-       * tags-subd.am (ID): Depend on HEADERS and SOURCES.
-
-Sat Jan  6 10:58:23 1996  Tom Tromey  <address@hidden>
-
-       * automake.in (handle_merge_targets): 'check' shouldn't depend on
-       'all' at top level.
-       (file_contents_with_transform): New function.
-       (am_install_var): Use file_contents_with_transform.
-       (handle_programs): Ditto.
-       (handle_libraries): Ditto.
-       (handle_texinfo): Ditto.
-       (handle_merge_targets): Let 'install' depend on 'all' if no other
-       dependencies exist.  From Jim Meyering.
-       (check_gnu_standards): GNU requires AUTHORS file.  (See
-       maintain.text).
-       (require_file): Put body in loop.
-       (get_object_extension): Only call require_file once.
-       (handle_configure): Ditto.
+       * distdir.am (distcheck): Print error message if distclean failed
+       to fully clean.
 
-       From Jim Meyering:
-       * depend.am ($(srcdir)/.deps/.P): Depend on $(BUILT_SOURCES).
-       * tags-subd.am (id): Removed.
+2001-02-27  Pavel Roskin  <address@hidden>
 
-Fri Jan  5 10:31:19 1996  Tom Tromey  <address@hidden>
+       * tests/Makefile.am (TESTS): s/yaccpvath/yaccvpath/.
 
-       * Added copyright notice to each .am file.
+2001-02-25  Alexandre Duret-Lutz  <address@hidden>
 
-       * automake.in: Cleanups from François Pinard to avoid $#.
-       (require_argument): Fixed sense of test.
-       (set_strictness): Bug fix.
+       * tests/Makefile.am (TESTS): Added yaccvpath.test.
+       * tests/yaccvpath.test: New file.
 
-Thu Jan  4 21:21:29 1996  Tom Tromey  <address@hidden>
+2001-02-26  Akim Demaille  <address@hidden>
 
-       * Makefile.am (pkgdata_DATA): Removed old dist files.
+       * automake.in (&am_install_var): Recognize whether predefined
+       directories are `data' or `exec'.
+       * libs.am, ltlib.am, progs.am, python.am, scripts.am: Install
+       ?EXEC?.
+       * tests/instdata2.test: Update.
 
-       * dist-subd-top.am, dist-subd.am, dist.am: Removed.
+2001-02-26  Akim Demaille  <address@hidden>
 
-       * automake.in (set_strictness): Set $strictness_name.
-       (strictness_name): New variable.
-       (handle_dist): Substantially rewrote.
+       * texinfos.am: No ?EXEC? hook as currently installing TEXINFOS is
+       necessarily in infodir.
 
-       * configure.in: Point AC_INIT at automake.in.
-
-       * automake.in (generate_makefile): Report errors against
-       Makefile.in, not Makefile.am.
-
-Wed Jan  3 00:05:40 1996  Tom Tromey  <address@hidden>
-
-       * mdate-sh: Bug fix from Jim Meyering.
-
-       * dist.am (dist): Changed in parallel with dist-subd-top.am.
-
-       * mkinstalldirs: Reverted.
-
-       * automake.in (initialize_global_constants): Allow COPYING.LIB
-       again.
-       (check_gnits_standards): Disallow COPYING.LIB.
-
-       * texinfos.am (install-info): Only look in $(srcdir) for info
-       files.
-
-       * automake.in (initialize_global_constants): New variable
-       gen_copyright.
-       (read_am_file): Put a copyright in each Makefile.in.
-
-       * dist-vars.am (DISTFILES): Put DIST_COMMON first.
-
-       * automake.in (am_install_var): Put space before "=".
-       (handle_dist): Put README first in DIST_COMMON.
-
-       * Makefile.am (pkgdata_DATA): Include COPYING.
-
-       * COPYING: New file.
-
-       * automake.in (parse_arguments): Added --gnu and --gnits as
-       synonyms.
-       (initialize_global_constants): Ditto.
-       (initialize_global_constants): Don't auto-distribute COPYING.LIB.
-       (initialize_global_constants): Look for README first.
-       (initialize_global_constants): Auto-distribute AUTHORS, BACKLOG,
-       ABOUT-GNU.
-       (check_gnu_standards): Require file COPYING.
-
-       From François Pinard:
-       * automake.in (file_contents): Comment out "warn"s.
-       (usage): Use 4 columns.
-       (USAGE_FORMAT): Ditto.
-
-       * texinfos.am (install-info): Look for info file relative to $$d.
-
-       * Makefile.am (cvs-dist): Suppress output of "grep".
-
-       * configure.in (VERSION): Version 0.28.
-
-       * automake.in (pretty_print_internal): Fix for Perl 4
-       compatibility.
-
-       * configure.in (VERSION): Version 0.27.
-
-       * depend.am ($(srcdir)/.deps/%.P): Must regexp-quote srcdir in sed
-       invocation.
-
-       * automake.in (initialize_global_constants): Don't quote "@" in
-       $install_man_format.
-       (handle_merge_targets): use "@:" as empty command, not ":".
-
-Tue Jan  2 23:33:24 1996  Tom Tromey  <address@hidden>
-
-       * texinfos.am (install-info): Look in $d for info files.  From
-       François Pinard.
-
-       * depend.am ($(srcdir)/.deps/%.P): Fixed regexp.
-
-       * automake.in (read_am_file): Correctly deal with continued
-       variable definitions.
-
-Mon Jan  1 15:43:25 1996  Tom Tromey  <address@hidden>
-
-       * automake.in (handle_merge_targets): 'check' target depends on
-       'all'.
-       (file_contents): Don't be so verbose.
-       (read_am_file): Ditto.
-       (read_am_file): Must use substr to check for trailing \.
-       (am_install_var): Use push_phony_cleaners.
-       (file_contents): Set $was_rule when assuming a rule is seen.
-       (read_am_file): Ditto.
-       (do_one_clean_target): Removed spurious newline.
-
-       Some changes from François Pinard:
-       * Removed trailing whitespace from all '.am' files.
-       * tags-subd.am (ID): Use &&, not ;.
-       (TAGS): Ditto.
-       * automake.in (parse_arguments): Removed useless message.
-       (parse_arguments): Don't explicitly referenced STDERR.
-       (require_argument): Ditto.
-       (am_error): Ditto.
-       (set_strictness): Ditto.
-       (file_contents): Ditto.
-       (read_am_file): Ditto.
-       (generate_makefile): Style tweaks.
-       (handle_programs): Ditto.
-       (handle_libraries): Ditto.
-       (handle_texinfo): Ditto.
-       (handle_man_pages): Ditto.
-       (handle_tags): Ditto.
-       (handle_dist): Ditto.
-       (handle_subdirs): Ditto.
-       (handle_configure): Ditto.
-       (handle_footer): Don't put newline before footer.am contents.
-       (handle_merge_targets): Style tweaks.
-       (do_one_clean_target): Ditto.
-       (dirname): Ditto.
-       (am_variable): Ditto.
-       Defined some new constants.
-       (generate_makefile): Don't call generate_header.
-       (generate_header): Removed.
-       (file_contents): Rewrote.
-       (read_am_file): Rewrote.
-
-       * automake.in (generate_makefile): Handle phony target.
-       (do_one_clean_target): Pretty-print dependencies.
-       (handle_installdirs): Pretty-print rule.
-
-       * Makefile.am (maintainer-check): Made some commands silent.
-
-       * automake.in (initialize_global_constants): Don't install or
-       uninstall cat'd man pages.
-       (initialize_per_input): Added phony target.
-       (push_phony_cleaners): New function.
-       (get_object_extension): Handle phony targets.
-       (handle_texinfo): Ditto.
-       (handle_man_pages): Ditto.
-       (handle_tags): Ditto.
-       (handle_dist): Ditto.
-       (handle_subdirs): Ditto.
-       (handle_installdirs): Ditto.
-       (handle_merge_targets): Ditto.
-       (handle_clean): Ditto.
-       (do_one_merge_target): Ditto.
-       (am_install_var): Ditto.
-       (handle_phony): New function.
-       (generate_makefile): Call it.
-       (pretty_print_internal): New function.
-       (pretty_print_rule): Ditto.
+2001-02-26  Akim Demaille  <address@hidden>
 
-Sun Dec 31 13:04:59 1995  Tom Tromey  <address@hidden>
+       * automake.in ($am_file): Be `local', as my'd variables used in
+       `foreach' loops are always private to the loop.
 
-       * automake.in (initialize_global_constants): Don't print body of
-       loop at make time.
+2001-02-26  Pavel Roskin  <address@hidden>
 
-       Changes from François Pinard:
-       * depend.am (MKDEP): Include DEFS, INCLUDES, CPPFLAGS, CFLAGS.
-       (DEP_FILES): Put dependency files in $(srcdir).
-       Look in $(srcdir) when including dependency files.
-       ($(srcdir)/.deps/.P): .deps/.P is in $(srcdir).
-       (.deps/%.P): MKDEP includes all macro expansions.
-       * dist-subd-top.am (dist): Get absolute path for distdir.  Don't
-       be so verbose.
-       * dist-subd.am (dist): Don't be so verbose.
-       * dist.am (dist): Don't be so verbose.
+       * Makefile.am: Add install.am.
 
-       * automake.in (do_one_clean_target): Remove config.status in
-       maintainer-clean.  From Jim Meyering.
+2001-02-26  Akim Demaille  <address@hidden>
 
-       * programs-clean.am (address@hidden@PROGRAMS): Bug fix.  From Jim
-       Meyering.
+       * automake.in (&target_cmp, &dist_cmp): Do not prototype comparing
+       routines, otherwise the elements to compare are passed in @_
+       instead of $a and $b.
 
-       * automake.in (handle_merge_targets): Add dummy command for empty
-       install target.  From Jim Meyering.
+2001-02-26  Akim Demaille  <address@hidden>
 
-Tue Dec 12 10:06:28 1995  Tom Tromey  <address@hidden>
+       * automake.in (%required_targets): `installcheck-am' is needed.
 
-       * texinfos.am (uninstall-info): Bug fix.
+2001-02-26  Akim Demaille  <address@hidden>
 
-       * Makefile.am (maintainer-check): Error if ${...} used.
-       * depend.am (DEP_FILES): Prefer $(...).
+       * automake.in (&transform_cond): Merge into...
+       (&transform): this.
+       Adjust all uses.
 
-       * scripts.am (address@hidden@SCRIPTS): Only install script if it
-       exists.
-       * libraries.am (address@hidden@LIBRARIES): Only install library if
-       it exists.
-       * programs.am (address@hidden@PROGRAMS): Only install program if it
-       exists.
+2001-02-26  Akim Demaille  <address@hidden>
 
-       * texinfos-vars.am (TEXFILES): Removed.
+       * automake.in (&handle_dist): Use &transform instead of dedicated
+       magic for DISTDIRS.
+       But be sure to always do it.
+       * distdir.am: Adjust.
 
-       * Makefile.am (pkgdata_DATA): Removed libprograms.am.
+2001-02-26  Akim Demaille  <address@hidden>
 
-       * automake.in (do_one_merge_target): Never generate trailing
-       whitespace.
-       (pretty_print): New function.
-       (handle_footer): Prettyprint definitions.
-       (am_install_var): Ditto.
-       (handle_source_transform): Ditto.
-       (handle_dist): Ditto.
-       (handle_libraries): Ditto.
-       (read_am_file): Put comments nearer appropriate code.
+       * automake.in: Use File::Basename.
+       (&dirname, &basename): Remove.
 
-       * texi-clean.am (mostlyclean-info): Use continued lines, not
-       multiple rm's.  From Jim Meyering.
+2001-02-26  Akim Demaille  <address@hidden>
 
-Sun Dec 10 11:59:33 1995  Tom Tromey  <address@hidden>
+       * automake.in ($me): New.
+       Use it.
+       (&usage): Display your full name.
 
-       * Makefile.am (pkgdata_DATA): Cause INSTALL, install-sh, mdate-sh,
-       mkinstalldirs, texinfo.tex to be installed.
-       * automake.in (symlink_exists): New global.
-       (install_missing): Ditto.
-       (require_file): Install missing files if possible.
-       (parse_arguments): Handle --install-missing option.
-       (initialize_global_constants): Document --install-missing.
+2001-02-26  Akim Demaille  <address@hidden>
 
-       * Makefile.am (cvs-dist): Don't release unless NEWS updated.
-       Ensure 'checks' pass before release.
-       (maintainer-check): Renamed.  Look in $(srcdir) for sources.  From
-       Franc,ois Pinard.
-       (cvs-dist): Depend on maintainer-check instead of explicitly
-       running check.
+       * automake.texi (Invoking Automake): Remove dead options.
 
-       * configure.in (VERSION): Version 0.26.
+2001-02-26  Akim Demaille  <address@hidden>
 
-       * Makefile.am (check-local): Only look at [a-z]*.am.  Fixed sense
-       of 'if' test.
+       * automake.in (&scan_texinfo_file): Also compute the list of files
+       to clean.
+       Handle local errors.
+       (&handle_texinfo): Use it.
 
-       * depend.am (DEP_FILES): Bug fix.
+2001-02-26  Akim Demaille  <address@hidden>
 
-       * automake.in (do_one_clean_target): Typo.
+       * automake.in: Don't pass arguments to...
+       (&parse_arguments): Work on @ARGV.
+       Use Getopt.
+       Add support for `-f'.
+       (&version): New.
+       (&usage): Update.
 
-       * Makefile.am (check-local): Run syntax check under Perl 4.
+2001-02-26  Akim Demaille  <address@hidden>
 
-       * automake.in: Fixes for Perl 4, from Gord Matzigkeit.
-       (handle_source_transform): Loop variable is now $_.  From Gor
+       * automake.in (&handle_merge_targets, &do_one_merge_target): Don't
+       handle installcheck and installcheck-am.
+       * install.am: Do it.
 
-       * Makefile.am (check-local): Check for 'true' in source.
-       * texinfos.am (install-info): Can't use "true" in any rule.
+2001-02-26  Akim Demaille  <address@hidden>
 
-Sat Dec  9 10:16:48 1995  Tom Tromey  <address@hidden>
+       * automake.in (&handle_merge_targets, &do_one_merge_target): Don't
+       handle install and install-am.
+       * install.am: Do it.
 
-       * Makefile.am (cvs-dist): New target.
+2001-02-26  Akim Demaille  <address@hidden>
 
-       * tags.am (TAGS): Use "test -z ... ||" to avoid spurious
-       failures.
-
-       * texinfos.am (install-info): Don't do install-info for now.
-
-       * clean.am (distclean-generic): Don't remove config.status here.
-       * automake.in (do_one_clean_target): Remove config.status later,
-       for 'make -j2'.  From Jim Meyering.
-
-Fri Dec  8 16:30:48 1995  Tom Tromey  <address@hidden>
-
-       * configure.in (VERSION): Version 0.25.
-
-       * automake.in (handle_texinfo): Use "$? >> 8", not "$?".
-       (handle_configure): Check for AC_PROG_MAKE_SET.
-
-       * depend.am (DEP_FILES): Handle deANSIfication case.  From Jim
-       Meyering.
-
-       * automake.in (am_install_var): Changed how 'clean' handled for
-       uniform name targets.
-       * Makefile.am (pkgdata_DATA): Added new files.
-       * data-clean.am: New file.
-       * scripts-clean.am: New file.
-       * libraries-clean.am: New file.
-       * programs-clean.am: New file.
-
-Wed Dec  6 00:06:11 1995  Tom Tromey  <address@hidden>
-
-       * automake.in (am_install_var): Error if variable name
-       "misspelled".
-       (handle_source_transform): Automatically include .c file
-       corresponding to .y or .l.
-
-Tue Dec  5 00:46:14 1995  Tom Tromey  <address@hidden>
-
-       * programs.am: Changed for uniform naming scheme.
-
-       * automake.in (read_am_file): Allow '-' and '.' in target names.
-       (generate_makefile): Don't pass arguments to handle_libraries.
-       (initialize_per_input): Define @sources, @objects.
-       (generate_makefile): Init @sources, @objects if needed.
-       (handle_source_transform): Push onto @sources, @objects here.
-       (am_install_var): Push primary onto @all, for configure-time
-       customization.
-       (handle_programs): Use new uniform naming scheme.
-
-       * Makefile.am (check-local): New target.
-
-       * automake.in (handle_libraries): Use uniform naming scheme.
-
-       * libraries.am: Rewrote for uniform naming scheme.
-
-       * scripts.am: Updated names of all clean targets.
-
-       * automake.in (handle_programs): Split on all whitespace.
-       (handle_libraries): Ditto.
-       (handle_texinfo): Ditto.
-       (handle_man_pages): Ditto.
-       (am_install_var): Changed return result.
-       (am_install_var): Changed interface.
-       (am_install_var): Push onto @clean@ if requested.
-       (handle_scripts): Pass -clean to am_install_var.
-
-Mon Dec  4 11:55:36 1995  Tom Tromey  <address@hidden>
-
-       * automake.in (am_install_var): Push target onto @all.
-       (get_object_extension): Use $(...).
-       (handle_source_transform): Ditto.
-       (handle_programs): Ditto.
-
-       * automake.in (require_argument): New function.
-       (parse_arguments): Use it.
-       (push_dist_common): New function.
-       (generate_makefile): Use it.
-       (handle_texinfo): Ditto.
-       (handle_dist): Ditto.
-       (handle_configure): Ditto.
-       (require_file): Ditto.
-       (generate_makefile): Don't pass arguments to handle_scripts.
-       (handle_configure): Require configure.in.
-       (check_gnu_standards): New function.
-       (check_gnits_standards): Ditto.
-       (generate_makefile): Check standards.
-
-       * Makefile.am (bin_SCRIPTS): Changed name from SCRIPTS.
-
-       * automake.in (LENIENT, GNU, GNITS): New constants.
-       (initialize_per_input): New function.
-       (generate_makefile): Use it.
-       (initialize_global_constants): Renamed from init_globals.
-       (require_file): Added strictness argument.
-       (parse_arguments): Added --strict option.
-       (set_strictness): New function.
-       (parse_arguments): use it.
-       (initialize_global_constants): Document --strictness.
-
-       * automake.in: Use ${1+"$@"} to preserve quoting when running
-       under sh.
-
-       * texinfos.am (install-info): Don't use "true".
-       * tags.am (TAGS): Don't use "true".
-
-       * dist.am, dist-subd-top.am, remake-hdr.am, remake-subd.am,
-       remake.am, subdirs.am, texinfos.am: Use "&&" after cd.
-
-       * program.am (@PROGRAM@): Use LINK macro.
-       * compile.am (.c.o): Use COMPILE macro.
-
-       * clean.am, remake-hdr.am, remake.am, texinfos.am: Use $(...), not
-       ${...}.
-
-       * subdirs.am (RECURSIVE): Removed macro.
-
-       * clean.am: Changed to not be so verbose.
-
-       * Makefile.am (pkgdata_DATA): Include texi-clean.am.
-       * automake.in (handle_texinfo): Transform texi-clean and put into
-       output rules.
-       * texinfos-vars.am (TEXFILES): Removed.
-       * texinfos.am: Removed 'clean' targets.
-       * texi-clean.am: New file.
-
-       * Makefile.am (ETAGS_ARGS): Just use 'automake.in'.
-
-       * texinfos-vars.am (TEXFILES): Added *.op.
-
-       * dist-vars.am (DISTFILES): Renamed from DIST_FILES, per GNU
-       standards.
-       * dist.am (dist): Use DISTFILES.
-       * dist-subd.am (dist): Use DISTFILES.
-       * dist-subd-top.am (dist): Use DISTFILES.
-
-Sun Dec  3 00:24:08 1995  Tom Tromey  <address@hidden>
-
-       * Makefile.am (ETAGS_ARGS): Define.
-
-       * depend.am (.deps/.P): Use ":", not "echo timestamp".  From Jim
-       Meyering.
-
-       * dist-vars.am (DIST_FILES): Removed PACKAGEDATA.
-
-       * automake.in (handle_scripts): Use am_install_var.
-
-       * scripts.am: Rewrote for new uniform naming scheme.
-
-       * Makefile.am (pkgdata_DATA): Removed libscripts.am.
-
-       * libscripts.am: Removed.
-
-       * packagedata.am: Removed.
-
-       * Makefile.am (PACKAGEDATA): Removed packagedata.am.
-       (pkgdata_DATA): Renamed from PACKAGEDATA.
-
-       * automake.in (handle_data): Use am_install_var.
-       (init_globals): Init %exec_dir_p.
-
-       * data.am: Rewrote for new uniform naming scheme.
-
-       * automake.in (get_object_extension): New function.
-       (handle_programs): Use it.
-       (dir_holds_sources): Changed interpretation.
-       (handle_headers): New function.
-       (am_install_var): New function.
-       (generate_makefile): Call handle_headers.
-
-       * header-vars.am (pkgdatadir): New macro.
-       (pkglibdir): Ditto.
-       (pkgincludedir): Ditto.
-
-       * automake.in (handle_source_transform): New function.
-       (am_error): New function.
-       (generate_makefile): Use it.
-       (handle_source_transform): Ditto.
-       (handle_texinfo): Ditto.
-       (handle_dependencies): Ditto.
-       (handle_merge_targets): Ditto.
-       (require_file): Ditto.
+       * automake.in (&handle_merge_targets, &do_one_merge_target): Don't
+       work on targets handled by %dependencies.
+       (&handle_factored_dependencies): Do it.
+       * install.am: Install install-exec, install-data and uninstall's
+       suites.
 
-Sat Dec  2 21:39:56 1995  Tom Tromey  <address@hidden>
+2001-02-26  Akim Demaille  <address@hidden>
 
-       * automake.in: Updated FSF address.  From Jim Meyering.
-       * header-vars.am: Updated FSF address.
+       * automake.in (&handle_merge_targets): Move `install-strip' from
+       here...
+       * install.am: to here.
 
-       * distname.am: Removed.
+2001-02-26  Akim Demaille  <address@hidden>
 
-       * automake.in (file_contents): Strip "##" comments.
-       * Various files: Added "##" comments for strange things.
+       * automake.in (@installdirs): Remove.
+       (&file_contents): Be able to grow Automake macros with `+='.
+       (&handle_texinfo, &handle_man_pages, &am_install_var): Let your
+       files define _am_installdirs.
+       (&handle_installdirs): Remove the code, just output `install.am'.
+       * install.am: New.
+       * data.am, header.am, libs.am, lisp.am, ltlib.am, mans.am, progs.am,
+       * python.am, scripts.am, texinfos.am: Extend $(_am_installdirs).
 
-       * automake.in (handle_tags): Generate TAGS rule for every
-       directory.
+2001-02-26  Akim Demaille  <address@hidden>
 
-       * subdirs.am (RECURSIVE): Include installcheck-recursive.
-       * automake.in (installcheck): New variable.
-       (generate_makefile): Initialize it.
-       (handle_subdirs): Push 'installcheck-recursive'.
-       (handle_merge_targets): Handle installcheck target.
+       * tests/instdata2.test (libexec_DATA): Exercise more
+       possibilities.
 
-Thu Nov 30 20:13:16 1995  Tom Tromey  <address@hidden>
+2001-02-25  Alexandre Duret-Lutz  <address@hidden>
 
-       * automake.in ($PACKAGE): Removed.
+       * header-vars.am (INSTALL_STRIP_FLAG): Remove (obsolete).
 
-       * header-vars.am (ALL): Removed.
+2001-02-25  Tom Tromey  <address@hidden>
 
-       * automake.in: Reworked 'all' target handling.
+       * tests/instdata2.test: Added `sbin_DATA' check.
 
-       * automake.in (generate_makefile):
-       Don't use AM_ forms in call to am_variable.
+       * tests/Makefile.am (TESTS): Added subdircond.test.
+       * tests/subdircond.test: New file.
+       * automake.in (handle_gettext): Don't fail if SUBDIRS
+       conditionally defined.
 
-       * automake.in: Changes for Perl 5, from Gord Matzigkeit
-
-       * clean.am (MOSTLYCLEANFILES, MAINTAINERCLEANFILES): New variables.
-
-       * automake.in (handle_footer): Allow SUFFIXES variable.
-
-       * automake.in (am_variable): New function.
-       (handle_texinfo): Use it.
-       (generate_makefile): Use it.
-
-       * configure.in: Version 0.24.
-
-Wed Nov 29 23:50:14 1995  Tom Tromey  <address@hidden>
-
-       * automake.in (handle_libraries):
-       Generate blah_LIBADD defines if required.
-
-       * library.am (address@hidden@.a): Look at $(@address@hidden)
-
-       * libraries-vars.am (LIBOBJS, ALLOCA): Removed.
-
-       * compile-kr.am: ($(OBJECTS)): Depend on $(ANSI2KNR), not ansi2knr.
-
-       * configure.in: Version 0.23
-
-       * dist-subd-top.am (dist): Don't die if a subdirectory already exists.
-
-       * dist-subd-top.am, dist.am (dist): Give automake --output-dir option.
-
-       * automake.in: New option --output-dir
-
-       * automake.in (handle_configure): Fixed typo.
-
-       * automake.in (handle_installdirs): Always make installdirs target.
-
-       * subdirs.am (RECURSIVE): Removed uninstall-data-recursive and
-       uninstall-exec-recursive.  Added installdirs-recursive.
-
-       * automake.in (handle_installdirs): Handle installdirs-recursive.
-       (handle_man_pages): 'all' depends on $(MANS)
-
-       * Makefile.am: Removed mans.am.
-
-       * automake.in: More man-related fixes
-
-       * automake.in: Bug fixes
-
-       * automake.in: Rewrote man page handling.
-
-       * texi-version.am, remake-hdr.am, depend.am: Don't use touch.
-
-       * automake.in (handle_installdirs): New function.
-       (@installdirs): New global.
-       Many changes to deal with installdirs.
-
-       * clean.am (clean-generic): Always supply 'else' clause to 'if'
-
-       * automake.in (generate_header): Don't use header.am.
-       (handle_dist): Don't use dist-subd-vars.am.
-
-       * Makefile.am (PACKAGEDATA): Removed dist-subd-vars.am, header.am.
-
-       * Makefile.am (DISTCLEANFILES): Removed.
-
-       * clean.am (clean-generic): Bug fix.
-
-       * clean.am (clean-generic): Only remove CLEANFILES if nonempty
-
-       * texi-version.am (clean-vti): No such macro as VTI
-
-Tue Nov 28 19:56:07 1995  Tom Tromey  <address@hidden>
-
-       * automake.in: Bug fix for maintainer-clean
-
-       * automake.in (do_one_clean_target):
-       Print special text in maintainer-clean.
-       (handle_clean): Always include clean.am
-
-       * clean.am: Use -generic clean targets.
-
-       * compile.am: Added clean targets.
-
-       * configure.in: Version 0.22.
-
-       * automake.in (handle_dependencies):
-       Put trailing newline after all deps.
-
-       * automake.in (handle_dependencies): Another dependency bug fix.
-
-       * automake.in (handle_dependencies):
-       Bug fix when including dependencies.
-
-       * automake.in (handle_configure):
-       Verify existence of install-sh, mkinstalldirs
-
-       * automake.in (handle_texinfo): Include stamp-vti in distribution
-
-       * dist-subd-vars.am, dist-vars.am (DIST_FILES):
-       Include DATA, PACKAGEDATA.
-
-       * Makefile.am: Nothing
-
-       * Makefile.am (DIST_OTHER): Don't distribute gettext-sh
-
-       * automake.in (handle_texinfo): Typo
-
-       * automake.in: If script ends up in shell, feed to perl
-
-       * automake.in: Rewrote 'clean' rules.
-       Documentation made and installed first.
-       'all' depends on 'info'
-
-Mon Nov 27 23:57:29 1995  Tom Tromey  <address@hidden>
-
-       * configure.in, Makefile.am: Turned off internationalization.
-
-       * clean-kr.am: Rewrote for new clean scheme.
-
-       * tags-clean.am: Remove TAGS in distclean, not maintainer-clean
-
-       * Makefile.am (PACKAGEDATA): Include tags-clean.am
-
-       * subdirs.am: Removed bogus local clean targets
-
-       * tags-clean.am: Initial revision
-
-       * texi-version.am: Added clean targets
-
-       * texinfos.am: Fixes to clean targets.
-
-       * texinfos.am, libscripts.am, scripts.am, libraries.am, libprograms.am, 
programs.am:
-       Added clean targets
-
-       * compile-kr.am (ansi2knr.o): Depend on CONFIG_HEADER
-
-       * automake.in: Completely revamped automatic de-ANSI-fication
-
-       * compile-kr.am: (ansi2knr, $(OBJECTS)): New targets
-
-       * compile-vars.am (LINK): New macro
-
-       * kr-vars.am: Trailing blank line
-
-       * compile-kr.am: Rewrote
-
-       * compile-vars.am (COMPILE): New macro
-
-       * compile-vars.am (ANSI2KNR): Removed
-
-       * Makefile.am (PACKAGEDATA): Removed all sed scripts.  Added kr-vars.am
-
-       * kr-vars.am: Initial revision
-
-       * automake.in (require_file): New function.
-       (handle_texinfo): Require 'mdate-sh'
-       (common_sometimes): New variable
-       (usage): Use it.
-
-       * texi-version.am (stamp-vti): Use Ulrich's mdate-sh script
-
-       * mdate-sh: Initial revision
-
-       * automake.in (handle_footer): Don't define SOURCES or OBJECTS if empty
-
-       * automake.in (generate_makefile):
-       Put Makefile.in, Makefile.am in @dist_common
-       (handle_configure): Use @dist_common as appropriate
-
-       * dist-subd-vars.am, dist-vars.am (DIST_CONF): Removed
-
-       * configure.in: Abort if perl not found
-
-       * configure.in: Look for perl
-
-       * automake.in: Reimplemented in Perl
-
-       * automake.in: Fixlet
-
-Sun Nov 26 08:09:30 1995  Tom Tromey  <address@hidden>
-
-       * automake.in: Always print ".SUFFIXES:" rule.
-
-       * automake.in: Distribution config.h.in if required
-
-       * automake.in: Bug fix when including texi-version.am
-
-       * automake.in: Bug fix when looking for .texi file in $am_reldir
-
-       * depend.am: Comment fix
-
-       * automake.in: Look for .texi file in $am_reldir
-
-       * automake.in: Fixlet
-
-       * automake.in: Blank line after targets from user's Makefile.am
-
-       * automake.in: Move footer items to actual footer
-
-       * automake.in: Include stamp-h.in in DIST_COMMON if necessary
-
-       * automake.in (common):
-       Don't include acconfig.h, config.h.top, config.h.bot
-
-       * Makefile.am (CONFIG_HEADER): Renamed from CONFIG_H
-
-       * Makefile.am (CONFIG_H): Define
-
-       * acconfig.h: Initial revision
-
-       * configure.in: Use AC_CONFIG_HEADER.
-
-       * automake.in: Put blah_TEXINFOS into DIST_COMMON
-
-       * automake.in: .info file explicitly depends on primary .texi file
-
-       * texinfos.am (install-info): Always supply 'else' clause to 'if'
-
-       * tags.am (TAGS): Always supply 'else' clause to 'if'
-
-       * subdirs.am (.NOEXPORT): Removed (now in footer.am)
-
-       * automake.in: Always include footer.am in output
-
-       * mans.am (install-man): Always supply 'else' clause to 'if'
-
-       * automake.in: More version.texi fixes
-
-       * automake.in: Only do version.texi processing if requested.
-
-       * automake.in: Minor internationalization fixes.
-       Subshell can now exit with nonzero status.
-       Fixed up .texi handling; now uses texi-version.am
-       Make sure '.c' and '.o' are in .SUFFIXES if required.
-
-       * Makefile.am (PACKAGEDATA): Include texi-version.am
-       (stamp-vti, version.texi): Removed
-       (TEXINFOS): Don't reference version.texi
-
-       * texi-version.am: Initial revision
-
-       * dist.am, dist-subd-top.am (dist):
-       [DIST_SUBDIRS] Follow symlinks when copying.
-
-       * dist-subd-top.am (dist): Removed unneeded subdir= option to make
-
-Sat Nov 25 23:23:39 1995  Tom Tromey  <address@hidden>
-
-       * automake.in: Added --amdir option
-
-       * Makefile.am, configure.in: Turned on internationalization
-
-       * Makefile.am: Set EDITION
-
-       * configure.in: Version 0.21
-
-       * tags.am, tags-subd.am: Don't use double-colon rules
-
-       * automake.in: Redid install-data, install-exec, uninstall handling
-
-       * configure.in: Turn off i18n
-
-Fri Nov 24 23:51:37 1995  Tom Tromey  <address@hidden>
-
-       * automake.in (common): Remove NLS
-
-       * automake.in (common): Include ABOUT-NLS.
-
-       * automake.in: Test for install-sh and mkinstalldirs
-
-       * automake.in: Blank line after OBJECTS= line
-
-       * automake.in: Start subshell in loop after check for Makefile.am
-
-       * automake.in: --use-deps now the default
-
-       * automake.in (am_dir): Don't apply transform to install directory name
-
-       * packagedata.am: Don't apply transform to install directory name
-
-       * Makefile.am (SUBDIRS): Hold off on internationalization
-
-Thu Nov 23 18:02:38 1995  Tom Tromey  <address@hidden>
-
-       * automake.in:
-       Write 'SOURCES =' line after copying Makefile.am variables
-
-       * automake.in: Fixed bug in "--" option processing
-
-       * subdirs.am: ($(RECURSIVE)): Removed trailing \ from last line
-
-       * Makefile.am (DIST_OTHER): Include gettext-sh
-
-       * Makefile.am (SUBDIRS): Define
-
-       * configure.in: Include internationalization bits
-
-       * automake.in: Many changes to avoid double-colon rules.
-
-       * subdirs.am: ($(RECURSIVE)): Print name of target actually used
-
-       * subdirs.am: Removed "::" rules
-
-       * header.am: Removed install, uninstall
-
-       * header.am: Added install, uninstall targets
-
-       * hack-make.sed: Rewrite targets like "all-local" to "all_local"
-
-       * header.am, libraries.am, mans.am, texinfos.am, footer.am:
-       Removed "::" rules
-
-       * Makefile.am (PACKAGEDATA): Include libscripts.am
-
-       * libprograms.am: Don't install libscripts here
-
-       * libscripts.am: Initial revision
-
-       * scripts.am, programs.am, libprograms.am: Removed "::" rules
-
-       * automake.in (am_dir): Run package name through name transform.
-
-       * automake.in: Don't use packagedata.sed or data.sed
-
-       * Makefile.am (PACKAGEDATA): Removed data.sed, packagedata.sed.  Added
-       packagedata.am
-
-       * data.am: No longer run through sed
-
-       * packagedata.am: Initial revision
-
-Wed Nov 22 22:31:02 1995  Tom Tromey  <address@hidden>
-
-       * automake.in: No blank line after Usage
-
-       * automake.in: Removed "NLS nuisances" section.
-       Now uniformly uses $echo for user-visible messages (in advance of
-       internationalization)
-
-       * subdirs.am (maintainer-clean): Don't use realclean-local
-
-       * Makefile.am: Use PACKAGEDATA, not custom code
-
-       * data.am: Use @LONG@, not $(@LONG@)
-
-       * automake.in: Handle DATA and PACKAGEDATA
-
-       * packagedata.sed: Initial revision
-
-       * data.am: Use @DIR@, not $(@DIR@)
-
-       * data.sed: Use $(datadir), not datadir
-
-       * data.sed: Initial revision
-
-       * data.am: Wrote uninstall targets
-
-       * data.am: Initial revision
-
-       * dist-subd.am (dist): Don't link a file that has already been linked
-
-       * dist-subd-top.am, dist.am (dist):
-       Run `automake --include-deps' before making distribution
-
-       * automake.in: More dependency-tracking bug fixes
-
-       * dist-vars.am (DIST_FILES): Rearranged to be like dist-vars-subd.am
-
-       * dist-subd-vars.am (DIST_FILES): Include DIST_COMMON
-
-       * tags-subd.am, tags.am: Added trailing blank line
-
-       * depend.am: Use ".P", not "empty.P", as placeholder.
-
-       * automake.in: Only include depend.am if SOURCES not empty
-
-       * automake.in: Added --use-deps and --include-deps options.
-       Handle auto-generating dependencies.
-
-       * Makefile.am (am_DATA): Include depend.am
-
-       * depend.am: Initial revision
-
-       * automake.in: Look for acconfig.h, config.h.top, and config.h.bot
-
-       * automake.in: Put blank line after .SUFFIXES
-
-       * scripts.am: Added blank line at end
-
-       * scripts.am: Removed unnecessary comment
-
-       * scripts.am: Removed unnecessary workarounds
-
-       * automake.in: Don't include programs.am if PROGRAMS empty
-
-       * header-vars.am (INSTALL_SCRIPT): Typo
-
-       * texinfos.am, compile-kr.am: Don't include .SUFFIXES
-
-       * automake.in: Handle .SUFFIXES here.
-
-       * configure.in: Use fp_PROG_INSTALL
-
-       * header-vars.am: Changes for autoconf 2.5.
-       Now includes INSTALL_SCRIPTS.
-
-       * texinfos.am (install-info): Bug fix
-
-       * automake.in:
-       Include scripts.am or libscripts.am in output if appropriate
+       * automake.in: Use IO::File.
+       (generate_makefile): Use IO::File.
+       (scan_texinfo_file): Likewise.
+       (handle_aclocal_m4): Likewise.
+       (scan_autoconf_traces): Likewise.
+       (scan_one_autoconf_file): Likewise.
+       (read_am_file): Likewise.
+       (file_contents): Likewise.
+       (create): Likewise.
 
-       * programs.am (install-programs, uninstall-programs):
-       Don't install SCRIPTS
+2001-02-25  Akim Demaille  <address@hidden>
 
-       * Makefile.am (am_DATA): Include scripts.am
+       * automake.in (handle_texinfo): Remove code handled by texinfos.am.
 
-       * scripts.am: Initial revision
+2001-02-25  Akim Demaille  <address@hidden>
 
-Tue Nov 21 09:11:38 1995  Tom Tromey  <address@hidden>
+       * automake.in (&transform): Also call &transform_cond on your
+       arguments.
+       (&handle_dist): Adjust.
+       (&handle_factored_dependencies): Uniq dependencies.
 
-       * automake.in:
-       Cleaned up how "prog_SOURCES" variable is found in input.
-       Ditto prog_OBJECTS.
-       Put static sed scripts into separate, installed files.
+2001-02-25  Akim Demaille  <address@hidden>
 
-       * Makefile.am (am_DATA): Include hack-make.sed and nl-remove.sed
+       * automake.in (&handle_gettext): Simplify redundant `if'.
+       Used &variable_value, don't read %contents directly.
 
-       * hack-make.sed, nl-remove.sed: Initial revision
+2001-02-25  Akim Demaille  <address@hidden>
 
-       * texinfos.am (install-info): Rewrote
+       * automake.in ($install_recursive): Remove, replaced with calls to
+       `&variable_defined ('SUBDIRS')'.
+       (&handle_dist, &handle_clean): Don't transform_cond SUBDIRS since...
+       (&file_contents): now does.
 
-       * subdirs.am (all-recursive): Put with other -recursive rules
+2001-02-25  Akim Demaille  <address@hidden>
 
-       * configure.in: Version 0.20
+       * automake.in (&handle_man_pages): $found is dead.
 
-       * automake.in: Another bug fix
+2001-02-25  Akim Demaille  <address@hidden>
 
-       * automake.in: Bug fix when looking for texinfo.tex
+       Internally just store the conditionals as space separated lists of
+       CONDITIONS (instead of @CONDITIONS@).
 
-       * texinfo.tex: Initial revision
+       * automake.in (&conditional_true_when, &variable_conditions_sub):
+       Split conditions at spaces.
+       (&handle_dependencies, &variable_conditions_permutations): Don't
+       put @ around conditions.
+       (&variable_conditions_cmp): There are no @ to strip.
+       (&make_condition): New.
+       (&define_pretty_variable, &read_main_am_file, &read_am_file): Use
+       it.
+       (&read_main_am_file, &read_am_file): Stop playing with @ by hand.
+       Join @conditional_stack with spaces.
+       (&read_main_am_file): Adjust the output of variables.
+       Output `TRUE = true' under the condition `TEST' as address@hidden@TRUE =
+       true' and no longer address@hidden@TRUE = @address@hidden'.
+       (&variable_conditions_cmp): Rename as...
+       (&by_condition): this.
+       Sort in a human pleasant order.
+       Use it everywhere a human can see conditions.
+       (&variable_conditions_reduce): Don't sort conditions, that's
+       pointless.
+       * tests/cond.test, ctarget1.test, pluseq3.test: Strengthen.
 
-       * automake.in:
-       If TEXINFOS defined but texinfo.tex does not exist, give warning.
+2001-02-25  Akim Demaille  <address@hidden>
 
-       * subdirs.am (all): Renamed from _all.  Now uses all-recursive
-       (all-recursive): Don't fail immediately if -k specified.
+       * automake.in: `my' the globals.
 
-Mon Nov 20 22:48:03 1995  Tom Tromey  <address@hidden>
+2001-02-25  Akim Demaille  <address@hidden>
 
-       * subdirs.am (_all):
-       New target.  Now use Jim Meyering's formulation of AIX
-       workaround.
-       (install-exec, install-data): New targets
+       * automake.in (&initialize_per_input): %targets_conditionals is
+       new.
+       (&read_am_file): When slurping a rule, set the target related
+       variable, and no variable related variable.
+       (&file_contents): Likewise.
+       * tests/vartar.test, tests/ctarget1.test: New.
 
-Sat Nov 18 19:07:30 1995  Tom Tromey  <address@hidden>
+2001-02-25  Akim Demaille  <address@hidden>
 
-       * remake.am (Makefile.in): automake "Makefile", not "Makefile.am"
+       * automake.in (&variable_defined, &variable_value_as_list_worker):
+       If $VAR is effectively a variable, don't die if it's also a
+       target.
+       Plus some formatting changes.
 
-       * automake.in: Use @datadir@
+2001-02-25  Akim Demaille  <address@hidden>
 
-       * automake.in: Added @configure_input@ line
+       * automake.in: Mying changes.
+       * Makefile.am (maintainer-check): Check the stability of the
+       number of uses of `local'.
 
-Fri Nov 17 23:32:43 1995  Tom Tromey  <address@hidden>
+2001-02-25  Akim Demaille  <address@hidden>
 
-       * automake.in: "--help" option now prints auto-recognized file names.
-       Allow AM_ overriding of more variables.
+       * automake.in: Mying changes.
 
-       * texinfos.am (install-info):
-       Don't cd to srcdir to avoid breaking install-sh
-       Other bug fixes
+2001-02-25  Akim Demaille  <address@hidden>
 
-       * Makefile.am: Handle automake.texi
+       * automake.in: Mying changes.
 
-Thu Nov 16 18:43:43 1995  Tom Tromey  <address@hidden>
+2001-02-25  Akim Demaille  <address@hidden>
 
-       * subdirs.am (all): Separated out due to AIX 3.2.5 bug.
+       * automake.in: Mying changes.
+       (&handle_tags): Fix a bug uncovered by the previous mying changes:
+       transform CONFIG into $config, not $xform.
 
-       * tags.am (TAGS): bug fix
+2001-02-25  Akim Demaille  <address@hidden>
 
-       * automake.in: Use am_dir, not AM_DIR.
-       Use version, not VERSION.
-       Bug fix in TAGS code.
+       * automake.in (&handle_texinfo, &handle_man_pages, &am_install_var):
+       Don't deal with install-data-am, install-exec-am and unstall-am.
+       (&initialize_per_input): Add them to %dependencies.
+       Remove %exec_dir_p since the *.am files are now in charge of it.
+       Remove @uninstall, @install_data, @install_exec.
+       (&handle_merge_targets): Adjust to these removals.
+       (&file_contents): Also &transform_cond for --no-installman and
+       --no-installinfo.
+       (&do_one_merge_target): Add some magic to install hooks on
+       %dependencies' targets.
+       (%required_targets): New.
+       (&handle_factored_dependencies): Output required targets.
+       * data.am, header.am, java.am, libs.am, lisp.am, ltlib.am,
+       * mans-vars.am, mans.am, progs.am, python.am, scripts.am,
+       * texinfos.am: Declare your dependencies on install-data-am,
+       install-exec-am and uninstall-am.
+       * tests/instdata2.test (incldata_HEADERS): New test.
 
-       * Makefile.am (am_DATA): Include tags.am and tags-subd.am
+2001-02-24  Tom Tromey  <address@hidden>
 
-       * subdirs.am: TAGS target now in tags.am
+       * Makefile.am (amfiles): Added texibuild.am.
+       * texibuild.am: New file.
+       * tests/Makefile.am (TESTS): Added texinfo9.test.
+       * tests/texinfo9.test: New file.
+       * automake.in (handle_texinfo): Keep track of suffixes used.  Give
+       error if suffix unrecognized.  Removed extraneous newline.
 
-       * footer.am: TAGS and ID targets now in tags-subd.am
+2001-02-23  Akim Demaille  <address@hidden>
 
-       * tags-subd.am, tags.am: Initial revision
+       * automake.in (&am_install_var): Don't hook on the clean targets
+       and .PHONY.
+       * data-clean.am, java-clean.am, libs-clean.am, lisp-clean.am,
+       * ltlib-clean.am, progs-clean.am, python-clean.am, tags-clean.am:
+       Do it.
 
-       * automake.in: Cleaned up AM_PROGRAM code.
-       Handle TAGS target better
+2001-02-23  Akim Demaille  <address@hidden>
 
-       * remake.am, remake-subd.am (Makefile.in): Bug fix.
+       * automake.in: Promote local `my' over `local'.
 
-       * automake.in (usage): Updated
+2001-02-23  Akim Demaille  <address@hidden>
 
-       * remake-subd.am, remake.am:
-       Added rule where Makefile.in depends on Makefile.am
+       * automake.in: Formatting and mying changes.
 
-       * automake.in: Entire body of 'for' loop now in subshell
+2001-02-23  Akim Demaille  <address@hidden>
 
-       * automake.in (common): config.guess and config.sub are common files.
+       * automake.in: Formatting and mying changes.
 
-       * dist-subd-top.am, dist.am (dist): Bug fix.
+2001-02-23  Akim Demaille  <address@hidden>
 
-       * Makefile.am (DIST_OTHER): Don't include TODO
+       * automake.in (&handle_man_pages): Let install-man and
+       uninstall-man be handled by the dependency tracker.
+       (&initialize_per_input): Let %dependencies track them.
+       * mans.am: Add the needed hooks with the proper dependencies.
 
-       * automake.in: Auto-include TODO and THANKS files.
+2001-02-22  Pavel Roskin  <address@hidden>
 
-       * dist-subd-top.am, dist.am (dist): Don't depend on DIST_DIRS
+       * tests/target-cflags.test: Don't use subshell to configure in
+       subdirectory. Typo fix - run `./foo', not `/foo'.
 
-       * automake.in: More bug fixes in "look for Makefile.am" code.
+2001-02-22  Akim Demaille  <address@hidden>
 
-       * automake.in: Bug fix in "look for Makefile.am" code.
+       * automake.in: Formatting and mying changes.
 
-       * automake.in:
-       If no arguments given, look for all Makefile.am's in this
-       directory and in immediate subdirs
+2001-02-21  Tom Tromey  <address@hidden>
 
-       * automake.in: Bug fixes for LDADD-override feature.
+       * automake.in (handle_dist): Introduce new variable to avoid extra
+       keys in %dist_dirs.  Fixes distdir.test.
 
-       * program.am: Use @address@hidden, and put after LDFLAGS
+       * automake.in (handle_texinfo): Only remove suffixes we can
+       handle.
 
-       * automake.in: Allow `prog_LDADD', if specified, to override LDADD.
+       * tests/distdir.test: Check to make sure directory isn't made in
+       build directory.
 
-       * automake.in: Use AM_PROGRAMS, not ALLPROGRAMS, and invert sense.
+       * automake.in (handle_dist): Do nothing in Cygnus mode.
 
-       * header-vars.am (ALL): Use PROGRAMS, not ALLPROGRAMS.
+2001-02-21  Pavel Roskin  <address@hidden>
 
-Wed Nov 15 01:54:43 1995  Tom Tromey  <address@hidden>
+       * header-vars.am: Remove tabs before variable definitions.
 
-       * automake.in: No longer look for _SOURCES or _OBJECTS
+2001-02-21  Akim Demaille  <address@hidden>
 
-       * header-vars.am:
-       Remove "automatically created" header (now in automake).
-       Updated copyright.
+       * tests/distdir.test (EXTRA_DIST): Use a finer pattern to avoid
+       false diagnostics.
 
-       * automake.in: Put version info in Makefile header
+2001-02-21  Akim Demaille  <address@hidden>
 
-Tue Nov 14 23:38:17 1995  Tom Tromey  <address@hidden>
+       * automake.in (&dist_cmp, &target_cmp): Be sure to return a
+       numeric value as required by Perl 5.6.
 
-       * automake.in: Minor cleanups
+2001-02-21  Akim Demaille  <address@hidden>
 
-       * dist-subd-top.am, dist.am (dist):
-       Don't link or copy file if it already exists.
+       * dist-vars.am: Remove, merge into...
+       * distdir.am: this.
+       * automake.in (dirname, basename, backname): Move to the top of
+       the file so that prototypes are checked,
+       Use them without `&'.
+       (&handle_dist): Adjust.
 
-       * automake.in:
-       Look for _SOURCES (common sources) and generate _OBJECTS.
+2001-02-21  Akim Demaille  <address@hidden>
 
-       * footer.am (ID, TAGS): Include HEADERS
+       * automake.in (&check_ambiguous_conditional, &read_main_am_file):
+       Use a uniform naming scheme.
+       (&quote_cond_val, &unquote_cond_val): Delete, dead code.
+       (&read_am_file): Fix conditional definition of backslash continued
+       items.
 
-       * dist-vars.am, dist-subd-vars.am (DIST_FILES): Include HEADERS
+2001-02-21  Akim Demaille  <address@hidden>
 
-Mon Nov 13 22:20:02 1995  Tom Tromey  <address@hidden>
+       Change the handling of conditionals: instead of using an ad-hoc
+       encoding to store a hash in a string, use hashes.
 
-       * dist-subd.am (distdir): Is relative to ".."
+       * automake.in (&conditional_dump): New.
+       (&check_ambiguous_conditional, &variable_defined)
+       (&variable_conditions_sub, &variable_value_as_list_worker)
+       (&define_variable, read_am_file, &read_main_am_file): Be sure to
+       handle `$conditional{$vars}' as a hash instead of a plain string.
 
-       * dist-subd-vars.am (PACKAGE, VERSION): Define
+2001-02-21  Akim Demaille  <address@hidden>
 
-       * dist-subd.am (dist): Don't handle DIST_DIRS.
+       * automake.in (&conditional_true_when): Modernize, simplify.
+       Warning: `$comp' is now private (my), while it used to be
+       `inherited' from a `local' elsewhere in the code.  AFAICT it was
+       wrong, but some dirty side effect might show up.
+       (&conditionals_true_when): New.
+       (&variable_conditions_sub, &variable_conditions_reduce): Use it.
 
-       * mans.am (uninstall-man): Another bug fix.
+2001-02-21  Akim Demaille  <address@hidden>
 
-       * mans.am (uninstall-man): Bug fix.
+       * automake.in ($top_builddir): Remove, used in one place.
+       (&define_standard_variables): Adjust.
+       Move the definition of triplet variables into...
+       * header-vars.am: here.
 
-       * dist.am, dist-subd-top.am (dist): Bug fix
+2001-02-21  Akim Demaille  <address@hidden>
 
-       * Makefile.am (DIST_SUBDIRS): New macro
+       * automake.in (&initialize_global_constants): Don't define $USAGE.
+       (&usage): Handle the former content of $USAGE.
+       Don't pretend autoconf cares about Makefile.in.
+       Classify the options.
+       (&handle_tests): Formatting and mying changes.
 
-       * dist-subd-top.am, dist.am (dist): Handle DIST_SUBDIRS
+2001-02-21  Akim Demaille  <address@hidden>
 
-       * Makefile.am (DIST_OTHER): Include automake.in
+       * automake.in (&handle_tests_dejagnu): Move the definition of a
+       default `site.exp' into...
+       * dejagnu.am (site.exp): here.
+       Use DOS compliant file names.
 
-       * Makefile.am (DISTCLEANFILES): New macro.
+2001-02-21  Akim Demaille  <address@hidden>
 
-       * automake.in (common): Include COPYING.LIB
+       * automake.in (&dist_cmp): New.
+       (&handle_dist): Use it.
+       Promote `my' over `local'.
 
-       * Makefile.am (automake): New rule.
+2001-02-21  Akim Demaille  <address@hidden>
 
-       * texinfos.am (install-info): Changed per GNU standards
+       * dist.am: Remove, merge into...
+       * distdir.am: here.  Use the neat sed snippet for banners.
+       BTW, distcheck is phony.
+       * automake.in (&handle_dist_worker): Remove, merge into...
+       (&handle_dist): this.
+       (&file_contents): Strip leading new lines.
+       Be sure to end comments with new lines.
 
-       * remake-hdr.am (stamp-h.in):
-       Use "touch", not "date", per GNU standards.
+2001-02-21  Akim Demaille  <address@hidden>
 
-       * automake.in (common): Include texinfo.tex
+       * distdir.am (GZIP_ENV): Define.
+       * automake.in (&handle_dist): Don't.
+       (&uniq): New.
+       (&handle_dist_worker, &am_install_var): Use it.
 
-Sun Nov 12 23:59:08 1995  Tom Tromey  <address@hidden>
+2001-02-21  Akim Demaille  <address@hidden>
 
-       * automake.in: More fixes when finding common files.
+       * distdir.am (distdir): Handle the DIST-TARGETS.
+       * automake.in (&handle_dist_worker): Don't.
 
-       * Makefile.am (DIST_OTHER): Another removal.
+2001-02-21  Akim Demaille  <address@hidden>
 
-       * automake.in: Special-case when amdir=.
+       * automake.in (&file_contents): Transform the global options (such
+       as CYGNUS).
+       (&handle_texinfo, &handle_dist_worker, &handle_tests_dejagnu): Don't.
 
-       * Makefile.am (DIST_OTHER): Removed auto-detected files.
+2001-02-21  Akim Demaille  <address@hidden>
 
-       * automake.in:
-       Search for commonly-used files and auto-include them in distribution
+       * distdir.am (distdir): Be sure to have permissive rights on its
+       contents.
+       (dist-all, dist-bzip2, dist-zip, dist-tarZ): New conditional
+       targets.
+       And BTW, all these guys are phony.
+       * automake.in (&handle_dist_worker): As its name doesn't indicate,
+       output distributions.
+       (&handle_dist): As its name doesn't indicate, don't.
+       (&initialize_global_constants): Don't define variables which
+       content is now handled by distdir.am.
+       But register `dist-all' as a factored target.
+       (&handle_factored_dependencies): Don't output empty targets.
+
+2001-02-20  Tom Tromey  <address@hidden>
+
+       * m4/init.m4 (AM_INIT_AUTOMAKE): Simplify m4_pattern_allow
+       invocation.
 
-       * dist-vars.am (DIST_FILES): Include DIST_COMMON.
-       (DIST_CONF): Removed files searched for by automake.
+2001-02-18  Tom Tromey  <address@hidden>
 
-       * automake.in: More arg-parsing bug fixes.
+       * m4/strip.m4 (AM_PROG_INSTALL_STRIP): Don't call AM_PROG_STRIP.
+       Set INSTALL_STRIP_PROGRAM_ENV to `$(STRIP)', not `$STRIP'.
+       (AM_PROG_STRIP): Commented out.
 
-       * Makefile.am (DIST_OTHER): Include install-sh
+2001-02-17  Raja R Harinath  <address@hidden>
 
-       * Makefile.am (DIST_OTHER): Don't include auto-included files.
+       * depcomp (gcc3): Protect against the compiler deleting
+       the dependency output file.
 
-       * automake.in: Bug fixes to argument parsing code.
+2001-02-17  Tom Tromey  <address@hidden>
 
-       * automake.in: Handle --version and --help.
-       NLS stuff from autoconf.
+       * automake.in (handle_merge_targets): Use double quotes around
+       setting of INSTALL_STRIP_PROGRAM.
+       * m4/strip.m4 (AM_PROG_INSTALL_STRIP): Set INSTALL_STRIP_PROGRAM
+       to absolute path at runtime.
+       (AM_PROG_STRIP): Don't explicitly test $STRIP.
 
-       * Makefile.am (amdatadir): Fixed typo.
-       (install): Make install directories
+2001-01-28  Alexandre Duret-Lutz  <address@hidden>
 
-       * Makefile.am: Use "install::", not "install:"
+       * m4/strip.m4: New file.
+       * m4/Makefile.am (m4data_DATA): Add strip.m4.
+       * m4/init.m4: Call AM_PROG_INSTALL_STRIP.
+       * m4/missing.m4 (AM_AUX_DIR_EXPAND): New function.
+       * automake.in (handle_merge_targets): In the install-strip rule,
+       set INSTALL_PROGRAM to INSTALL_STRIP_PROGRAM, and INSTALL_PROGRAM_ENV
+       to INSTALL_STRIP_PROGRAM_ENV; don't use INSTALL_STRIP_FLAG.
+       * progs.am (address@hidden@PROGRAMS): Adapt to use INSTALL_PROGRAM_ENV,
+       don't use INSTALL_STRIP_FLAG any longer.
 
-       * install-sh, mkinstalldirs: Initial revision
+2001-02-16  Alexandre Duret-Lutz  <address@hidden>
 
-       * configure.in: Use AC_PROG_INSTALL
+       * automake.in (scan_one_configure_file): Unquote AC_CONFIG_AUX_DIR's
+       argument.
 
-       * automake.in: Set AM_DIR based on configure results.
+2001-02-16  Alexandre Duret-Lutz  <address@hidden>
 
-       * Makefile.am (install): New target.
-       (amdatadir): New variable.
+       * automake.in (unquote_m4_arg): New function.
+       (scan_one_configure_file): Call unquote_m4_arg on
+       AM_CONFIG_HEADER argument, so that AM_CONFIG_HEADER([foobar.h])
+       works.
 
-       * automake.in: Use "#! /", not "#!/".
+2001-02-15  Tom Tromey  <address@hidden>
 
-       * Makefile.am, configure.in: Initial revision
+       * config.guess, config.sub: New versions from FSF.
 
-       * automake.in: Renamed from "automake".
-       Set VERSION.
+       * Makefile.am (WGET): New macro.
+       (FETCHFILES): New macro.
+       (fetch): New target.
 
-       * dist.am (PACKAGE, VERSION): Now in dist-vars.am
+       * tests/subobj3.test: Exit with status 77 if gcc not found.
+       * tests/pr9.test: Exit with status 77 if gzip not found.
+       * tests/pr87.test: Exit with status 77 if gcc not found.
+       * tests/pr19.test: Exit with status 77 if gzip or gcc not found.
+       * tests/install2.test: Exit with status 77 if gzip not found.
+       * tests/exsource.test: Exit with status 77 if GNU make not found.
+       * tests/ansi3.test: Exit with status 77 if gcc not found.
 
-       * automake.in: Insert remake-subd.am if appropriate.
+       * tests/target-cflags.test: Require GNU make.  Exit with status 77
+       if gcc or make not found.  Fixes PR automake/121.
 
-       * subdirs.am (TAGS): Include $(CONFIG_HEADER) when making tags.
+       * configure.in: Require Perl 5.005.
+       * automake.in: Require 5.005.
 
-       * automake.in: Handle ALLPROGRAMS variable.
+       * automake.texi (Top): Conditionalize on `nottex', not `info'.
+       Fixes PR automake/122.
 
-       * header-vars.am (ALL): Use ALLPROGRAMS, not PROGRAMS.
+2001-02-14  Tom Tromey  <address@hidden>
 
-       * automake.in: Fixlet when printing "subdir=DIR"
+       * automake.in (add_depend2): Only emit a given object rule once.
+       Fixes specflags6.test.
 
-       * automake.in: Put "subdir=DIR" into subdir Makefile
+2001-02-14  Richard Boulton  <address@hidden>
 
-       * automake.in: Don't refer to distname.am.
-       Only put footer.am in subdir Makefiles.
+       * tests/specflags6.test: New file.
 
-       * subdirs.am (id, ID): New target.
-       (.NOEXPORT): Copied from footers.am.
+2001-02-14  Tom Tromey  <address@hidden>
 
-       * subdirs.am (TAGS): Bug fixes.
+       * automake.texi (A Shared Library): Mention -module.
 
-       * subdirs.am (TAGS): Don't fail if a subdir doesn't have TAGS target.
+2001-02-13  Tom Tromey  <address@hidden>
 
-       * subdirs.am (maintainer-clean-local): Remove TAGS
+       * automake.in (do_one_merge_target): Always register $name and
+       $name-am as phony.
 
-       * subdirs.am (TAGS): Make tags file that includes all subdir tags files
+       * automake.in (do_one_merge_target): Register `all' as phony
+       target.
 
-       * subdirs.am: Use maintainer-clean, per GNU standards
+       * configure.in: Updated to 1.4e for cvs.
 
-       * dist-subd-top.am: Some variables defined in dist-vars.am
+2001-02-12  Tom Tromey  <address@hidden>
 
-       * dist-vars.am (PACKAGE, VERSION):
-       New variables, initialized by configure
+       * configure.in: Updated to 1.4d and released.
 
-       * footer.am (id, ID): New targets
-       (TAGS): Put TAGS file in build, not source, directory
+       * m4/init.m4 (AM_INIT_AUTOMAKE): Explicitly allow various AM_*
+       names through autoconf.
 
-       * remake-subd.am (Makefile): Don't assume subdir is 'src'
+       Fix for subdirbuiltsources.test:
+       * automake.in (initialize_per_input): [all_target] Initialize to
+       empty string.
+       (handle_merge_targets): Use all-redirect target to handle built
+       sources.
+       (do_one_merge_target): Don't generate all-redirect rule.
 
-       * dist.am: Changed to assume PACKAGE and VERSION are set by configure.
+2001-02-11  Peter Muir  <address@hidden>
 
-       * dist-subd.am: Changed to conform to new top-level dist target.
+       * tests/subdirbuiltsources.test: New file.
+       * tests/Makefile.am (TESTS): Added new file.
 
-       * dist-subd-top.am:
-       Changed to assume PACKAGE and VERSION are set by configure.
+2001-02-10  Tom Tromey  <address@hidden>
 
-       * clean-kr.am, clean.am (maintainer-clean):
-       Updated rules per GNU standards.
+       * tests/condlib.test: New file.
+       * tests/Makefile.am (TESTS): Added new file.
 
-       * clean.am, clean-kr.am (maintainer-clean): Renamed from realclean.
+2001-02-10  Lars J. Aas  <address@hidden>
 
-Sat Nov  5 14:39:50 1994  djm  <address@hidden>
+       * automake.in ($MACRO_PATTERN): Include '@' in name regex.
+       (&canonicalize): New. Includes '@' in canonical range.
+       (&check_canonical_spelling, &handle_programs, &handle_libraries,
+       &handle_ltlibraries, &handle_texinfo): Use &canonicalize.
 
-       * automake.in, texinfos.am: kludge for multiple-part info files
+2001-02-10  Raja R Harinath  <address@hidden>
 
-Thu Nov  3 13:33:44 1994  djm  <address@hidden>
+       * automake.in (handle_configure): Revert part of
+       '2001-02-04  Kevin Ryde <address@hidden>'.  Don't
+       set CONFIG_COMMANDS explicitly.
 
-       * clean.am, clean-kr.am: remove INFOS
+2001-02-09  Raja R Harinath  <address@hidden>
 
-Wed Nov  2 06:15:42 1994  djm  <address@hidden>
+       * depcomp (gcc3): Propagate exit code.
 
-       * texinfos.am: add path
+2001-02-09  Lars J. Aas  <address@hidden>
 
-       * remake.am, remake-hdr.am: account for VPATH limitations
+       * header.am (address@hidden@HEADERS): s,?!NOBASE?,?!BASE?, (typo)
 
-Mon Oct 24 23:01:59 1994  djm  <address@hidden>
+2001-02-09  Tom Tromey  <address@hidden>
 
-       * automake.in, dist-subd-top.am, dist-subd.am, dist.am, header-vars.am, 
libprograms.am, programs.am:
-       handle SCRIPTS and LIBSCRIPTS similar to PROGRAMS
+       Clean up maintainer-check warnings:
+       * Makefile.am (maintainer-check): Ignore comment lines in CDPATH
+       check.
+       * automake.in (handle_dist_worker): Removed redundant `my $xform'.
 
-Sun Oct 23 01:50:41 1994  djm  <address@hidden>
+2001-02-09  Akim Demaille  <address@hidden>
 
-       * texinfos.am: install-info depends on info files
+       * automake.in (&file_contents): Remove a dead branch.
 
-       * dist-subd-vars.am, dist-vars.am: distrib info files
+2001-02-09  Akim Demaille  <address@hidden>
 
-Sun Oct  2 02:03:06 1994  djm  <address@hidden>
+       * automake.in (&transform): Use `my', not `local'.
+       (&transform_cond): New.
+       (&get_object_extension, &handle_texinfo, &handle_tags)
+       (&handle_dist_worker, &handle_dist, &add_depend2, &handle_clean)
+       (&handle_tests_dejagnu): Use it.
+       * texinfos.am, lisp.am, header.am, dist.am, distdir.am, depend2.am
+       * dejagnu.am, data.am, clean.am: Adjust to the new syntax.
 
-       * clean-kr.am, clean.am: fix up distclean
+2001-02-09  Akim Demaille  <address@hidden>
 
-       * subdirs.am: fix typo
+       * automake.in: Various formatting changes, and modernization of
+       Perl constructs.
+       (&backname): New.
+       (&handle_configure, define_standard_variables): Use it.
 
-       * clean.am: do more in distclean
+2001-02-08  Tom Tromey  <address@hidden>
 
-Sat Oct  1 23:52:51 1994  djm  <address@hidden>
+       * automake.in (file_contents): Only add $actions if any are
+       found.  Fixes new failure in pr87.test.
 
-       * libraries.am: make install depend on all
+2001-02-08  Pavel Roskin  <address@hidden>
 
-       * automake.in: fix typo
+       * tests/pr87.test: Check foo/Makfile.in after it is created.
 
-Wed Sep 28 21:15:26 1994  djm  <address@hidden>
+2001-02-08  Tom Tromey  <address@hidden>
 
-       * dist-subd-vars.am, dist-vars.am, header-vars.am: fix doc bugs
+       * tests/pr87.test: Added check for blank line after `.c.o' rule.
+       Report from Lars J. Aas.
 
-       * automake.in, compile-vars.am, dist.am: fix dist for no subdirs
+2001-02-07  Lars J. Aas  <address@hidden>
 
-       * dist-subd-top.am: Initial revision
+       * lisp.am (address@hidden@LISP): Removed extra space.
+       * header.am (address@hidden@HEADERS): Removed extra space.
+       * data.am (address@hidden@DATA): Removed extra space.
 
-       * automake.in, header-vars.am, libraries-vars.am, mans-vars.am, 
texinfos-vars.am:
-       centralize prefix var setting
+2001-02-07  Tom Tromey  <address@hidden>
 
-       * header-vars.am: set all the std vars based on prefix
+       * m4/init.m4 (AM_INIT_AUTOMAKE): Use \", not ".
 
-Tue Sep 27 01:32:22 1994  djm  <address@hidden>
+       * automake.in (handle_dependencies): Use _am_include, not
+       AMINCLUDE.
+       * tests/exsource.test: Use _am_include, not AMINCLUDE.
+       * m4/make.m4 (AM_MAKE_INCLUDE): Use _am_include, not AMINCLUDE.
 
-       * automake.in: don't add kr stuff if not needed
+       * tests/Makefile.am (XFAIL_TESTS): Removed distcommon.test.
 
-       * dist-vars.am: add config vars to dist
+       * tests/Makefile.am (EXTRA_DIST): Added ChangeLog-old.
 
-Mon Sep 26 23:09:09 1994  djm  <address@hidden>
+       * automake.in (handle_configure): Handle case where output file is
+       in subdir with no Makefile of its own.  Fixes remake3.test,
+       distcommon.test.
 
-       * program.am: add LDADD
+2001-02-06  Pavel Roskin  <address@hidden>
 
-       * compile-vars.am: remove LDADD from LDFLAGS
+       * automake.in (handle_dependencies): Rename AM_INCLUDE to
+       AMINCLUDE.
+       * m4/make.m4 (AM_MAKE_INCLUDE): Likewise.
+       * tests/exsource.test: Likewise.
 
-       * clean.am: move knr stuff to another file
+2001-02-06  Derek Price  <address@hidden>
 
-       * automake.in: use different clean file for ansi2knr
+       * automake.in (handle_configure): Fix syntax error.
 
-       * clean-kr.am: Initial revision
+2001-02-06  Akim Demaille  <address@hidden>
 
-Thu Sep 22 03:45:02 1994  djm  <address@hidden>
+       * subdirs.am: This file is the exception: clean recursive targets
+       are called by the clean targets, not the clean-am targets.
+       Otherwise we have a circular dependency: clean -> clean-am ->
+       clean-recursive -> clean.
+       * automake.in (handle_clean): Bind `-local' targets to `-am'
+       targets, not top targets.
+       Don't declare -recursive dependencies of the clean targets:
+       `subdirs.am' did it.  Less hard coded knowledge, transfered
+       into...
+       * clean.am: here.
 
-       * automake.in, dist-subd.am, dist.am: fix rules and dist
+2001-02-06  Akim Demaille  <address@hidden>
 
-Tue Sep 20 21:29:40 1994  djm  <address@hidden>
+       Monstro unsplitable patch.
 
-       * compile.am, automake.in: split out knr
+       The aim is to remove hard coded knowledge about clean targets from
+       automake.in, leaving them in the *.am files.
+       In addition to the mechanic needed to factor some dependencies, it
+       appears some rules (most notably distclean and maintainer-clean)
+       need factored actions.  So first, be ready to catch factored
+       rules.
 
-       * compile-kr.am: Initial revision
+       * automake.in (&file_contents): For the time being, use an extended
+       $RULE_PATTERN which is able to match any kind of rules, with or
+       without dependency, with or without actions.
+       Handle all the rules uniformly, storing in %actions the factored
+       actions.
+       (&flatten, &target_cmp): New.
+       (&handle_factored_dependencies): Output the %actions.
+       No longer special case `clean'.
+       Output the rules in alphabetical order, but keeping `.PHONY' last.
 
-       * libprograms.am: fix typo
+       Now we must not use &push_phony_cleaners, which is doing all sort
+       of magic to push a bit of everything in all the clean targets.
+       The biggest problem being that, making a Cartesian product, it
+       requires many useless targets.  The `*.am' file know better.
+       But first, register the new factored rules.
 
-       * automake.in, clean.am, compile-vars.am, header-vars.am, 
libprograms.am:
-       make libprograms work
+       * automake.in (&initialize_per_input): Include clean, mostlyclean,
+       maintainer-clean, distclean and their `*-am' counterpart in
+       %dependencies.
+       Initialize %actions.
+       (get_object_extension, handle_texinfo, handle_tags, handle_multilib)
+       handle_dependencies, handle_subdirs, handle_configure, handle_clean)
+       (handle_emacs_lisp, handle_python): Don't play with
+       &push_phony_cleaners nor &depend and `clean'.
+       * texinfos.am, texi-vers.am, tags-clean.am:
+       * subdirs.am,python-clean.am, multilib.am, lisp-clean.am:
+       * libtool.am, kr-extra.am, depend.am, compile.am, clean.am:
+       * clean-kr.am, clean-hdr.am: Do it.
+       Whenever a target is empty, just remove it, it will no longer be
+       called.
 
-       * libprograms.am: Initial revision
+       There is still some magic about clean to hard code.  But really,
+       that's the end of &do_one_clean_target.
 
-       * automake.in, compile.am, header-vars.am: fix little bugs
+       * automake.in (&do_one_clean_target): Kaboom out.
+       (&handle_clean): Rewrite the magic code.
+       (&am_install_var): No longer use &push_phony_cleaners, nor depend
+       on `clean'.
+       (&push_phony_cleaners): Kaboom too.
+
+2001-02-06  Akim Demaille  <address@hidden>
+
+       * automake.in (do_one_clean_target): Don't hard code knowledge
+       about libtool, and maintainer-clean.
+       * clean.am, libtool.am: Handle these.
+
+2001-02-05  Akim Demaille  <address@hidden>
+
+       * automake.in (handle_texinfo): No longer hard code the clean
+       targets.
+       (texinfos.am): Include them.
 
-       * compile.am: allow parallel K&R
+2001-02-05  Akim Demaille  <address@hidden>
 
-       * clean.am: remove kerb temps
+       * Makefile.am (perl4-check): Remove, we now require Perl 5.
+       (maintainer-check): Don't be silent when you find a problem, and
+       actually, even specify the locations.
+       Also check that @_ is assigned to arrays.
 
-       * automake.in: fix recognizing start of rules
+2001-02-05  Akim Demaille  <address@hidden>
 
-       * dist-subd.am, dist.am: fix dist
+       * m4/regex.m4: Use AC_LIBSOURCES.
+       * automake.in (scan_autoconf_traces): Trace AC_LIBSOURCE, not
+       _AC_LIBOBJ_DECL.
 
-       * automake.in, compile.am, footer.am, texinfos.am: fix ansi2knr
+2001-02-04  Tom Tromey  <address@hidden>
 
-Mon Sep 19 23:39:21 1994  djm  <address@hidden>
+       * m4/Makefile.am (m4data_DATA): Added make.m4.
+       * automake.in (handle_dependencies): Use @AM_INCLUDE@ to include
+       dependency files.
+       * m4/depend.m4 (AM_DEPNDENCIES): Require AM_MAKE_INCLUDE.
+       Copy depcomp to subdir.
+       * m4/make.m4: New file.
 
-       * automake.in: works on m4 too
+2001-02-04  Pavel Roskin  <address@hidden>
 
-       * automake.in, mans.am: works on fileutils
+       * automake.in (handle_dist_worker): Remove a line that is now
+       in distdir.am.
 
-       * automake.in, clean.am, compile.am, dist-subd.am, dist.am, footer.am, 
header-vars.am, header.am, libraries.am, library.am, mans-vars.am, mans.am, 
programs.am, remake-hdr.am, remake-subd.am, remake.am, subdirs.am, texinfos.am:
-       works on fileutils except for all
+2001-02-04  Kevin Ryde  <address@hidden>
 
-       * automake.in: vars thing
+       * automake.in (handle_configure): Call config.status with empty
+       CONFIG_LINKS and CONFIG_COMMANDS when regenerating a file.
 
-       * header-vars.am: Initial revision
+2001-02-04  Tom Tromey  <address@hidden>
 
-       * texinfos-vars.am, mans-vars.am, libraries-vars.am, dist-vars.am, 
dist-subd-vars.am:
-       entered into RCS
+       * depcomp (ddashmd): Removed case.
+       (sgi): Handle failure exit correctly
+       (aix): Likewise.  Also, add dummy `.h' targets.
 
-       * compile-vars.am: Initial revision
+2001-02-04  Akim Demaille  <address@hidden>
 
-       * automake.in: many improvements
+       * distdir.am (distdir): New file, extracted from...
+       * automake.in (handle_dist_worker): here.
+       Adjust.
 
-       * footer.am: Initial revision
+2001-02-04  Akim Demaille  <address@hidden>
 
-       * dist.am: remove distname
+       * automake.in (@clean): Remove, replaced by...
+       ($dependencies{'clean'}): this.
+       Use `&depend' instead of push'ing into @clean.
+       (handle_factored_dependencies): For the time being, skip 'clean'.
+       (do_one_clean_target): Don't ask for argument 1 and 4 as they are
+       always `clean', and address@hidden'.
 
-       * automake.in: namespace cleanup
+2001-02-04  Akim Demaille  <address@hidden>
 
-       * distname.am: Initial revision
+       * automake.in (%dependencies): Don't be initialize globally for
+       all the files, but in...
+       (&initialize_per_input): here.
+       (&depend): New.
+       (@phony): Replace all occurrences with the corresponding &depend
+       invocation.
 
-       * automake.in, clean.am, compile.am, dist-subd.am, dist.am, header.am, 
libraries.am, library.am, mans.am, program.am, programs.am, remake-hdr.am, 
remake.am, subdirs.am, texinfos.am:
-       might work
+2001-02-03  Tom Tromey  <address@hidden>
 
-       * mans.am, libraries.am, texinfos.am, library.am, compile.am, 
program.am, programs.am, clean.am, subdirs.am, remake-subd.am, remake.am, 
remake-hdr.am, dist.am, dist-subd.am, header.am, automake.in:
-       Initial revision
+       * header.am (address@hidden@HEADERS): Use INSTALL_HEADER.
+       * header-vars.am (INSTALL_HEADER): New macro.
 
+       * automake.texi (Rebuilding): New node.
diff --git a/ChangeLog.1996 b/ChangeLog.1996
new file mode 100644
index 0000000..9027b0d
--- /dev/null
+++ b/ChangeLog.1996
@@ -0,0 +1,3678 @@
+Wed Dec 18 15:27:09 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (read_am_file): Sort configure_vars before adding to
+       output_vars.
+       (handle_yacc_lex_cxx): Sort de_ansi_objects.
+       (handle_man_pages): Sort %section keys.
+
+Tue Dec 10 00:41:17 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (AC_SUBST_PATTERN): Check for alphanumeric variable
+       names only.  Test subst.test.
+       (scan_one_configure_file): Skip AC_DEFUN lines.  Test
+       defun2.test.
+
+Mon Dec  9 08:18:42 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (file_contents_with_transform): Use ne, not !=, to
+       compare strings.  Compare against correct string.  From Jim
+       Meyering.
+       (handle_texinfo): Use rm -f to remove info files.  From Gord
+       Matzigkeit.
+
+       * Released 1.1l.
+
+       * automake.in (handle_texinfo): Put .ps on @suffixes.
+
+Sun Dec  8 12:29:52 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (am_install_var): Directory with 'exec' in its name
+       is installed by install-exec.
+
+       * subdirs.am (maintainer-clean-recursive): Make commands quiet.
+       * texinfos.am: Make commands quiet.
+       * scripts.am: Make commands quiet.
+       * progs.am: Make commands quiet.
+       * ltlibs.am: Make comamnds quiet.
+       * lisp.am: Make commands quiet.
+       * libs.am: Make commands quiet.
+       * header.am: Make commands quiet.
+       * data.am: Make commands quiet.
+
+       * automake.in (variable_value_as_list): Handle := substitution
+       references.
+       (am_conf_line_error): Take file argument.  Changed all callers.
+       (scan_one_configure_file): Skip config header of [$1].
+       (scan_dependency_file): Don't add top_builddir to regex if it is
+       ".".  Don't include top_builddir in output if it is ".".
+       (scan_one_configure_file): Skip version of [$2].
+
+Sat Dec  7 11:34:39 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (scan_one_configure_file): New sub.
+       (scan_configure): Scan aclocal.m4 as well as configure.in.
+       (handle_configure): Makefile.in now depends on $(ACLOCAL), because
+       automake scans it.
+
+       * automake.in (handle_configure): Put full path to file onto
+       @rewritten_inputs.  Test output4.test.
+
+       * automake.in (handle_configure): Put proper name onto @inputs.
+       Test output3.test.
+
+       * automake.in (handle_configure): Pass correct args to automake
+       invocations.  Test remake2.test.
+
+       * automake.in (handle_configure): Check dirname of $file, not of
+       $local.  Test output2.test.
+
+       * automake.in (handle_dependencies): Added some missing ";"s in
+       transforms.
+       (get_object_extension): Ditto.
+       (handle_tags): Ditto.
+       (handle_tests): Ditto.
+       (read_am_file): Ditto.
+       (am_install_var): Ditto.
+       (file_contents_with_transform): Die if transform missing trailing
+       ";".
+
+       * automake.in (am_install_var): Quote $ in regexp substitution.
+       From Ulrich Drepper.
+
+Fri Dec  6 18:54:10 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_configure): Require actual input files, not
+       rewritten input files.  From Ulrich Drepper.
+
+Thu Dec  5 02:52:20 1996  Tom Tromey  <address@hidden>
+
+       Suggestion from Mark Galassi:
+       * texinfos.am (DVIPS): New macro.
+       (.dvi.ps): New rule.
+
+       * automake.in (handle_dependencies): Check to make sure
+       --build-directory specified before searching for .P files.
+       (handle_configure): Correctly handle ":" syntax when running
+       config.status.
+
+       * remake.am: Removed rules to regenerate Makefile and Makefile.in;
+       now handled by handle_configure.
+
+       * remake-subd.am: Removed.
+
+       * automake.in (scan_configure): Handle multiple ":"s in AC_OUTPUT
+       arg.
+       (parse_arguments): Ditto.
+       (handle_configure): Ditto.
+       (%other_output_files): Removed.
+       (rewrite_inputs_into_dependencies): New sub.
+       (handle_configure): Use it.
+       (handle_configure): Ditto.
+
+       From Gord Matzigkeit:
+       * automake.in (generate_makefile): Handle ":" in AC_OUTPUT arg.
+       (handle_configure): Ditto.
+
+       * automake.in (handle_single_transform_list): .S is assembly
+       source.  From Anthony Green.
+
+       * automake.in (handle_single_transform_list): Correctly rewrite
+       C++ and Fortran source to objects ending in ".o".  Test
+       cxxo.test.
+
+       * automake.in: Better error message if file missing.
+
+       * aclocal.in (@obsolete_macros): ud_GNU_GETTEXT is obsolete.
+       * automake.in (handle_gettext): Use AM_GNU_GETTEXT, not
+       ud_GNU_GETTEXT.
+       (scan_configure): Ditto.  ud_GNU_GETTEXT is now obsolete.
+
+Wed Dec  4 00:41:23 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (scan_configure): Skip empty elements when adding to
+       libsources.  Perl 4 bug reported by Greg A Woods.
+
+       * Makefile.am (perl4-check): New target.
+       (cvs-dist): Run perl4-check.
+
+       Perl 4 fixes.  Reported by Greg A. Woods:
+       * automake.in (file_contents_with_transform): If transform caused
+       all chars to go away, then skip rest of loop.
+       (handle_texinfo): Don't use "next" in arg to
+       file_contents_with_transform.
+       (handle_dependencies): Ditto.
+       (handle_tests): Ditto.
+
+       * m4/regex.m4 (AM_WITH_REGEX): Check for GNU regex in libc.  From
+       Andreas Schwab.
+
+       * automake.in (parse_arguments): Removed --strictness.
+       (handle_dist_worker): Don't use --strictness.
+       (handle_configure): Ditto.
+       (initialize_global_constants): Don't mention --strictness.
+
+       * automake.in (handle_merge_targets): Use all-recursive-am instead
+       of all-recursive-hack.  The latter is ugly, according to Joel
+       Weber.
+
+       * automake.in (handle_emacs_lisp): Push $(ELCFILES) onto @all.
+
+       * automake.in (do_one_clean_target): Allow -local version of clean
+       targets.
+
+Tue Dec  3 18:58:40 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_dependencies): Skip C-only lines in
+       depend2.am when appropriate.
+       * depend2.am (.deps/%.P): Omit modification of $o if language is
+       not C.
+
+Tue Dec  3 11:29:01 1996  Gordon Matzigkeit  <address@hidden>
+
+       * compile-kr.am: Quote arguments to echo.
+
+       * progs.am: Fix up problems when LIBTOOL is not defined (by
+       setting shell variable instprog to the installation program).
+
+       * aclocal.in (scan_file): Allow the acinclude.m4 file to override
+       any other macro files (but still prevent multiple definitions
+       within acinclude.m4).
+
+Tue Dec  3 10:40:48 1996  Tom Tromey  <address@hidden>
+
+       From Ulrich Drepper:
+       * automake.in (handle_emacs_lisp): Typo fix.
+       (scan_configure): Only recognize VERSION after whitespace.
+
+       * texinfos.am: install-info requires path to info file.
+
+       * progs.am: Use @LIBTOOL@, not $(LIBTOOL).
+
+       * automake.in (am_install_var): If -ltlibs passed, substitute
+       @address@hidden
+
+Mon Dec  2 13:51:11 1996  Gordon Matzigkeit  <address@hidden>
+
+       * automake.in (get_object_extension): Unshift ansi2knr onto the
+       all target, so that it builds before any other targets.
+       [de_ansi_objects]: Delete, since unshifting ansi2knr is an easier
+       solution.
+
+Mon Dec  2 12:13:27 1996  Tom Tromey  <address@hidden>
+
+       * Released 1.1i.
+
+       From Janos Farkas:
+       * automake.in (handle_texinfo): Must quote $ for make.
+
+Sun Dec  1 15:08:09 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_configure): Correctly handle common case of
+       multiple non-Makefiles in AC_OUTPUT.  Require all input files when
+       using ":" syntax.
+
+Sun Nov 24 00:33:50 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_source_transform): Don't define
+       EXTRA_prog_SOURCES unnecessarily.  Test extra2.test.
+
+       * automake.in (initialize_per_input): New variables
+       included_generic_compile, included_knr_compile,
+       included_libtool_compile.
+       (get_object_extension): Use them.
+
+       * automake.in (handle_single_transform_list): Removed
+       Objective-C/C++ support (didn't really work anyway).
+       (handle_single_transform_list): Handle assembly specially.
+
+       * automake.in (handle_yacc_lex_cxx): Set --mode=compile or
+       --mode=link when running libtool.
+
+       * ltlibs.am: Set --mode=install when running libtool.
+       (address@hidden@PROGRAMS): Set --mode=uninstall when running
+       libtool.
+       * libtool.am (.c.lo): Set --mode=compile when running libtool.
+       * progs.am: Set --mode=install when running libtool.
+
+       Fix for bug reported by François Pinard:
+       * automake.in (do_check_merge_target): New sub.
+       (do_one_merge_target): No longer handle `check'.
+       (handle_merge_targets): Use do_check_merge_target.
+       (initialize_per_input): Set @check_tests.
+       (handle_tests): Push onto @check_tests, not @check.
+
+       * automake.in (am_install_var): Typo fix.
+       (handle_configure): Require $inputs[0].
+
+Fri Nov 22 00:01:45 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_lib_objects): Fixed error message
+       processing.
+
+Thu Nov 21 22:29:30 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (scan_configure): AC_FUNC_FNMATCH doesn't add to
+       LIBOBJS.
+       (handle_configure): Support multi-":" mode for AC_OUTPUT.
+
+       * m4/header.m4: New file.
+
+       * automake.in (scan_configure): Recognize AM_CONFIG_HEADER.
+
+Wed Nov 20 00:23:42 1996  Tom Tromey  <address@hidden>
+
+       * acinstall: Allow commentary at end of "serial" line.  From Gord
+       Matzigkeit.
+
+       * automake.in (handle_yacc_lex_cxx): Only replace output header if
+       it has changed.
+
+Tue Nov 19 19:03:30 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (am_primary_prefixes): Allow configure variables to
+       be named after primary.
+       (am_install_var): Ditto.
+
+       * automake.in (initialize_per_input): Initialize output_header.
+       (generate_makefile): Set up output_header; print it before
+       output_rules.
+       (handle_footer): Put .SUFFIXES into output_header, for AIX.
+
+Mon Nov 18 19:11:53 1996  Gordon Matzigkeit  <address@hidden>
+
+       * automake.in: Added a lot of libtool support.  New variable
+       prog_LDFLAGS to pass linker flags.  Use libtoolize to install
+       libtool support files.
+
+Mon Nov 18 13:29:55 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_lib_objects): Push @LIBOBJS@ and @ALLOCA@
+       onto dependency list.
+
+       * aclocal.in (obsolete_macros): Include AM_SANITY_CHECK_CC; now
+       part of autoconf proper.
+       * m4/ccsanity.m4: Removed.
+
+Sun Nov 17 12:25:17 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (check_typos): Check to make sure EXTRA_ variables
+       don't contain configure subs.
+       (handle_dist_worker): Removed EXTRA_DIST_DIRS; not needed.
+
+Fri Nov 15 18:58:04 1996  Tom Tromey  <address@hidden>
+
+       * tags-subd.am: Removed.
+
+       * tags.am (tags-recursive): Removed.
+       (TAGS): Depend on @DIRS@, @address@hidden  Use @CONFIG@ in rule.
+       (ID): From tags-subd.am.
+       
+       * aclocal.in (obsolete_macros): Include AM_FUNC_FNMATCH.
+       * automake.in (scan_configure): Recognize AC_FUNC_FNMATCH.
+       * m4/fnmatch.m4: Removed (now in autoconf).
+
+       * automake.in (initialize_per_input): Init de_ansi_objects.
+       (handle_single_transform_list): Error if extension unrecognized.
+       Set elements of de_ansi_objects.
+       (get_object_extension): Don't push ANSI2KNR onto @all.
+       (handle_yacc_lex_cxx): Put ANSI2KNR into dependency of all ._o
+       files.
+       (pretty_print_internal): Initialize $bol depending on the column.
+
+Fri Nov 15 16:22:15 1996  Gordon Matzigkeit  <address@hidden>
+
+       * library.am: Fixed references to LIBRARY according to new scheme.
+
+       * libs.am, libs-clean.am: Removed references to LIBFILES.
+
+       * automake.texi (A Library): doc fix
+
+       * automake.in (handle_libraries): Deleted references to *LIBFILES,
+       since we now have the full library name in the *LIBRARIES
+       variable.
+       (am_install_var): Removed `-no-all' option, which was only required
+       for the LIBFILES hack.
+
+Fri Nov 15 16:39:29 1996  Tom Tromey  <address@hidden>
+
+       * automake.in: Applied libtool-related patches from Gord.
+       (scan_configure): Set CC configure var if AM_PROG_LIBTOOL seen.
+       Also indicate that AC_CANONICAL_HOST was run.
+
+       * Makefile.am (pkgdata_DATA): Removed aclocal.m4.
+
+Thu Nov 14 23:11:09 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_yacc_lex_cxx): Don't auto-define YACC, LEX,
+       CXX, CC.
+
+       * dejagnu.am: Print warning if runtest missing.
+
+       From Joerg-Martin Schwarz:
+       * automake.in (handle_aclocal_m4): Find aclocal.m4 in srcdir.
+       (require_file_internal): Unlink file before creating it.
+
+       * depend2.am (.deps/%.P): Don't print commands when running.
+
+Mon Nov 11 10:35:08 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_single_transform_list): Simplified C++
+       matching expression.
+
+Fri Nov  8 09:49:09 1996  Tom Tromey  <address@hidden>
+
+       * Released 1.1g.
+
+       * compile-kr.am ($(OBJECTS)): Removed.
+
+       * automake.in (get_object_extension): Define ANSI2KNR.  Push onto
+       @all if ansi2knr is in this directory.
+
+       * configure.in: Don't run AC_ARG_PROGRAM, AC_PROG_MAKE_SET.
+
+       * m4/init.m4: Run AM_SANITY_CHECK.
+
+       * m4/sanity.m4: New file.
+
+       * automake.in (handle_dist_worker): In Cygnus mode, possibly find
+       files to dist in build dir, not srcdir.
+       (%omit_dependencies): New global.
+       (scan_dependency_file): Handle OMIT_DEPENDENCIES.
+       (scan_configure): Put rx.h, regex.h on %omit_dependencies.  Ditto
+       libintl.h.
+       (handle_tests): Remove CYGNUS strings in Cygnus mode.
+       (handle_texinfo): Ditto.
+
+       * texinfos.am (dist-info): New target.
+
+       * automake.in (handle_dist_worker): Use DISTFILES, not
+       DEP_DISTFILES.
+       (initialize_per_input): Initialize dist_targets.
+       (handle_texinfo): Don't compute @infos_list; don't define or use
+       INFOS.  Put dist-info onto @dist_targets.
+       (handle_dist_worker): Handle @dist_targets.  Don't use the "echo
+       trick" for expanding DISTFILES any more.
+
+       * dist-vars.am (DEP_DISTFILES): Removed.
+       (DISTFILES): Don't include INFOS.
+
+       * automake.in (handle_texinfo): Handle Cygnus mode.
+       * texinfos.am (.texi.info, .texinfo.info): Handle Cygnus mode.
+
+       * automake.in (handle_single_transform_list): New sub.
+       (handle_source_transform): Use it.
+       (handle_built_sources): New sub.
+
+Thu Nov  7 14:49:16 1996  Tom Tromey  <address@hidden>
+
+       * remake.am ($(srcdir)/Makefile.in): Pass @ARGS@ to automake.
+       * remake-subd.am ($(srcdir)/Makefile.in): Pass @ARGS@ to
+       automake.
+       * automake.in (handle_configure): Pass --cygnus when running
+       automake again.
+
+       * remake-hdr.am ($(srcdir)/stamp-h.in): Depend on @FILES@, not
+       ACCONFIG, CONFIG_TOP, CONFIG_BOT.
+       * automake.in (handle_aclocal_m4): Always find aclocal.m4 in
+       top_srcdir.
+       (handle_configure): Don't define ACCONFIG, CONFIG_TOP, CONFIG_BOT;
+       instead substitute files directly.
+
+Wed Nov  6 10:22:26 1996  Tom Tromey  <address@hidden>
+
+       * remake-hdr.am (stamp-h): Look in top_builddir for
+       config.status.
+       ($(srcdir)/stamp-h.in): Look in top_srcdir for configure.in.
+
+Thu Oct 31 10:55:59 1996  Tom Tromey  <address@hidden>
+
+       * texinfos.am (.texi.dvi): Set MAKEINFO when running texi2dvi.
+       From Jim Meyering.
+
+       * automake.in (handle_texinfo): Push install-info-am, not
+       install-info.
+       (handle_merge_targets): Handle no-installinfo option.
+
+       * texinfos.am (install-info-am): Renamed from install-info.
+
+       * automake.in (handle_subdirs): Include install-info-recursive if
+       no-installinfo given.
+
+       * subdirs.am: Include INSTALLINFO token.
+
+       * automake.in (handle_texinfo): Explicitly define MAKEINFO,
+       TEXI2DVI.
+       (cygnus_mode): New global.
+       (handle_dist_worker): Pass --cygnus to automake.
+       (initialize_global_constants): Document --cygnus.
+       (check_cygnus): New sub.
+       (handle_texinfo): Don't require texinfo.tex in Cygnus mode.
+
+       * texi-vars.am: Removed.
+
+       * dejagnu.am (check-DEJAGNU): Don't define rootme.
+
+       * automake.in (handle_tests): Define EXPECT, RUNTEST.
+
+       * dejagnu.am (EXPECT): Removed.
+       (RUNTEST): Removed.
+
+       * automake.in (define_program_variable): New sub.
+
+Mon Oct 28 10:43:48 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_dependencies): Use -M, not -MM, for C++
+       dependencies.
+
+Thu Oct 24 20:21:50 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (check_libobjs_sources): New sub.  Test
+       libobj4.test.
+       (handle_source_transform): Don't check for auto-discovered source
+       files here.
+       (handle_programs): Run check_libobjs_sources here.
+       (handle_libraries): Ditto.
+
+       * automake.in (define_configure_variable): New function.
+       (get_object_extension): Use define_configure_variable.
+       (handle_yacc_lex_cxx): Ditto.
+       (handle_emacs_lisp): Ditto.
+       (configure_vars): New global.
+       (AC_CHECK_PATTERN): New global.
+       (seen_ranlib, seen_prog_cc, seen_prog_cxx, seen_prog_lex):
+       Removed.
+       (handle_yacc_lex_cxx): Use configure_vars, not seen_prog_*.
+       (AC_SUBST_PATTERN): New global.
+       (scan_configure): Use AC_SUBST_PATTERN; don't set seen_prog_*.
+       (handle_libraries): Don't use seen_ranlib.
+       (read_am_file): Run define_configure_variable on each discovered
+       variable.
+
+Mon Oct 21 23:06:49 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (scan_configure): Handle AM_INIT_GUILE_MODULE.
+       (handle_libraries): Pass configure substitutions directly on to
+       LIBFILES.
+
+       * automake.in (AM_PACKAGE_VERSION_PATTERN): New global.
+       (scan_configure): Use it.  Test version.test.
+
+Sun Oct 20 12:08:46 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_dist_worker): Explicitly pass distdir to
+       dist-hook make.  From Tatu Ylonen.
+
+       * m4/strtod.m4: Use correct cache variable.
+
+Thu Oct 17 13:45:20 1996  Tom Tromey  <address@hidden>
+
+       Lisp fixes from Erick Branderhorst:
+       * m4/lispdir.m4: Define lispdir, not LISPDIR.
+       * lisp.am: Added missing \.
+
+Fri Oct 11 00:44:49 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_source_transform): Only rewrite c, yacc, lex
+       to use de-ansi-fication.
+       (scan_configure): Handle multi-line AC_REPLACE_FUNCS.  Test
+       libobj5.test.
+
+       * automake.in (handle_lib_objects): Added $lex_seen argument.
+       Error if lex file used but LEXLIB not seen.
+       (handle_programs): Ditto.
+       (handle_yacc_lex_cxx): Define LEXLIB variable.
+       (handle_lib_objects): Don't allow LEXLIB to end up on dependency
+       list.
+
+Thu Oct 10 16:12:38 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_gettext): Moved check for SUBDIRS and
+       ABOUT-NLS here.
+
+       * automake.in (handle_configure): Run mkinstalldirs under
+       $(SHELL).
+       (handle_yacc_lex_cxx): Run interlock under $(SHELL).
+
+       * remake-subd.am (Makefile): Run config.status under $(SHELL).
+       * remake-hdr.am (stamp-h): Run config.status under $(SHELL).
+       * remake.am (Makefile): Run config.status under $(SHELL).
+       (config.status): Ditto.
+
+       * automake.in (read_am_file): Removed UNMAINT code.
+       (file_contents_with_transform): Ditto.
+       * m4/maintainer.m4: Removed bogus UNMAINT code.
+
+       * automake.in (handle_emacs_lisp): Define EMACS variable.
+       (handle_emacs_lisp): Make sure EMACS is in environment when
+       elisp-comp is run.
+
+       * elisp-comp: Exit with status 1 if usage bad.
+       Use "emacs -q".  Use EMACS environment variable if set (unless set
+       to t).
+
+       * m4/lispdir.m4: Unset EMACS if it is set to `t'.
+
+       * automake.in (handle_dist_worker): Allow EXTRA_DIST items to be
+       in subdirs.
+       (do_one_merge_target): Use all-am, not all, in subdirs case.
+       (handle_merge_targets): Always generate all-am in subdirs case.
+
+       * remake.am (Makefile): Depend on BUILT_SOURCES.
+       * remake-subd.am (Makefile): Depend on BUILT_SOURCES.
+       * depend.am (.deps/.P): Don't depend on BUILT_SOURCES.
+
+       * automake.in (handle_yacc_lex_cxx): Handle y.tab.h in non-ylwrap
+       case.
+
+       * ylwrap: Bug fix.  From Jim Meyering.
+
+Wed Oct  9 22:51:16 1996  Tom Tromey  <address@hidden>
+
+       * m4/mktime.m4: Don't define AC_HEADER_SYS_TIME_H; instead just
+       check directly for header.
+
+Mon Oct  7 13:08:15 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (scan_configure): fp_WITH_DMALLOC and fp_WITH_REGEX
+       are obsolete.
+
+Sun Oct  6 00:43:01 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (AC_CONFIG_AUX_DIR_PATTERN): New global.
+       (AM_INIT_AUTOMAKE_PATTERN): New global.
+       (scan_configure): Use them.
+
+       * aclocal.in (add_file): Search contents of included files.  Test
+       req.test.
+       (scan_m4_files): Don't skip acinclude.m4 when constructing
+       search.  Test acsilent.test.
+       (scan_m4_files): Scan acinclude.m4.
+
+       * aclocal.in (add_file): Removed debugging print.
+       (scan_configure): Set $file_contents when scanning acinclude.m4.
+       Test acinclude.test.
+
+       * configure.in: Upped to 1.1g.
+
+       * Released 1.1f.
+
+       * texinfos.am: Run : after install-info.
+
+       * aclocal.in (parse_arguments): Better error message.
+       * automake.in (parse_arguments): Better error message.
+
+       * remake.am (Makefile): Depend on $(srcdir)/Makefile.in, to work
+       around broken makes.  From David A. Swierczek.
+       * remake-subd.am (Makefile): Ditto.
+
+Sat Oct  5 11:29:48 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (generate_makefile): Put BUILT_SOURCES onto @all if
+       appropriate.
+       (handle_source_transform): Error if discovered source file is
+       mentioned.
+       (do_one_merge_target): Move all-vs-check test here.
+
+       * m4/obstack.m4: New file.
+       * m4/error.m4: New file.
+
+       * automake.in (scan_configure): Support AM_FUNC_MKTIME,
+       AM_FUNC_ERROR_AT_LINE, AM_FUNC_OBSTACK.
+
+       * texinfo.tex: New version from texinfo 3.9.
+
+       * automake.in (handle_yacc_lex_cxx): Updated for new ylwrap.
+       Also, handle y.tab.h file when "yacc -d" is used.
+       (do_one_merge_target): Use pretty_print_rule.
+
+       * ylwrap: Changed usage.
+
+       * m4/mktime.m4: New file.
+
+       * m4: Renamed all .m4 files to fit into 14-char limits.
+
+       * m4/Makefile.am (EXTRA_DIST): New macro.
+
+       * aclocal.in ($ac_defun_rx, %map, %file_contents): New globals.
+       (scan_m4_files): Use $ac_defun_rx.
+       (add_file): Ditto.
+       Run scan_m4_files.
+       (scan_configure): Scan acinclude.m4 before anything else.
+       (scan_file): New sub.
+       (check_acinclude): New sub.
+       (add_file): Rewrote.
+
+       * progs-clean.am, progs.am: Renamed from programs-clean.am,
+       programs.am.
+       * libs-clean.am, libs.am: Renamed from libraries-clean.am,
+       libraries.am.
+       * texi-vars: Renamed from texinfos-vars.am.
+       * comp-vars.am: Renamed from compile-vars.am.
+       * texi-vers.am: Renamed from texi-version.am.
+
+       * automake.in (require_file_internal): Give error if symlink can't
+       be made.
+       (require_config_file): Error message references configure.in.
+       (handle_yacc_lex_cxx): Fix order of arguments to ylwrap; from
+       Joerg-Martin Schwarz.
+       (handle_texinfo): Use texi-vers, not texi-version.
+       (get_object_extension): Use comp-vars, not compile-vars.
+       (handle_texinfo): Use texi-vars, not texinfos-vars.
+       (handle_libraries): Use `libs' prefix, not `libraries'.
+       (handle_programs): Use `progs' prefix, not `programs'.
+
+Fri Oct  4 01:14:08 1996  Tom Tromey  <address@hidden>
+
+       * aclocal.in (scan_m4_files): New sub.
+
+       * m4/AM_FUNC_STRTOD.m4 (am_cv_func_strtod_needs_libm): Set
+       am_cv_func_strtod_needs_libm, so we can avoid linking with -lm
+       everywhere.
+
+Thu Oct  3 20:11:16 1996  Tom Tromey  <address@hidden>
+
+       * texinfos.am (uninstall-info): Run install-info --remove.
+
+       * automake.in (read_am_file): Define all variables after reading
+       .am file.  Test vpath.test.  Reported by Anthony Green.
+
+Mon Sep 30 08:31:51 1996  Tom Tromey  <address@hidden>
+
+       * texinfos.am: Run install-info.
+
+       * automake.in (variable_value_as_list): Just return if comment
+       seen.  Report from Mark Galassi.
+       (handle_options): Don't bother with explicit comment checking.
+
+Tue Sep 24 09:15:46 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (read_am_file): Cleaned up dejagnu variables.
+
+Mon Sep 23 00:04:48 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (parse_arguments): New usage to conform to GNU
+       standards.
+
+       * aclocal.in (parse_arguments): New usage to conform to GNU
+       standards.
+
+       * automake.in (handle_scripts): Push new target onto @check.
+       * scripts.am (address@hidden@SCRIPTS): New target.
+
+       * automake.in (initialize_global_constants): Define %dist,
+       dist_header, dist_trailer.
+       (handle_dist): Make dist-all target.
+       (generate_makefile): Run check_typos later.
+       (examine_variable): New sub.
+       (handle_tags): Examine TAGS_DEPENDENCIES.  Test spell3.test.
+       Error if TAGS_DEPENDENCIES but no sources used.
+       (handle_configure): Examine CONFIGURE_DEPENDENCIES.
+
+Sat Sep 21 13:59:15 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (am_install_var): More error checking.
+
+Fri Sep 20 09:06:37 1996  Tom Tromey  <address@hidden>
+
+       * tags.am (TAGS): Minor cleanup.
+
+       * clean.am (distclean-generic): Don't remove CONFIG_HEADER.
+
+       * remake-hdr.am (mostlyclean-hdr, clean-hdr, distclean-hdr,
+       maintainer-clean-hdr): New targets.
+
+       * automake.in (handle_configure): Define CONFIG_HEADER correctly
+       when it is in current directory.
+       (handle_configure): Push "hdr" on @clean.
+
+       * remake-hdr.am (stamp-h): Run config.status in top_builddir.
+       ($(srcdir)/stamp-h.in): Run autoheader in top_srcdir.
+
+       * automake.in (scan_configure): Check for install.sh here.
+       (basename): New sub.
+       (handle_configure): Handle case where config.h is in subdir.
+       (handle_configure): Make stamp-in.h for user if it doesn't already
+       exist.
+       (touch): New sub.
+
+Tue Sep 17 23:35:14 1996  Tom Tromey  <address@hidden>
+
+       * Makefile.am (EXTRA_DIST): Include pkgdata_DATA.
+
+       * dist-vars.am (DISTFILES): Don't distribute BUILT_SOURCES or
+       DATA.
+       (DEP_DISTFILES): Ditto.
+
+Mon Sep 16 22:28:56 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (check_typos): Renamed.
+       (check_typos): Check for _LDADD, _LIBADD, and _DEPENDENCIES.
+       (variable_defined): Note variable as being "seen".
+       (handle_lib_objects): Don't push configure substitutions onto
+       _DEPENDENCIES.
+
+Sun Sep 15 22:45:43 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (initialize_per_input): Init content_seen.
+       (variable_value_as_list): Set content_seen entry.
+       (define_variable): Ditto.
+       (define_pretty_variable): Ditto.
+       (check_source_typos): New sub.
+       (generate_makefile): Call it.
+
+Thu Sep 12 15:03:19 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_source_transform): Removed extraneous
+       space.  Test implicit.test.
+       (read_am_file): Make sure "canonical" variables are mentioned in
+       %contents.
+       (scan_configure): AC_CHECK_TOOL sets $seen_canonical to
+       $AC_CANONICAL_HOST conditionally.
+       (handle_footer): Don't use define_pretty_variable in all cases.
+
+Wed Sep 11 11:54:44 1996  Tom Tromey  <address@hidden>
+
+       * clean.am (distclean-generic): Remove CONFIG_CLEAN_FILES here,
+       per GNU/Gnits standards.
+
+       * libraries.am (address@hidden@LIBRARIES): Use two loops, so new
+       NORMAL_INSTALL and POST_INSTALL variables can work when empty.
+
+       * automake.in (handle_options): Rewrote version handling.  Now
+       returns error indicator.
+       (MACRO_PATTERN, BOGUS_MACRO_PATTERN): Handle `:=' definitions.
+       (RULE_PATTERN): Exclude `:=' from being a rule.
+
+       * m4/AM_PROG_CC_STDC.m4 (ac_save_CC): Bug fix from Jim Meyering.
+
+       * automake.in (variable_value_as_list): Always use am_line_error.
+       (define_variable): New sub.
+       (get_object_extension): Use define_variable.
+       (handle_yacc_lex_cxx): Ditto.
+       (handle_source_transform): Ditto.
+       (handle_programs): Ditto.
+       (handle_libraries): Ditto.
+       (handle_texinfo): Ditto.
+       (handle_man_pages): Ditto.
+       (handle_dependencies): Ditto.
+       (handle_aclocal_m4): Ditto.
+       (define_pretty_variable): New sub.
+       (handle_source_transform): Use define_pretty_variable.
+       (handle_lib_objects): Ditto.
+       (handle_libraries): Ditto.
+       (handle_dist): Ditto.
+       (handle_dependencies): Ditto.
+       (handle_configure): Ditto.
+       (handle_footer): Ditto.
+       (handle_emacs_lisp): Ditto.
+       (am_install_var): Ditto.
+
+       * Released version 1.1e.
+
+       * automake.in ($GNITS_VERSION_PATTERN): Handle non-alpha
+       releases.
+
+       * configure.in: Version 1.1e.
+
+       * automake.in (handle_texinfo): Distribute .info file.
+
+Sun Sep  8 09:00:37 1996  Tom Tromey  <address@hidden>
+
+       * Makefile.am (EXTRA_DIST): New macro.
+       (maintainer-clean): Don't run "make check".
+       (pathchk): New target.
+
+       * automake.in (check_gnits_standards): Only check version number
+       syntax at top level.
+       ($package_version_line): New variable.
+       (scan_configure): Set it.
+       (check_gnits_standards): Use am_conf_line_error.
+       (scan_configure): Remove extraneous whitespace from version
+       number.
+       (handle_dist): Handle distcheck-hook.
+
+       * m4/AM_PROG_CC_STDC.m4: Applied patch from Jim Meyering.
+
+       * automake.in (scan_configure): Handle AM_WITH_REGEX.
+       (handle_lib_objects): Require .h files in %libsources but don't
+       generate dependencies for them.
+       (scan_configure): Also require rx.h and regex.h.
+
+       * m4/Makefile.am (m4data_DATA): Don't include AM_PROG_LIBTOOL,
+       AM_FEATURE_CTYPE, AM_FEATURE_ERRNO, AM_FEATURE_EXIT,
+       AM_SYSTEM_HEADER.
+
+       * texi-version.am: Use "cp; rm" and not "mv", to work around
+       broken mvs.
+
+       * automake.in ($package_version): New global.
+       (scan_configure): Set it.
+       (check_gnits_standards): Verify version string; require
+       README-alpha if alpha version.
+       (scan_configure): Recognize AM_FUNC_FNMATCH,
+       AM_REPLACE_GNU_GETOPT.
+
+       * Makefile.am (installcheck-local): Check all scripts.
+
+Sat Sep  7 19:22:32 1996  Tom Tromey  <address@hidden>
+
+       * tags-clean.am: Do deletions here again.
+
+Thu Sep  5 09:06:23 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (usage): Include bug-reporting information.
+       (handle_lib_objects): Error if LIBOBJS seen but never set.
+
+       * aclocal.in ($acdir): Use @datadir@/aclocal.
+       (usage): Include bug-reporting information.
+
+Wed Sep  4 11:36:06 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_source_transform): .deps no longer in
+       srcdir.
+       (handle_lib_objects): Ditto.
+       (handle_dist_worker): Pass --build-dir to automake.
+       ($build_directory): New global.
+       (parse_arguments): Handle --build-dir.
+       (initialize_global_constants): Include --build-dir in help.
+       (scan_dependency_file): New sub.
+       (handle_dependencies): Use it.  Also, use $build_directory.
+       (initialize_global_constants): Added --srcdir-name.
+       (parse_arguments): Ditto.
+       (handle_dist_worker): Ditto.
+       ($srcdir_name): New global.
+       ($srcdir_rx): New global.
+       (parse_arguments): Set it.
+
+       * depend2.am: Removed all mention of $(srcdir).
+
+       * depend.am (MKDEP): Use gcc -M, not gcc -MM.
+       Removed all mention of $(srcdir); dependencies now put into build
+       dir.
+
+       * depend2.am ($(srcdir)/.deps/%.P): Fixed computation of `top'.
+       Don't do work silently.
+
+       * automake.in (handle_merge_targets): Error if invalid uninstall
+       targets are given.
+       (read_am_file): Fix for test block.test.
+
+Tue Sep  3 18:50:32 1996  Tom Tromey  <address@hidden>
+
+       * texinfos.am (install-info): Added NORMAL_INSTALL.
+       * scripts.am (address@hidden@SCRIPTS): Added NORMAL_INSTALL.
+       * programs.am (address@hidden@PROGRAMS): Added NORMAL_INSTALL.
+       * lisp.am (address@hidden@LISP): Added NORMAL_INSTALL.
+       * libraries.am (address@hidden@LIBRARIES): Added NORMAL_INSTALL.
+       Also, use POST_INSTALL when running ranlib.
+       * header.am (address@hidden@HEADERS): Added NORMAL_INSTALL.
+       * data.am (address@hidden@DATA): Added NORMAL_INSTALL.
+
+       * automake.in (handle_man_pages): Added NORMAL_INSTALL invocation.
+       (handle_merge_targets): Ditto.
+       (handle_merge_targets): Error if PRE_INSTALL, POST_INSTALL, or
+       NORMAL_INSTALL defined.
+
+       * m4/AM_PROG_INSTALL.m4: INSTALL_SCRIPT defaults to
+       ${INSTALL_PROGRAM}.  From François Pinard.
+
+Tue Aug 27 08:25:05 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (file_contents_with_transform): Correctly remove
+       @(UN)?MAINT@ from input when maintainer mode not active.
+       (handle_aclocal_m4): Handle no-maintainer-mode case.
+
+       * remake-hdr.am ($(CONFIG_HEADER)): Removed @address@hidden
+
+       * m4/AM_SANITY_CHECK_CC.m4: New file (from Jim Meyering).
+
+Mon Aug 26 21:37:32 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_lib_objects): Bug fix from Steve M Robbins.
+       (handle_libraries): Don't include libraries from EXTRA_LIBRARIES
+       in LIBFILES definition.  Reported by Steve M Robbins.  Test
+       alllib.test.
+
+       * automake.in (variable_value_as_list): New sub.
+       (handle_source_transform): Use it.
+       (handle_lib_objects): Ditto.
+       (handle_libraries): Ditto.
+       (handle_texinfo): Ditto.
+       (handle_man_pages): Ditto.
+       (am_install_var): Ditto.
+       (handle_options): Ditto.
+
+Sat Aug 24 09:30:46 1996  Tom Tromey  <address@hidden>
+
+       Reported by Jim Meyering:
+       * automake.in (get_object_extension): Look in "./" for ansi2knr if
+       no path found.
+       (handle_aclocal_m4): Protect aclocal.m4 rule with @address@hidden
+
+       * remake.am (.PHONY): New target.
+
+       * m4/AM_MAINTAINER_MODE.m4: Also define UNMAINT.
+
+       * automake.in (check_gnu_standards): Disallow no-installman,
+       no-installinfo.
+       (read_am_file): Sed out UNMAINT too.
+       (file_contents_with_transform): Ditto.
+
+       * acinstall: New file.
+
+       * m4/AM_INIT_AUTOMAKE.m4: Define PACKAGE and VERSION.
+
+       * m4/AM_WITH_REGEX.m4: New version from François Pinard.
+
+       * m4/AM_TYPE_PTRDIFF_T.m4: Use am_cv, not ac_cv.
+       * m4/AM_C_PROTOTYPES.m4: Ditto.
+       * m4/AM_FUNC_STRTOD.m4: Ditto.
+       * m4/AM_PROG_CC_STDC.m4: Ditto.
+       * m4/AM_PROG_LIBTOOL.m4: Ditto.
+
+Fri Aug 23 22:23:50 1996  Tom Tromey  <address@hidden>
+
+       * m4/Makefile.am (m4datadir): New macro
+       (m4data_DATA): Renamed.
+
+       * Makefile.am (cvs-dist): Depend on distcheck target.
+
+Mon Aug 19 15:37:32 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (initialize_global_constants): [common_files]
+       Include acinclude.m4.
+
+       * m4/AM_PROG_CC_STDC.m4: Patch from Jim Meyering/Kaveh Ghazi.
+
+Sat Aug 17 11:27:14 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_dependencies): Push `depend'-clean targets
+       on @clean.
+       * depend.am (mostlyclean-depend, clean-depend, distclean-depend,
+       maintainer-clean-depend): New targets.
+
+Tue Aug 13 17:53:58 1996  Tom Tromey  <address@hidden>
+
+       * texinfos.am (.texinfo.info): New target.
+       (.texinfo.dvi): New target.
+
+       From Jim Meyering:
+       * automake.in (handle_texinfo): Use `.info[-0-9]*' as pattern to
+       match info files.
+       (handle_texinfo): Handle `.texinfo' files.
+
+Mon Aug 12 10:28:46 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (require_file_internal): Special-case `.' when
+       finding files to distribute.  Test libobj2.test.
+
+       * aclocal.in (add_file): Fixed regexp for matching AC_DEFUN.  Test
+       order.test.
+
+       * m4/AM_HEADER_TIOCGWINSZ_NEEDS_SYS_IOCTL.m4: New file.
+       * m4/AM_SYS_POSIX_TERMIOS.m4: New file.
+
+       * compile-kr.am: Removed duplicate ansi2knr rules.
+
+Sun Aug 11 00:20:16 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_yacc_lex_cxx): Bug fix from Josh MacDonald.
+       (handle_yacc_lex_cxx): Put C++ extensions on suffix list.
+       (mkdir): Removed.
+
+       * automake.in (initialize_global_constants): [common_files]
+       Include interlock and ylwrap.
+
+       * Released version 1.1c.
+
+       * aclocal.in (obsolete_macros): md_TYPE_PTRDIFF_T and
+       ud_PATH_LISPDIR are obsolete names.
+
+       * m4/AM_LC_MESSAGES.m4, m4/AM_WITH_NLS.m4, m4/AM_GNU_GETTEXT.m4:
+       Removed.
+
+       * automake.in (handle_lib_objects): Changed interface.  Now
+       generates _DEPENDENCIES variable if appropriate.
+       (handle_emacs_lisp): Use AM_PATH_LISPDIR.
+       (scan_configure): Ditto.
+
+       * Makefile.am (CLEANFILES): Removed.
+
+       * automake.in (handle_configure): Define CONFIG_CLEAN_FILES.
+
+       * clean.am (clean-generic): Remove $(CONFIG_CLEAN_FILES).
+
+       * compile-vars.am (CC, CFLAGS, COMPILE, LINK): Removed.
+
+       * automake.in (handle_yacc_lex_cxx): Require ylwrap in
+       multi-lex/yacc case.
+       (handle_source_transform): Changed return result.
+       (handle_programs): Use linker returned by
+       handle_source_transform.
+       (seen_prog_cc, seen_prog_cxx): New globals.
+       (scan_configure): Recognize AC_PROG_CC and AC_PROG_CXX.
+       (handle_yacc_lex_cxx): Error message if AC_PROG_CXX or
+       AC_PROG_YACC missing.
+       (seen_decl_yytext, seen_prog_lex): New globals.
+       (scan_configure): Set them.
+       (handle_yacc_lex_cxx): Warn about missing AC_PROG_LEX or
+       AC_DECL_YYTEXT.
+       (handle_yacc_lex_cxx): Use $(LEX_OUTPUT_ROOT).
+       (initialize_per_input): Initialize seen_c_source.
+       (handle_yacc_lex_cxx): Define CC, CFLAGS, COMPILE, LINK only when
+       C source seen.
+       (handle_source_transform): Set seen_c_source.
+
+       * interlock: Changed usage.
+
+       * ylwrap: New file.
+
+       * automake.in (handle_yacc_lex_cxx): Renamed.
+
+       * automake.in (handle_dependencies): Handle %cxx_extensions.
+       Include depend2.am when appropriate.
+
+       * depend2.am: New file; contents from depend.am but templatized.
+
+       * automake.in (initialize_per_input): Initialize
+       %cxx_extensions.
+       (handle_source_transform): Set %cxx_extensions.
+
+Sat Aug 10 10:29:30 1996  Tom Tromey  <address@hidden>
+
+       * interlock: New file.
+
+       * automake.in (handle_yacc_lex): New sub.
+       (handle_source_transform): Removed most yacc/lex handling.
+       (initialize_per_input): Init yacc_sources, lex_sources.
+       (generate_makefile): Run handle_yacc_lex.
+       (handle_merge_targets): Use `scalar' and not $# to find length of
+       array.
+
+       * m4/AM_FEATURE_EXIT.m4: Wrote.
+       * m4/AM_FEATURE_CTYPE.m4: Wrote.
+       * m4/AM_FEATURE_ERRNO.m4: Wrote.
+
+       * aclocal.in (macro_seen): New global.
+       (add_file): Set macro_seen entry.  Only push required macro on
+       @rlist if not already seen.  Test defun.test.
+
+       * automake.in (get_object_extension): Handle directory prefix on
+       `ansi2knr' option.
+
+       * kr-extra.am: New file.
+
+       * kr-vars.am: Removed.
+
+       * automake.in (handle_options): Handle directory prefix on
+       `ansi2knr' option.
+
+       * automake.in (scan_configure): Recognize AM_FUNC_STRTOD.
+
+       * aclocal.in (add_file): Error if macro is duplicated.  Test
+       dup.test.
+
+Fri Aug  9 09:18:46 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_programs): Substitute @address@hidden  Make sure
+       linker variable is transformed name.
+       * program.am (@PROGRAM@): Use @XLINK@ to link.
+
+       * automake.in (handle_scripts): Fixed call to
+       am_primary_prefixes.
+       (handle_libraries): Better error message when AC_PROG_RANLIB
+       required.
+
+       * automake.in (handle_libraries): Canonicalize library name.  Test
+       canon4.test.
+       * library.am (address@hidden@.a): Use @XLIBRARY@ where appropriate.
+       (address@hidden@.a): Look at _DEPENDENCIES variable.
+
+Thu Aug  8 10:57:21 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_scripts): Correctly compute
+       $scripts_installed.  Test scripts.test.
+
+Wed Aug  7 12:13:15 1996  Tom Tromey  <address@hidden>
+
+       * ansi2knr.c: New version.
+
+Tue Aug  6 10:58:37 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_source_transform): Handle more C++ file
+       extensions.  "Handle" Objective C.  Handle more FORTRAN
+       extensions.
+
+       * compile-vars.am (LEX): Removed.
+       (YACC): Removed.
+
+       * automake.in (handle_source_transform): Correctly handle lex
+       source.  Test lex.test.
+       (handle_source_transform): Skip more C++ headers.  Generate macro
+       definitions for YACC and LEX on first use.
+
+       * aclocal.in (parse_arguments): Mention GNU.
+       * automake.in (parse_arguments): Mention GNU.
+
+Mon Aug  5 00:12:45 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_programs): Define program_LINK.
+       * program.am (@PROGRAM@): Use program_LINK to link.
+
+       * Released version 1.1b
+
+       * automake.in (scan_configure): AM_INIT_AUTOMAKE sets
+       seen_prog_install to `2'.
+
+       * configure.in: Don't run AM_PROG_INSTALL.
+
+       * automake.in (parse_arguments): Use $PACKAGE.
+       ($PACKAGE): New global.
+       ($am_c_prototypes): Renamed.
+       (get_object_extension): Use am_c_prototypes.
+       (scan_configure): Ditto.
+       (scan_configure): Use AM_MAINTAINER_MODE.
+       (scan_configure): Warn about obsolete macros.
+
+       * aclocal.in (parse_arguments): Use $PACKAGE.
+       ($PACKAGE): New global.
+
+       * Makefile.am (CLEANFILES): Added aclocal.
+       (ETAGS_ARGS): Added aclocal.in.
+       (TAGS_DEPENDENCIES): Ditto.
+       (maintainer-check): Depend on aclocal.
+       (maintainer-check): Check aclocal.
+       (bin_SCRIPTS): Include aclocal.
+
+       * automake.in (scan_configure): Handle AM_INIT_AUTOMAKE.
+       (scan_configure): Use AM_PROG_INSTALL.
+
+       * configure.in: Use AM_INIT_AUTOMAKE.
+
+       * automake.in (keyed_aclocal_warning): Warning tells about
+       aclocal.
+       (handle_aclocal_m4): New sub.
+       (handle_configure): Use it.
+
+       * aclocal.in (output_file): New global.
+       (usage): Handle --output.
+       (parse_arguments): Handle --output.
+
+       * m4/AM_INIT_AUTOMAKE.m4: New file.
+
+       * m4/AM_PROG_CC_STDC.m4: Require AC_PROG_CC.
+       Don't touch CFLAGS.
+
+       * automake.in (handle_dist_worker): Reverted erroneous "-chmod".
+       (handle_texinfo): Don't generate `.info-[0-9]' as a filename.
+
+       * texinfos.am (.texi.info): Force .info file to be built in
+       srcdir.  From Franc,ois Pinard.
+
+       From Jim Meyering:
+       * m4/AM_PROG_CC_STDC.m4: (fp_PROG_CC_STDC): Include sys/stat.h in
+       test program so that DYNIX/ptx V4.1.3 doesn't use `-Xc
+       -D__EXTENSIONS__' -- with those options on that system, sys/stat.h
+       gets compile errors.  With help from Marcus Daniels.
+
+       * automake.in (initialize_global_constants): Put elisp-comp into
+       @common_files.  Bug from Glenn Amerine.
+
+Sun Aug  4 12:52:43 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_dist_worker): Use fgrep, not grep.
+
+       * m4/AM_C_PROTOTYPES.m4: Changes from François Pinard.
+
+       * automake.in (handle_emacs_lisp): Include lisp-clean.am in
+       output.
+       (initialize_global_constants): [install_man_format] Don't hide
+       "ugliness" at install time.
+
+       * lisp-clean.am: New file.
+
+       * tags-clean.am (maintainer-clean-tags): Remove TAGS and ID here.
+
+       * automake.in (handle_man_pages): Patch from Janos Farkas to fix
+       bug when installing man pages.  Test man.test.
+       (initialize_global_constants): [install_man_format] Make sure man
+       page can actually be found in either source or build dirs.
+       (handle_dist_worker): Use "755" permissions on distdir.
+
+       * automake.in (handle_dist): Allow chmod's to fail.
+       (am_primary_prefixes): New function.
+       (am_install_var): Use it.
+       (handle_libraries): Use it.  Test libfiles.test.
+       (handle_dist): For dist-tarZ, assume traditional "tar" and
+       "compress".
+
+       * m4/AM_FUNC_STRTOD.m4: New file.
+
+       * automake.in (handle_dist): Only generate `distdir' variable if
+       it doesn't already exist.
+
+       Fix for bug reported by Harlan Stenn.  Test tags.test.
+       * automake.in (initialize_per_input): Define dir_holds_sources.
+       (handle_tags): Check dir_holds_headers.
+       (handle_headers): Set dir_holds_headers.
+
+       * automake.in (handle_texinfo): Generate "version.texi" dependency
+       for .dvi file.  Bug reported by Glenn Amerine.  Test vtexi2.test.
+
+       * automake.in (handle_configure): Require file $input, not
+       "$local.in".  From Nyul Laszlo.  Test colon.test.
+
+Sun Jul 28 11:14:52 1996  Tom Tromey  <address@hidden>
+
+       * aclocal.in: New file.
+       * configure.in: Generate m4/Makefile, aclocal.
+       * Makefile.am (SUBDIRS): Include m4.
+       * m4/Makefile.am: New file.
+
+Fri Jul 19 10:12:27 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (initialize_global_constants): Put ansi2knr.c and
+       ansi2knr.1 into common_files.  Bug report from François Pinard.
+
+Mon Jul 15 10:28:29 1996  Tom Tromey  <address@hidden>
+
+       * install-sh: Updated copyright notice.
+
+Fri Jul  5 08:23:00 1996  Tom Tromey  <address@hidden>
+
+       * subdirs.am (maintainer-clean-recursive): Don't be so noisy.
+       Report from Josh MacDonald.
+
+       Bugs from Gord Matzigkeit:
+       * automake.in (handle_footer): Push contents of $(SUFFIXES), not
+       `$(SUFFIXES)'.
+       (handle_dist): Ignore chmod return results.
+
+       * programs-clean.am (address@hidden@PROGRAMS): Work around failing
+       Solaris "rm -f".  Bug from Kaveh R. Ghazi.
+       * libraries-clean.am (address@hidden@LIBRARIES): Likewise.
+
+Fri Jun 21 10:42:06 1996  Tom Tromey  <address@hidden>
+
+       * texinfos.am (install-info): Use "if", not "&&", to avoid
+       install problem when glob doesn't match.
+
+       * automake.in (initialize_global_constants): [USAGE] Added
+       --no-force.
+       (force_generation): New global.
+       (parse_arguments): Handle --no-force.
+       (generate_makefile): Handle --no-force.
+
+       * Makefile.am (maintainer-check): Ensure all invocations of
+       mkinstalldirs are correct.
+
+Tue Jun 18 10:53:54 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_tests): Don't directly generate site.exp.
+
+Sun Jun 16 22:21:16 1996  Harlan Stenn  <address@hidden>
+       
+       * automake.in:  Treat an initial `#' on a word in AUTOMAKE_OPTIONS
+       as a comment start.  Add support for a dist-tarZ target.
+
+Tue Jun 11 22:14:21 1996  Marcus Daniels  <address@hidden>
+
+       * depend.am ($(srcdir)/.deps/%.P): Convert absolute $(top_srcdir)
+       paths into relative paths.
+
+Mon Jun 10 21:11:20 1996  Tom Tromey  <address@hidden>
+
+       * texinfo.tex: New version.
+
+       * automake.in: Look for AM_PROG_LIBTOOL.  From Gord Matzigkeit.
+       (initialize_global_constants): Added libtool to
+       @common_sometimes.
+       (handle_source_transform): Pass YFLAGS to yacc and LFLAGS to lex.
+
+Sun Jun  9 17:45:48 1996  Tom Tromey  <address@hidden>
+
+       * texinfos.am (install-info): Don't install ~ files.  Bug report
+       from Greg McGary.
+       * automake.in (handle_texinfo): Don't push '.info*' onto
+       @infos_list.
+
+       * automake.in (handle_gettext): Ensure po and intl in SUBDIRS when
+       using gettext.
+       (handle_dist): Pass --with-included-gettext to configure if using
+       gettext.
+
+       * compile-kr.am (._c._o): Pass -c to $(COMPILE).
+       (.c._o): Ditto.
+       * compile.am (.c.o): Pass -c to $(COMPILE).
+       * compile-vars.am (COMPILE): Don't include -c.
+
+       * remake.am ($(srcdir)/Makefile.in): Pass --strictness to
+       automake.
+       * automake.in (handle_configure): Supply --strictness arg to
+       automake.
+
+Fri Jun  7 12:31:31 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_tests): Fix quoting on `pwd`.
+       (handle_options): Recognize no-installinfo option.
+       (handle_man_pages): Don't put man directory on @installdirs if
+       no-installman is specified.
+       (handle_texinfo): Handle no-installinfo option.
+       (handle_options): Compare version against $num_version, not
+       $VERSION.
+       (handle_source_transform): Generate rules for output of lex,
+       yacc.  Bug report from Thomas Morgan.  Test yacc.test.
+       (handle_dist): "distcheck" now runs "make dvi".
+       (handle_tests): Support $(TESTS_ENVIRONMENT).  Idea from Ulrich
+       Drepper.
+
+       * dejagnu.am (check-DEJAGNU): Depend on site.exp.
+
+Sun Jun  2 10:33:10 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_emacs_lisp): New function.
+       (initialize_global_constants): Added elisp-comp to
+       @common_sometimes.
+       (seen_lispdir): New global.
+       (scan_configure): Handle ud_PATH_LISPDIR.
+
+       * elisp-comp: New file.
+
+       * lisp.am: New file.
+
+       * automake.in (generate_makefile): Run handle_emacs_lisp.
+
+       * aclocal.m4 (ud_PATH_LISPDIR): New macro, from Ulrich Drepper.
+
+       * automake.in (initialize_global_constants): Removed version.texi
+       from common_sometimes.
+       (initialize_global_constants): Added texinfo.tex to common_files.
+       Test texinfo.test.
+       (handle_tests): Allow dejagnu- and automake-style test suites to
+       coexist.  Test dejagnu.test.
+       (initialize_global_constants): New constants AC_CANONICAL_HOST,
+       AC_CANONICAL_SYSTEM.
+       (scan_configure): Use new constants.
+       (handle_tests): Put target specific information into site.exp if
+       AC_CANONICAL_* used.
+       (read_am_file): Generate some extra variables when AC_CANONICAL_*
+       used.
+       (handle_options): Allow version number to have letters appended.
+       (handle_tests): Error if RUNTEST, RUNTESTFLAGS defined but dejagnu
+       option not specd.
+       (initialize_global_constants): install_man_format changed to
+       handle built man pages.
+
+Wed May 29 10:35:01 1996  Tom Tromey  <address@hidden>
+
+       * config.guess, config.sub: New versions.
+
+Tue May 28 19:27:11 1996  Tom Tromey  <address@hidden>
+
+       * configure.in (VERSION): Upped to 1.0.
+
+Sat May 25 10:19:53 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_tests): Handle dejagnu.
+       (handle_options): Recognize dejagnu option.
+
+       * dejagnu.am: New file.
+
+Thu May 23 10:01:13 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_dist): Run installcheck target from
+       distcheck.
+
+       * configure.in (VERSION): Upped to 0.34.
+
+       * automake.in (scan_configure): Always allow upgrading to
+       fp_PROG_INSTALL.  Test fpinstall.test.
+
+Wed May 22 14:45:28 1996  Joshua Cowan  <address@hidden>
+
+       (handle_dist): Make `distcheck' check `install' target, too.
+
+Wed May 22 09:49:27 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (initialize_per_input): Don't initialize
+       $output_directory here; initialize it globally.  From Joshua
+       Cowan.  Test outdir.test.
+
+Sat May 18 10:57:40 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_tests): Don't push TESTS onto dist_common.
+       (initialize_global_constants): Put install-sh and mkinstalldirs
+       into @common_files.  Test insh2.test.
+
+Fri May 17 09:02:02 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_source_transform): Don't generate _OBJECTS
+       when no source files specified.  Test number.test.
+
+       From Joerg-Martin Schwarz:
+       * automake.in (seen_package, seen_version): New globals.
+       (scan_configure): Look for PACKAGE= and VERSION=.
+
+       * automake.in (handle_options): Recognize dist-zip.
+       (handle_dist): Handle dist-zip.
+       (handle_options): Use ' ', not \s+, with split.  Test
+       backsl.test.
+       (handle_source_transform): Likewise.
+       (handle_lib_objects): Likewise.
+       (handle_libraries): Likewise.
+       (handle_texinfo): Likewise.
+       (handle_man_pages): Likewise.
+       (handle_subdirs): Likewise.
+       (handle_gettext): Likewise.
+       (handle_footer): Likewise.
+       (handle_tests): Likewise.
+       (scan_configure): Likewise.
+       (am_install_var): Likewise.
+
+       * Makefile.am (TAGS_DEPENDENCIES): New macro.
+
+       * tags.am (tags-recursive): New target.
+       (TAGS): Depend on it.
+
+       * automake.in (handle_tags): Put tags-recursive on @phony.
+
+       * tags-subd.am (TAGS): Depend on HEADERS, SOURCES,
+       TAGS_DEPENDENCIES.
+       * tags.am (TAGS): Depend on HEADERS, SOURCES, TAGS_DEPENDENCIES.
+
+Thu May 16 09:21:48 1996  Tom Tromey  <address@hidden>
+
+       * remake.am (configure): Depend on $(CONFIGURE_DEPENDENCIES).
+
+       * automake.in (scan_configure): Look for install-sh and
+       mkinstalldirs here.
+       (initialize_global_constants): Moved mdate-sh from
+       common_sometimes to common_files.  Test mdate2.test.
+
+Tue May 14 21:52:01 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (seen_maint_mode): New global.
+       (scan_configure): Handle jm_MAINTAINER_MODE.
+       (read_am_file): Handle seen_maint_mode.
+       (file_contents_with_transform): Handle seen_maint_mode.
+       (handle_source_transform): Changed interface, all callers.
+
+       From Jim Meyering:
+       * remake-hdr.am, remake-subd.am, remake.am, texi-version.am:
+       Handle @address@hidden
+       * aclocal.m4 (jm_MAINTAINER_MODE): New macro.
+
+       * automake.in (handle_configure): Check $config_aux_dir against
+       empty string.  From Markku Rossi.  Test mkinstall.test.
+
+Fri May 10 14:38:47 1996  Gord Matzigkeit  <address@hidden>
+
+       * automake.in (distcheck): Added new rule to top level
+       Makefile.in.
+
+Wed May  8 21:57:21 1996  Gord Matzigkeit  <address@hidden>
+
+       * automake.in (scan_configure): Make sure that gm_PROG_LIBTOOL
+       sets seen_ranlib.
+       (generate_makefile): libtool, config.sub, and config.guess should
+       only ever appear in the top directory of a package.
+
+Tue May 14 10:24:30 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (initialize_global_constants): Added libversion.in
+       to @common_files.
+
+       * configure.in (VERSION): Upped to 0.33.
+
+       * automake.in (am_install_var): Fixed problem in EXTRA_ handling.
+       Test extra.test.
+
+Mon May 13 10:41:41 1996  Tom Tromey  <address@hidden>
+
+       * install-sh (transformbasename): Correct misspelling of
+       transformbasename.  From Ian Lance Taylor.
+
+Sat Apr 27 11:39:10 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_configure): Set mkinstalldirs variable
+       here.
+       (handle_dist_worker): Explicitly set distdir in subdir makes.
+       (handle_dist): Handle separate distdir target.
+       (handle_dist_worker): Only generate distdir target.
+
+       * texinfos.am (install-info): Use $(mkinstalldirs).
+       * scripts.am (address@hidden@SCRIPTS): Use $(mkinstalldirs).
+       * programs.am (address@hidden@PROGRAMS): Use $(mkinstalldirs).
+       * libraries.am (address@hidden@LIBRARIES): Use $(mkinstalldirs).
+       * header.am (address@hidden@HEADERS): Use $(mkinstalldirs).
+       * data.am (address@hidden@DATA): Use $(mkinstalldirs).
+
+       * automake.in (read_am_file): Set mkinstalldirs variable.
+       (handle_man_pages): Use it.
+       (handle_installdirs): Ditto.
+
+Fri Apr 26 15:10:48 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_man_pages): Fix mkinstalldirs invocation.
+
+Thu Apr 25 18:40:06 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_dist_worker): Use $(TAR), not tar.
+       (handle_merge_targets): Make sure config header is built before
+       recursing into subdirs.
+       (handle_libraries): Generate LIBFILES for check_LIBRARIES.
+       (handle_merge_targets): Handle case where nothing is installed but
+       something must be built -- "make install" must still work.
+
+       * dist-vars.am (TAR): New macro.
+
+       * automake.in (scan_configure): Support AC_REPLACE_GNU_GETOPT.
+       (handle_configure): Require stamp-h.in when config header used.
+
+Tue Apr 23 17:57:13 1996  Andreas Schwab  <address@hidden>
+
+       * doc/mdate-sh: Extract the last field from the date output, not
+       the sixth, which will fail when the timezone name has more than
+       one word or is missing.
+
+Wed Apr 24 20:29:26 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (am_install_var): Use delete, not undef, to remove
+       EXTRA entry.  From Gord Matzigkeit.
+
+Mon Apr 22 17:48:50 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (read_am_file): Handle case where last line doesn't
+       end in newline.
+
+Tue Apr  9 22:53:16 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (variable_defined): New function.
+       (read_am_file): Ensure a blank line comes before starting comments
+       from Makefile.am.
+       (initialize_per_input): Initialize %targets.
+       (read_am_file): Set appropriate entry in %targets.
+       Many changes to use variable_defined.
+       (check_gnu_standards): Only require ChangeLog at top level.  From
+       Gord Matzigkeit.
+       (handle_tests): check-TESTS depends on $(TESTS).  From Gord
+       Matzigkeit.
+
+Mon Apr  8 22:51:41 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (parse_arguments): Added short options.
+       (initialize_global_constants): Ditto.
+
+Fri Apr  5 00:22:14 1996  Tom Tromey  <address@hidden>
+
+       * mkinstalldirs (errstatus): Don't necessarily die if mkdir
+       fails.
+
+       * automake.in (handle_source_transform): Typo fix.
+
+Thu Apr  4 15:10:50 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_dist_worker): Renamed dist-local to
+       dist-hook.
+       (handle_merge_targets): Added install-data-hook and
+       install-exec-hook.
+       (handle_source_transform): Handle EXTRA_prog_SOURCES form.
+
+       * automake.in (handle_scripts): Never allow scripts_installed to
+       become 0.
+
+       * scripts.am (address@hidden@SCRIPTS): Scripts can be found in
+       srcdir.
+
+       * automake.in (generate_makefile): Derived file names from given
+       input; don't assume Makefile.in and Makefile.am.
+       (am_file_name, in_file_name): New globals.
+       (read_am_file): Use them.
+
+       * program.am (@PROGRAM@): Use transformed program name.
+
+       * remake-hdr.am (stamp-h): Actually touch stamp-h.
+
+Wed Apr  3 15:16:06 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (require_file_internal): Use correct file for error
+       messages.  Test insh.test.
+
+Mon Apr  1 09:47:44 1996  Tom Tromey  <address@hidden>
+
+       * texinfos.am (.texi.info): Build output file in srcdir.
+
+       * automake.in (require_file_internal): If $dir is ".",then look in
+       relative directory.
+       (handle_texinfo): Canonicalize name of texi file before looking
+       for dependency variable.
+
+Thu Mar 28 08:33:21 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (require_conf_file_with_conf_line): Yet another
+       function of this form.
+       (libtool_line): New variable.
+       (handle_libraries): Handle libtool.
+
+       * libraries-vars.am: Removed.
+
+       * automake.in (seen_libtool): New variable.
+       (scan_configure): Look for gm_PROG_LIBTOOL or AC_PROG_LIBTOOL.
+
+       * automake.in (handle_dist_worker): Handle dist-local.
+
+       * Makefile.am (maintainer-check): Do "make check" after all syntax
+       checks.
+
+       * texi-version.am (address@hidden@): Look for mdate-sh in appropriate
+       directory.
+
+       * automake.in ($seen_arg_prog): New global.
+       (handle_programs): Error if AC_ARG_PROGRAM not seen.
+       (handle_scripts): Ditto.
+       (handle_configure): mkinstalldirs now a config file.
+       (handle_installdirs): Find mkinstalldirs in config_aux_dir.
+       (handle_dist_worker): Removed DIST_SUBDIRS.
+       (require_file_path): New variable.
+       (require_file_with_conf_line): Set it.
+       (require_file_with_line): Ditto.
+       (require_file): Ditto.
+       (require_file_internal): Incorporated code from
+       require_config_file.
+       (require_config_file): Rewrote.
+       (require_conf_file_with_line): New function.
+       (handle_texinfo): Use it for mdate-sh.
+       (handle_texinfo): Look for mdate-sh in appropriate directory.
+
+Tue Mar 26 13:47:54 1996  Tom Tromey  <address@hidden>
+
+       * Makefile.am (cvs-dist): Find NEWS in srcdir.
+       * automake.in (handle_dist_worker): Find NEWS in srcdir.
+       ($RULE_PATTERN): Include chars "$(){}/" in allowable patterns in a
+       rule.
+       (require_config_file): Set config_aux_path when file found.
+       ($config_aux_dir): New variable.
+       (require_config_file): Set it.
+       (handle_man_pages): Find mkinstalldirs in config_aux_dir.
+
+Mon Mar 25 15:32:57 1996  Tom Tromey  <address@hidden>
+
+       * data.am (address@hidden@DATA): Also allow data to be in build
+       directory.
+
+Sun Mar 24 19:56:28 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (am_install_var): Don't look in EXTRA_primary
+       variable any more; it is handled in the main loop.
+
+Wed Mar 20 16:22:35 1996  Tom Tromey  <address@hidden>
+
+       * data.am (address@hidden@DATA): Find data in srcdir.
+
+Fri Mar 15 18:30:31 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (require_config_file): Use correct filename when
+       looking for errors.  Also, install file in `.' if not found.  Bug
+       reported by Gord Matzigkeit.  Test installsh.test.
+
+Thu Mar 14 09:28:21 1996  Tom Tromey  <address@hidden>
+
+       * Makefile.am (cvs-diff): New target.
+
+       Fix for bug when install var substitutes empty.  Test empty.test.
+       * header.am (address@hidden@HEADERS): Allow empty list of headers.
+       (address@hidden@HEADERS): Ditto.
+       * scripts.am (address@hidden@SCRIPTS): Allow empty list of scripts.
+       (address@hidden@SCRIPTS): Ditto.
+       * libraries.am (address@hidden@LIBRARIES): Allow empty list of
+       libraries.
+       (address@hidden@LIBRARIES): Ditto.
+       * data.am (address@hidden@DATA): Allow empty list of data.
+       (address@hidden@DATA): Ditto.
+       * programs.am (address@hidden@PROGRAMS): Added missing semicolon.
+       From François Pinard.
+       (address@hidden@PROGRAMS): Fixed bug when list of programs empty.
+       (address@hidden@PROGRAMS): Ditto.
+
+Wed Mar 13 19:50:23 1996  Tom Tromey  <address@hidden>
+
+       * tags-subd.am (ID): Name of ID file must be flush against -f.
+
+       * configure.in (VERSION): Version 0.32.
+
+Mon Mar 11 17:50:58 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (seen_linguas, all_linguas_line): New variables.
+       (handle_gettext): New function.
+       (generate_makefile): Run it.
+       (scan_configure): Recognize ALL_LINGUAS.
+
+Mon Mar 11 14:34:36 1996  Gord Matzigkeit  <address@hidden>
+
+       * automake.texi: doc fix.
+
+       * automake.in (am_install_var): Added support for check and
+       installcheck special prefixes.
+
+Sun Mar 10 10:44:42 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_subdirs): Don't do SUBDIRS check for
+       gettext.
+
+Tue Mar  5 18:12:04 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (OBJECT_PATTERN): Removed.
+       (am_install_var): No error if name is invalid.
+       (handle_programs): Canonicalize program names.
+       (BOGUS_MACRO_PATTERN): New variable.
+       (read_am_file): Error if bad macro name given.
+       (require_file_internal): Use am_line_error, not am_conf_error.
+
+       * program.am (@PROGRAM@): Recognize @address@hidden
+
+Mon Mar  4 19:30:24 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_lib_objects): New function.
+       (handle_libraries): Use it.
+       (handle_programs): Ditto.
+       (handle_dist_worker): Deprecate DIST_SUBDIRS.
+       (am_install_var): Allow extended directory mechanism to work.
+       Test exdir.test.
+
+       * dist-vars.am (DISTFILES): Use EXTRA_DIST.
+       (DEP_DISTFILES): Ditto.
+
+       * automake.in (OBJECT_PATTERN): New variable.
+       (am_install_var): Use it.
+       (handle_dist): DIST_OTHER is an anachronism.
+
+Sat Mar  2 17:04:38 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_dist_worker): Only cause Automake to be
+       re-run if not making a distribution.  Fixes bug reported by
+       Joerg-Martin Schwarz.
+       (require_file_with_line): New function.
+       (require_file): Use it.
+       (am_line_error): Don't print line number if $symbol is empty.
+       (get_object_extension): Use require_file_with_line.
+       (handle_libraries): Use require_file_with_line.
+       (handle_texinfo): Use require_file_with_line.
+       (handle_configure): Use am_conf_line_error and
+       require_file_with_conf_line.
+       (handle_subdirs): Use require_file_with_conf_line.
+       (handle_configure): Use require_file_with_conf_line.
+       (handle_tests): Push check-TESTS on @phony.
+       (am_conf_line_error): New function.
+       (require_file_with_conf_line): New function.
+       (require_file_internal): New function.
+       (require_file_with_line): Use it.
+       (require_file): Ditto.
+       (am_conf_line_error): Handle empty line number.
+       (ac_gettext_line, ac_output_line): New variables.
+       (scan_configure): Set them.
+
+Fri Mar  1 00:13:04 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (parse_arguments): Default strictness is gnu.
+       Changed `normal' to `foreign' everywhere.
+       (parse_arguments): Handle --foreign.
+       (initialize_global_constants): Document --foreign.
+       (handle_dependencies): Better error message.
+       (handle_texinfo): Don't push $vtexi on @texis.
+       (handle_texinfo): Only push $vtexi on @texi_deps if not null.
+       (handle_configure): install-sh is a config file; require it as
+       such.
+       (parse_arguments): Renamed --install-missing to --add-missing.
+       (add_missing): Renamed from install_missing.
+       (am_install_var): Check to make sure contents of install variable
+       are correct if primary requires it.  Test badprog.test.
+       (initialize_global_constants): Initialize
+       %primary_uses_subobjects.
+       (handle_source_transform): Skip configure substitutions.  Test
+       depend.test.  Also, skip empty elements.
+
+Thu Feb 29 22:00:30 1996  Tom Tromey  <address@hidden>
+
+       * texinfo.tex: New version.
+
+       * automake.in (am_install_var): Allow extended range of
+       installation directories.
+
+       * automake.in (get_object_extension): Don't allow
+       @CONFIG_INCLUDE_SPEC@ in the Makefile.in when config.h not used.
+       From Gord Matzigkeit.  Test confincl.test.
+
+       * texinfos.am (install-info): Changed usage of install-info (in
+       comment).  Per Feb 25 GNU Standards document.
+
+Wed Feb 28 07:40:55 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_tests): New function.
+       (generate_makefile): Call it.
+       (handle_subdirs): Skip directories whose names look like configure
+       substitutions.
+       (handle_subdirs): Require intl and po, not @INTLSUB@ and @POSUB@,
+       when using gettext.
+       (scan_configure): Clear in_ac_output if "]" found.  Test
+       acoutqnl.test.
+       (require_config_file): New function.
+       (generate_makefile): Use require_config_file.
+       (config_aux_path): New variable.
+       (scan_configure): Check for AC_CONFIG_AUX_DIR.
+       (handle_merge_targets): Add install-strip rule.
+
+Tue Feb 27 20:00:36 1996  Tom Tromey  <address@hidden>
+
+       * mdate-sh: New version from Ulrich Drepper.
+
+       * automake.in (handle_source_transform): Changed fill back to
+       empty string.
+       (handle_libraries): Ditto.
+       (handle_dist): Ditto.
+       (handle_dependencies): Ditto.
+       (handle_footer): Ditto.
+       (handle_phony): Ditto.
+
+       * Makefile.am (DIST_SUBDIRS): Removed.
+       (installcheck-local): Use Perl, not test -x.
+       (PERL): New macro.
+       (maintainer-check): Use $(PERL), not @address@hidden
+
+       * configure.in (VERSION): Upped to 0.31.
+
+Sat Feb 24 18:02:19 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (scan_configure): AC_CHECK_TOOL requires config.sub
+       and config.guess.
+
+       * automake.in: Use keyed_aclocal_warning when warning about
+       fp_PROG_INSTALL.
+       (get_object_extension): Use keyed_aclocal_warning when warning
+       about fp_C_PROTOTYPES.
+       (keyed_aclocal_warning): New function.
+
+       * Makefile.am (pkgdata_DATA): Install aclocal.m4.
+       * aclocal.m4: Include fp_C_PROTOTYPES, fp_PROG_CC_STDC.
+
+       * automake.in (get_object_extension): Only give error about
+       fp_C_PROTOTYPES once.
+
+       * automake.in (seen_ranlib): New variable.
+       (scan_configure): Recognized AC_PROG_RANLIB.
+       (handle_libraries): Error if ranlib not checked for.
+
+       * automake.in (default_strictness): Default to GNU.
+       (default_strictness_name): Ditto.
+
+Wed Feb 21 18:15:02 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (read_am_file): Removed @kr@ support.
+       (get_object_extension): Ditto.
+
+       * Makefile.am (pkgdata_DATA): Include ansi2knr.c and ansi2knr.1.
+
+Tue Feb 20 17:25:18 1996  Tom Tromey  <address@hidden>
+
+       * depend.am ($(srcdir)/.deps/%.P): Regexp fix.
+
+Mon Feb 19 19:53:09 1996  Tom Tromey  <address@hidden>
+
+       * remake.am ($(srcdir)/Makefile.in): Depend on configure.in.
+       * remake-subd.am ($(srcdir)/Makefile.in): Depend on configure.in.
+
+       * automake.in (handle_scripts): Ensure $scripts_installed set to
+       boolean value.  Test proginst.test.
+
+       * Makefile.am (installcheck-local): New target.
+
+       * automake.in (require_file): No error if missing file is
+       installed.
+
+Sun Feb 18 17:10:00 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_scripts): SCRIPTS no longer automatically
+       cleaned.  Now possible to install scripts in pkgdatadir.
+       ($seen_canonical): New variable.
+       (generate_makefile): Check for config.guess and config.sub here;
+       fixes bug reported by Gord Matzigkeit.
+
+       * Makefile.am (pkgdata_SCRIPTS): New variable.
+       (CLEANFILES): New macro.
+
+       * scripts-clean.am: Removed.
+
+Sat Feb 17 00:15:20 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (am_install_var): Error if primary variable actually
+       defined.
+       (am_install_var): Skip elements that look like configure
+       substitutions.
+       (am_install_var): "EXTRA" is a valid prefix.
+       (am_install_var): Push contents EXTRA_PRIMARY onto @result.
+       (handle_merge_targets): Treat "all" target like "install".
+       (handle_subdirs): Don't push all-recursive.
+
+       * header.am (address@hidden@HEADERS): Don't depend on all.
+       * data.am (address@hidden@DATA): Don't depend on all.
+       * libraries.am (address@hidden@LIBRARIES): Don't depend on all.
+       * programs.am (address@hidden@PROGRAMS): Don't depend on all.
+       * scripts.am (address@hidden@SCRIPTS): Don't depend on all.
+
+       * automake.in (am_install_var): Push generated install targets
+       onto @phony.
+
+       * subdirs.am: No longer depend on Makefile and $(CONFIG_HEADER).
+       * automake.in (handle_merge_targets): Correctly handle recursive
+       calls of uninstall, install-exec, and install-data.
+       (handle_merge_targets): Put Makefile, and possibly $config_name,
+       onto @all.
+       (handle_merge_targets): Push 'all' onto @install as appropriate.
+
+Fri Feb 16 18:27:04 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_configure): config.status is in
+       $(top_builddir), not $(top_srcdir).  Reported by Anthony Green.
+
+       * automake.in (scan_configure): Recognize (AC|fp)_FUNC_FNMATCH.
+
+Thu Feb 15 19:12:45 1996  Tom Tromey  <address@hidden>
+
+       * automake.in: (seen_prog_yacc): New variable.
+       (scan_configure): Look for yacc.
+       (handle_source_transform): Skipp C++ header files.
+       (handle_source_transform): .cxx is a C++ source file.
+
+Wed Feb 14 08:36:02 1996  Tom Tromey  <address@hidden>
+
+       * depend.am ($(srcdir)/.deps/.P): Use "echo", not ":".
+
+       Implemented --verbose feature; idea from Greg Woods:
+       * automake.in (verbose): New global.
+       (generate_makefile): Print creating message if verbose.
+       (grep_for_vers_texi): Print message if verbose.
+       (handle_dependencies): Ditto.
+       (scan_configure): Ditto.
+       (read_am_file): Ditto.
+       (parse_arguments): Added --verbose.
+       (initialize_global_constants): Ditto.
+
+       * automake.in (get_object_extension): Use am_line_error.
+       (handle_source_transform): Ditto.
+       (handle_libraries): Ditto.
+       (handle_texinfo): Ditto.
+       (handle_man_pages): Ditto.
+       (handle_dist): Ditto.
+       (handle_dist): Ditto.
+       (handle_subdirs): Ditto.
+       (handle_configure): Ditto.
+       (handle_merge_targets): Ditto.
+       (am_install_var): Ditto.
+       (am_line_error): Allow actual line number as argument.
+       (handle_configure): Use am_line_error.
+       (scan_configure): Set config_header_line.
+       (config_header_line): New global.
+       Use @PERL@ to find perl during exec.  From Greg Woods.
+
+Tue Feb 13 22:06:51 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (initialize_per_input): Init %content_lines.
+       (read_am_file): Set appropriate content_lines elements while
+       reading.
+       (am_line_error): New function.
+       (read_am_file): Use it.
+       (handle_options): Ditto.
+
+       * automake.in (scan_configure): Handle case where more than one .o
+       is put into LIBOBJS at once.  Test libobj.test.
+
+Mon Feb 12 20:39:28 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (scan_configure): Ignore "\" in AC_OUTPUT line.
+       Test acouttbs.test.
+       (handle_subdirs): Restored intl, po warnings.
+
+       * automake.in (scan_configure): Delete everything after "," or
+       ")".  Test acoutnoq.test.
+       (handle_dist): Use $relative_dir, not nonexistent $subdir.
+       (handle_subdirs): 'po' and 'intl' are sometimes substituted into
+       SUBDIRS; don't warn about their absence.
+
+Sun Feb 11 16:55:15 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_texinfo): Removed bogus error message.
+
+       * automake.in (handle_texinfo): Push $(INFO_DEPS), not 'info',
+       onto @all.
+       (handle_options): Handle version number.
+
+       * automake.in ($maint_charset, $dist_charset): New variables.
+       (initialize_per_input): Init $local_maint_charset.
+       (handle_dist): Handle DIST_CHARSET and MAINT_CHARSET.
+       (generate_makefile): Don't print "creating...".
+
+Sat Feb 10 16:45:07 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (get_object_extension): Substitute
+       @CONFIG_INCLUDE_SPEC@ if CONFIG_HEADER defined.
+       (handle_source_transform): Use $1, not \1.
+       (pretty_print_internal): Handle Tabs in fill when computing indent
+       on new line.
+       (handle_merge_targets): Always generate install-exec and
+       install-data targets.  Test instexec.test.
+       Fixed error message if fp_PROG_INSTALL missing.
+
+       * compile-vars.am (DEFS): Include -I., -I$(srcdir), and
+       @address@hidden
+
+       * automake.in (scan_configure): Delete everything after "]".  Test
+       acoutput.test.
+
+       * configure.in (AC_OUTPUT): Create tests/Makefile.
+       * Makefile.am (SUBDIRS): New macro.
+
+       * automake.in (handle_texinfo): Put $vtexi on texi_deps.  From Jim
+       Meyering.
+
+       * configure.in (AC_OUTPUT): Ensure automake is executable.
+
+Thu Feb  8 17:30:29 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_subdirs): Error if directory in SUBDIRS does
+       not exist.
+
+       * automake.in (handle_configure): Handle AC_OUTPUT ":" syntax.
+
+       From Jim Meyering:
+       * libraries.am (address@hidden@LIBRARIES): Depend on all, not
+       (@address@hidden).
+       * header.am (address@hidden@HEADERS): Depend on all, not
+       $(@address@hidden).
+       * data.am (address@hidden@DATA): Depend on all, not $(@address@hidden).
+       * scripts.am (address@hidden@SCRIPTS): Depend on all, not
+       $(@address@hidden).
+       * programs.am (address@hidden@PROGRAMS): Depend on all, not
+       $(@address@hidden).
+
+       * automake.in (initialize_per_input): Initialize
+       $use_dependencies.
+       ($seen_path_xtra): New variable.
+       (scan_configure): Look for AC_PATH_XTRA.
+       (get_object_extension): Add variables to output if X seen.
+
+Thu Feb  8 10:02:45 1996  Greg A. Woods  <address@hidden>
+
+       * automake.in (handle_programs): add pkglib to list of
+       directories for C
+       (various): include a tab as fill for continuation lines
+       printed with pretty_print*, esp. for macro variable assignments.
+       [ changed to 4 spaced by me ]
+
+Wed Feb  7 18:00:29 1996  Tom Tromey  <address@hidden>
+
+       * configure.in (VERSION): Upped to 0.30.
+
+       * Makefile.am (automake): Removed.
+       (DIST_OTHER): Removed.
+
+       * automake.in (handle_source_transform): All dep_files are
+       relative to $(srcdir).
+       (handle_libraries): Ditto.
+       (scan_configure): Test for AC_PROG_INSTALL as well as
+       fp_PROG_INSTALL.  Don't error here.
+       (seen_prog_install): Now global.
+       (scripts_installed): New global.
+       (handle_scripts): Set it.
+       Give error if appropriate install macro not seen.
+       (handle_subdirs): Ensure $seen_gettext before requiring
+       gettext-specific files.
+       (handle_configure): Automatically rebuild 
+
+        From Jim Meyering:
+       * automake.in (handle_source_transform): Use \W when quoting
+       regexp.  When blah_SOURCES not explicitly defined, still create
+       entry in %deps.
+       * depend.am ($(srcdir)/.deps/%.P): Don't use \< in regexp.
+       * subdirs.am (maintainer-clean-recursive): Now depends on
+       $(CONFIG_HEADER) and Makefile.
+
+       * automake.in (handle_source_transform): Skip macro references.
+
+Mon Feb  5 14:58:58 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_texinfo): Include "rm" when deleting files.
+
+       * Makefile.am (maintainer-check): Expect only one ${...}.
+       * texinfos.am (install-info): Remove unneeded ${...}.  From Jim
+       Meyering.
+
+       * automake.in (handle_configure): Only define CONFIG_HEADER if
+       $config_name.
+       ($seen_gettext): New variable.
+       (handle_subdirs): Do all gettext-related checking here.
+       (scan_configure): Just set $seen_gettext.
+       (handle_man_pages): Properly quote $(MANS).
+
+Wed Jan 31 09:51:30 1996  Tom Tromey  (address@hidden)
+
+       * depend.am: Don't use srcdir anywhere.
+       * automake.in (handle_libraries): Don't make .deps relative to
+       srcdir.
+       (handle_options): Recognize no-dependencies.
+
+       * depend.am (MKDEP): From Jim Meyering: Do nothing if srcdir is
+       ".".  Properly quote regexp.
+
+Tue Jan 30 12:19:09 1996  Tom Tromey  (address@hidden)
+
+       * automake.in (handle_configure): Only defined CONFIG_HEADER if
+       $config_name.
+       (read_am_file): Quote regexp when substituting top_builddir.
+       (handle_source_transform, handle_libraries): Look in
+       $(srcdir)/.deps for .P files.
+
+Fri Jan 26 00:15:25 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (am_conf_error): New function.
+       (scan_configure): Use it.
+       (scan_configure): A comma also ends AC_OUTPUT macro.
+
+       * automake.in (read_am_file): Compute top_builddir when including
+       header-vars.am.
+       (handle_configure): Use $top_builddir, not $top_reldir.
+       (other_input_files): New variable.
+       (dirname): Fixed bug where dirname of 'a/b/c' was 'a', not 'a/b'.
+
+       Changes from Gord Matzigkeit to enabled hierarchies deeper than 2:
+       * automake.in (input_files, seen_make_set): Declare globally.
+       (parse_arguments): Use input_files, not make_list.
+       Only scan configure.in once.
+       (handle_dist): Use SUBDIRS to determine when to make
+       subdirectories and recurisvely dist.  Use $(topdir), not "..", to
+       find top of dist tree.
+       (handle_configure): Check for AC_PROG_MAKE_SET here.  Don't require
+       configure.in (done elsewhere).
+       (scan_configure): seen_make_set is global.  Allow arbitrary space
+       in LIBOBJS assignment.
+       (top_builddir): New variable.
+       * header-vars.am (top_builddir): New variable.
+       * remake-subd.am (Makefile): Look in top_builddir, not .., when
+       remaking.
+       * automake.in (handle_merge_targets): Run 'all' before
+       check-recursive.
+
+       * automake.in (file_contents_with_transform): Changed error
+       message.
+       (handle_configure): Define $contents{'CONFIG_HEADER'}.
+
+       * texi-version.am: Many changes to support multiple .texi files.
+       Replaced "version.texi" with "@VTEXI@".  Replaced "vti" with
+       "@VTI@".
+       * automake.in (handle_configure): install.sh is an anachronism.
+       (handle_texinfo): Generalized for multiple .texi files.  Handle
+       'clean-info' internally.
+       * texi-clean.am: Removed.
+       * Makefile.am: Updated for removal.
+
+Wed Jan 24 22:55:32 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (grep_for_vers_texi): New function.
+       (handle_texinfo): Use grep_for_vers_texi, not system("grep").
+       (handle_texinfo): Changes to generalize to multiple .texi files.
+
+Tue Jan 23 14:22:16 1996  Tom Tromey  <address@hidden>
+
+       Fixes from Gord Matzigkeit:
+       * libraries.am (address@hidden@LIBRARIES): Use top_srcdir, not
+       topsrcdir.
+       * header.am: New file.
+       * Makefile.am (pkgdata_DATA): Install header.am.
+       * automake.in (handle_headers): Use header.am, not data.am.
+       (am_install_var): Allow pattern to be compiled multiple times.
+
+       * config.guess, config.sub: New files.
+       * Makefile.am (pkgdata_DATA): Install config.guess and
+       config.sub.
+       * automake.in (scan_configure): Recognize AC_CANONICAL_HOST and
+       AC_CANONICAL_SYSTEM.
+
+Sun Jan 21 15:51:48 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_texinfo): Use info_TEXINFOS, not TEXINFOS.
+       (handle_man_pages): Use man_MANS, not MANS.
+
+       * Makefile.am (info_TEXINFOS): Renamed.
+
+       * automake.in (scan_configure): Remove comments from input line.
+       (am_variable): Removed.
+
+       * remake-hdr.am (stamp-h): Use new macro CONFIG_HEADER_IN.
+
+       * automake.in (config_name, config_header): New globals.
+       (scan_configure): Look for AC_CONFIG_HEADER.
+       (handle_configure): Handle more uses of AC_CONFIG_HEADER.
+
+Sat Jan 20 15:54:24 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_dist_worker): Bug fix.
+
+Fri Jan 19 00:50:29 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (require_file): Install missing files only according
+       to desired strictness.
+       (initialize_per_input): Don't init libsources.
+       (scan_configure): Reinit libsources.
+       (handle_libraries): Search _LIBADD for @LIBOBJS@ and @address@hidden
+       (fp_c_prototypes): New global.
+       (scan_configure): Set it.
+       (get_object_extension): Error if fp_C_PROTOTYPES not in
+       configure.in when using ansi2knr.
+       (handle_source_transform): Skip header files.
+
+       * automake.in (handle_dist_worker): Explicitly make 'dist' in
+       subdirs.
+
+Thu Jan 18 00:25:56 1996  Tom Tromey  <address@hidden>
+
+       From François Pinard:
+       * automake.in (handle_source_transform): Transform $o file into .P
+       file.
+       (handle_dist_worker): Handle case where DISTFILES includes
+       wildcard.  Bug fix in subdir case.
+
+       * automake.in (parse_arguments): Initialize strictness to
+       'normal'.
+
+Sun Jan 14 13:54:16 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (scan_configure): Look for NLS support.
+
+       Changes from François Pinard:
+       * texinfos.am (install-info): Correctly install when build dir is
+       not srcdir.
+       * tags-subd.am (ID): Indentation change.
+       * kr-vars.am (o): Use "address@hidden@o", not "@address@hidden".
+       * depend.am ($(srcdir)/.deps/%.P): Remove temporary file.
+       * automake.in (handle_dist_worker): Fixlets.
+       (handle_dist): Sort keys going into dist_common.
+
+Sat Jan 13 00:18:06 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_dist_worker): If Gnits, don't allow release
+       until NEWS is updated.
+
+       * configure.in (VERSION): Version 0.29.
+
+       * Makefile.am (maintainer-check): Look for perl4.036 in path.
+
+       * dist-vars.am (DISTFILES):  Include BUILT_SOURCES.
+       (DEP_DISTFILES): Ditto.
+
+       * automake.in (handle_dist_worker): Depend on DEP_DISTFILES.
+       * dist-vars.am (DEP_DISTFILES): New variable.
+
+       * automake.in (handle_options): Support dist-shar option.
+       (handle_dist_worker): New function.
+       (handle_dist): Use it.
+
+       * texi-version.am (mostlyclean-vti): Remove version.tmp, not
+       *.tmp.
+
+       * automake.in (handle_dist): Chmod distdir 777.  From François
+       Pinard.
+
+       * automake.in (scan_configure): New function.
+       (initialize_per_input): Init libsources.
+       (generate_makefile): Run handle_configure first.
+       (handle_configure): Run scan_configure.
+       (handle_configure): Don't look for AC_PROG_MAKE_SET here.
+
+Thu Jan 11 23:14:18 1996  Tom Tromey  <address@hidden>
+
+       * Makefile.am (AUTOMAKE_OPTIONS): New variable.
+
+       * automake.in (strictness, strictness_name): Renamed.
+       (initialize_per_input): Set strictness, strictness_name.
+       Initialize %options.
+       (generate_makefile): Run handle_options.
+       (handle_options): New function.
+       (handle_man_pages): Make install-man depend on $(MANS).  Turn off
+       man page install if no-installman option given.
+       (read_am_file): Deprecate @address@hidden
+       (get_object_extension): Look at ansi2knr option.
+       (parse_arguments): Take global strictness from command-line
+       options.
+
+Tue Jan  9 11:24:14 1996  Tom Tromey  <address@hidden>
+
+       Fixes from François Pinard:
+       * depend.am ($(srcdir)/.deps/%.P): Handle deansification.
+       * automake.in (get_object_extension): Use $o, not $(kr)o.
+       (handle_source_transform): Don't look for $(kr)c files.
+       * kr-vars.am (o): New macro.
+       (kr): Removed.
+
+       * depend.am (DEP_FILES): Removed.
+       * automake.in (handle_source_transform): Push .P file onto
+       dep_files.
+       (initialize_per_input): New variable %dep_files.
+       (handle_dependencies): Generate DEP_FILES here.
+
+Mon Jan  8 22:27:33 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (do_one_clean_target): Only remove config.status in
+       top-level directory.
+       (handle_tags): Removed 'id' from .PHONY list.  From Jim Meyering.
+
+       * clean.am (maintainer-clean-generic): Remove BUILT_SOURCES.
+
+       * automake.in (handle_dist): Make "ln" quiet.
+
+       * tags-subd.am (ID): Depend on HEADERS and SOURCES.
+
+Sat Jan  6 10:58:23 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_merge_targets): 'check' shouldn't depend on
+       'all' at top level.
+       (file_contents_with_transform): New function.
+       (am_install_var): Use file_contents_with_transform.
+       (handle_programs): Ditto.
+       (handle_libraries): Ditto.
+       (handle_texinfo): Ditto.
+       (handle_merge_targets): Let 'install' depend on 'all' if no other
+       dependencies exist.  From Jim Meyering.
+       (check_gnu_standards): GNU requires AUTHORS file.  (See
+       maintain.text).
+       (require_file): Put body in loop.
+       (get_object_extension): Only call require_file once.
+       (handle_configure): Ditto.
+
+       From Jim Meyering:
+       * depend.am ($(srcdir)/.deps/.P): Depend on $(BUILT_SOURCES).
+       * tags-subd.am (id): Removed.
+
+Fri Jan  5 10:31:19 1996  Tom Tromey  <address@hidden>
+
+       * Added copyright notice to each .am file.
+
+       * automake.in: Cleanups from François Pinard to avoid $#.
+       (require_argument): Fixed sense of test.
+       (set_strictness): Bug fix.
+
+Thu Jan  4 21:21:29 1996  Tom Tromey  <address@hidden>
+
+       * Makefile.am (pkgdata_DATA): Removed old dist files.
+
+       * dist-subd-top.am, dist-subd.am, dist.am: Removed.
+
+       * automake.in (set_strictness): Set $strictness_name.
+       (strictness_name): New variable.
+       (handle_dist): Substantially rewrote.
+
+       * configure.in: Point AC_INIT at automake.in.
+
+       * automake.in (generate_makefile): Report errors against
+       Makefile.in, not Makefile.am.
+
+Wed Jan  3 00:05:40 1996  Tom Tromey  <address@hidden>
+
+       * mdate-sh: Bug fix from Jim Meyering.
+
+       * dist.am (dist): Changed in parallel with dist-subd-top.am.
+
+       * mkinstalldirs: Reverted.
+
+       * automake.in (initialize_global_constants): Allow COPYING.LIB
+       again.
+       (check_gnits_standards): Disallow COPYING.LIB.
+
+       * texinfos.am (install-info): Only look in $(srcdir) for info
+       files.
+
+       * automake.in (initialize_global_constants): New variable
+       gen_copyright.
+       (read_am_file): Put a copyright in each Makefile.in.
+
+       * dist-vars.am (DISTFILES): Put DIST_COMMON first.
+
+       * automake.in (am_install_var): Put space before "=".
+       (handle_dist): Put README first in DIST_COMMON.
+
+       * Makefile.am (pkgdata_DATA): Include COPYING.
+
+       * COPYING: New file.
+
+       * automake.in (parse_arguments): Added --gnu and --gnits as
+       synonyms.
+       (initialize_global_constants): Ditto.
+       (initialize_global_constants): Don't auto-distribute COPYING.LIB.
+       (initialize_global_constants): Look for README first.
+       (initialize_global_constants): Auto-distribute AUTHORS, BACKLOG,
+       ABOUT-GNU.
+       (check_gnu_standards): Require file COPYING.
+
+       From François Pinard:
+       * automake.in (file_contents): Comment out "warn"s.
+       (usage): Use 4 columns.
+       (USAGE_FORMAT): Ditto.
+
+       * texinfos.am (install-info): Look for info file relative to $$d.
+
+       * Makefile.am (cvs-dist): Suppress output of "grep".
+
+       * configure.in (VERSION): Version 0.28.
+
+       * automake.in (pretty_print_internal): Fix for Perl 4
+       compatibility.
+
+       * configure.in (VERSION): Version 0.27.
+
+       * depend.am ($(srcdir)/.deps/%.P): Must regexp-quote srcdir in sed
+       invocation.
+
+       * automake.in (initialize_global_constants): Don't quote "@" in
+       $install_man_format.
+       (handle_merge_targets): use "@:" as empty command, not ":".
+
+Tue Jan  2 23:33:24 1996  Tom Tromey  <address@hidden>
+
+       * texinfos.am (install-info): Look in $d for info files.  From
+       François Pinard.
+
+       * depend.am ($(srcdir)/.deps/%.P): Fixed regexp.
+
+       * automake.in (read_am_file): Correctly deal with continued
+       variable definitions.
+
+Mon Jan  1 15:43:25 1996  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_merge_targets): 'check' target depends on
+       'all'.
+       (file_contents): Don't be so verbose.
+       (read_am_file): Ditto.
+       (read_am_file): Must use substr to check for trailing \.
+       (am_install_var): Use push_phony_cleaners.
+       (file_contents): Set $was_rule when assuming a rule is seen.
+       (read_am_file): Ditto.
+       (do_one_clean_target): Removed spurious newline.
+
+       Some changes from François Pinard:
+       * Removed trailing whitespace from all '.am' files.
+       * tags-subd.am (ID): Use &&, not ;.
+       (TAGS): Ditto.
+       * automake.in (parse_arguments): Removed useless message.
+       (parse_arguments): Don't explicitly referenced STDERR.
+       (require_argument): Ditto.
+       (am_error): Ditto.
+       (set_strictness): Ditto.
+       (file_contents): Ditto.
+       (read_am_file): Ditto.
+       (generate_makefile): Style tweaks.
+       (handle_programs): Ditto.
+       (handle_libraries): Ditto.
+       (handle_texinfo): Ditto.
+       (handle_man_pages): Ditto.
+       (handle_tags): Ditto.
+       (handle_dist): Ditto.
+       (handle_subdirs): Ditto.
+       (handle_configure): Ditto.
+       (handle_footer): Don't put newline before footer.am contents.
+       (handle_merge_targets): Style tweaks.
+       (do_one_clean_target): Ditto.
+       (dirname): Ditto.
+       (am_variable): Ditto.
+       Defined some new constants.
+       (generate_makefile): Don't call generate_header.
+       (generate_header): Removed.
+       (file_contents): Rewrote.
+       (read_am_file): Rewrote.
+
+       * automake.in (generate_makefile): Handle phony target.
+       (do_one_clean_target): Pretty-print dependencies.
+       (handle_installdirs): Pretty-print rule.
+
+       * Makefile.am (maintainer-check): Made some commands silent.
+
+       * automake.in (initialize_global_constants): Don't install or
+       uninstall cat'd man pages.
+       (initialize_per_input): Added phony target.
+       (push_phony_cleaners): New function.
+       (get_object_extension): Handle phony targets.
+       (handle_texinfo): Ditto.
+       (handle_man_pages): Ditto.
+       (handle_tags): Ditto.
+       (handle_dist): Ditto.
+       (handle_subdirs): Ditto.
+       (handle_installdirs): Ditto.
+       (handle_merge_targets): Ditto.
+       (handle_clean): Ditto.
+       (do_one_merge_target): Ditto.
+       (am_install_var): Ditto.
+       (handle_phony): New function.
+       (generate_makefile): Call it.
+       (pretty_print_internal): New function.
+       (pretty_print_rule): Ditto.
+
+Sun Dec 31 13:04:59 1995  Tom Tromey  <address@hidden>
+
+       * automake.in (initialize_global_constants): Don't print body of
+       loop at make time.
+
+       Changes from François Pinard:
+       * depend.am (MKDEP): Include DEFS, INCLUDES, CPPFLAGS, CFLAGS.
+       (DEP_FILES): Put dependency files in $(srcdir).
+       Look in $(srcdir) when including dependency files.
+       ($(srcdir)/.deps/.P): .deps/.P is in $(srcdir).
+       (.deps/%.P): MKDEP includes all macro expansions.
+       * dist-subd-top.am (dist): Get absolute path for distdir.  Don't
+       be so verbose.
+       * dist-subd.am (dist): Don't be so verbose.
+       * dist.am (dist): Don't be so verbose.
+
+       * automake.in (do_one_clean_target): Remove config.status in
+       maintainer-clean.  From Jim Meyering.
+
+       * programs-clean.am (address@hidden@PROGRAMS): Bug fix.  From Jim
+       Meyering.
+
+       * automake.in (handle_merge_targets): Add dummy command for empty
+       install target.  From Jim Meyering.
+
+Tue Dec 12 10:06:28 1995  Tom Tromey  <address@hidden>
+
+       * texinfos.am (uninstall-info): Bug fix.
+
+       * Makefile.am (maintainer-check): Error if ${...} used.
+       * depend.am (DEP_FILES): Prefer $(...).
+
+       * scripts.am (address@hidden@SCRIPTS): Only install script if it
+       exists.
+       * libraries.am (address@hidden@LIBRARIES): Only install library if
+       it exists.
+       * programs.am (address@hidden@PROGRAMS): Only install program if it
+       exists.
+
+       * texinfos-vars.am (TEXFILES): Removed.
+
+       * Makefile.am (pkgdata_DATA): Removed libprograms.am.
+
+       * automake.in (do_one_merge_target): Never generate trailing
+       whitespace.
+       (pretty_print): New function.
+       (handle_footer): Prettyprint definitions.
+       (am_install_var): Ditto.
+       (handle_source_transform): Ditto.
+       (handle_dist): Ditto.
+       (handle_libraries): Ditto.
+       (read_am_file): Put comments nearer appropriate code.
+
+       * texi-clean.am (mostlyclean-info): Use continued lines, not
+       multiple rm's.  From Jim Meyering.
+
+Sun Dec 10 11:59:33 1995  Tom Tromey  <address@hidden>
+
+       * Makefile.am (pkgdata_DATA): Cause INSTALL, install-sh, mdate-sh,
+       mkinstalldirs, texinfo.tex to be installed.
+       * automake.in (symlink_exists): New global.
+       (install_missing): Ditto.
+       (require_file): Install missing files if possible.
+       (parse_arguments): Handle --install-missing option.
+       (initialize_global_constants): Document --install-missing.
+
+       * Makefile.am (cvs-dist): Don't release unless NEWS updated.
+       Ensure 'checks' pass before release.
+       (maintainer-check): Renamed.  Look in $(srcdir) for sources.  From
+       Franc,ois Pinard.
+       (cvs-dist): Depend on maintainer-check instead of explicitly
+       running check.
+
+       * configure.in (VERSION): Version 0.26.
+
+       * Makefile.am (check-local): Only look at [a-z]*.am.  Fixed sense
+       of 'if' test.
+
+       * depend.am (DEP_FILES): Bug fix.
+
+       * automake.in (do_one_clean_target): Typo.
+
+       * Makefile.am (check-local): Run syntax check under Perl 4.
+
+       * automake.in: Fixes for Perl 4, from Gord Matzigkeit.
+       (handle_source_transform): Loop variable is now $_.  From Gor
+
+       * Makefile.am (check-local): Check for 'true' in source.
+       * texinfos.am (install-info): Can't use "true" in any rule.
+
+Sat Dec  9 10:16:48 1995  Tom Tromey  <address@hidden>
+
+       * Makefile.am (cvs-dist): New target.
+
+       * tags.am (TAGS): Use "test -z ... ||" to avoid spurious
+       failures.
+
+       * texinfos.am (install-info): Don't do install-info for now.
+
+       * clean.am (distclean-generic): Don't remove config.status here.
+       * automake.in (do_one_clean_target): Remove config.status later,
+       for 'make -j2'.  From Jim Meyering.
+
+Fri Dec  8 16:30:48 1995  Tom Tromey  <address@hidden>
+
+       * configure.in (VERSION): Version 0.25.
+
+       * automake.in (handle_texinfo): Use "$? >> 8", not "$?".
+       (handle_configure): Check for AC_PROG_MAKE_SET.
+
+       * depend.am (DEP_FILES): Handle deANSIfication case.  From Jim
+       Meyering.
+
+       * automake.in (am_install_var): Changed how 'clean' handled for
+       uniform name targets.
+       * Makefile.am (pkgdata_DATA): Added new files.
+       * data-clean.am: New file.
+       * scripts-clean.am: New file.
+       * libraries-clean.am: New file.
+       * programs-clean.am: New file.
+
+Wed Dec  6 00:06:11 1995  Tom Tromey  <address@hidden>
+
+       * automake.in (am_install_var): Error if variable name
+       "misspelled".
+       (handle_source_transform): Automatically include .c file
+       corresponding to .y or .l.
+
+Tue Dec  5 00:46:14 1995  Tom Tromey  <address@hidden>
+
+       * programs.am: Changed for uniform naming scheme.
+
+       * automake.in (read_am_file): Allow '-' and '.' in target names.
+       (generate_makefile): Don't pass arguments to handle_libraries.
+       (initialize_per_input): Define @sources, @objects.
+       (generate_makefile): Init @sources, @objects if needed.
+       (handle_source_transform): Push onto @sources, @objects here.
+       (am_install_var): Push primary onto @all, for configure-time
+       customization.
+       (handle_programs): Use new uniform naming scheme.
+
+       * Makefile.am (check-local): New target.
+
+       * automake.in (handle_libraries): Use uniform naming scheme.
+
+       * libraries.am: Rewrote for uniform naming scheme.
+
+       * scripts.am: Updated names of all clean targets.
+
+       * automake.in (handle_programs): Split on all whitespace.
+       (handle_libraries): Ditto.
+       (handle_texinfo): Ditto.
+       (handle_man_pages): Ditto.
+       (am_install_var): Changed return result.
+       (am_install_var): Changed interface.
+       (am_install_var): Push onto @clean@ if requested.
+       (handle_scripts): Pass -clean to am_install_var.
+
+Mon Dec  4 11:55:36 1995  Tom Tromey  <address@hidden>
+
+       * automake.in (am_install_var): Push target onto @all.
+       (get_object_extension): Use $(...).
+       (handle_source_transform): Ditto.
+       (handle_programs): Ditto.
+
+       * automake.in (require_argument): New function.
+       (parse_arguments): Use it.
+       (push_dist_common): New function.
+       (generate_makefile): Use it.
+       (handle_texinfo): Ditto.
+       (handle_dist): Ditto.
+       (handle_configure): Ditto.
+       (require_file): Ditto.
+       (generate_makefile): Don't pass arguments to handle_scripts.
+       (handle_configure): Require configure.in.
+       (check_gnu_standards): New function.
+       (check_gnits_standards): Ditto.
+       (generate_makefile): Check standards.
+
+       * Makefile.am (bin_SCRIPTS): Changed name from SCRIPTS.
+
+       * automake.in (LENIENT, GNU, GNITS): New constants.
+       (initialize_per_input): New function.
+       (generate_makefile): Use it.
+       (initialize_global_constants): Renamed from init_globals.
+       (require_file): Added strictness argument.
+       (parse_arguments): Added --strict option.
+       (set_strictness): New function.
+       (parse_arguments): use it.
+       (initialize_global_constants): Document --strictness.
+
+       * automake.in: Use ${1+"$@"} to preserve quoting when running
+       under sh.
+
+       * texinfos.am (install-info): Don't use "true".
+       * tags.am (TAGS): Don't use "true".
+
+       * dist.am, dist-subd-top.am, remake-hdr.am, remake-subd.am,
+       remake.am, subdirs.am, texinfos.am: Use "&&" after cd.
+
+       * program.am (@PROGRAM@): Use LINK macro.
+       * compile.am (.c.o): Use COMPILE macro.
+
+       * clean.am, remake-hdr.am, remake.am, texinfos.am: Use $(...), not
+       ${...}.
+
+       * subdirs.am (RECURSIVE): Removed macro.
+
+       * clean.am: Changed to not be so verbose.
+
+       * Makefile.am (pkgdata_DATA): Include texi-clean.am.
+       * automake.in (handle_texinfo): Transform texi-clean and put into
+       output rules.
+       * texinfos-vars.am (TEXFILES): Removed.
+       * texinfos.am: Removed 'clean' targets.
+       * texi-clean.am: New file.
+
+       * Makefile.am (ETAGS_ARGS): Just use 'automake.in'.
+
+       * texinfos-vars.am (TEXFILES): Added *.op.
+
+       * dist-vars.am (DISTFILES): Renamed from DIST_FILES, per GNU
+       standards.
+       * dist.am (dist): Use DISTFILES.
+       * dist-subd.am (dist): Use DISTFILES.
+       * dist-subd-top.am (dist): Use DISTFILES.
+
+Sun Dec  3 00:24:08 1995  Tom Tromey  <address@hidden>
+
+       * Makefile.am (ETAGS_ARGS): Define.
+
+       * depend.am (.deps/.P): Use ":", not "echo timestamp".  From Jim
+       Meyering.
+
+       * dist-vars.am (DIST_FILES): Removed PACKAGEDATA.
+
+       * automake.in (handle_scripts): Use am_install_var.
+
+       * scripts.am: Rewrote for new uniform naming scheme.
+
+       * Makefile.am (pkgdata_DATA): Removed libscripts.am.
+
+       * libscripts.am: Removed.
+
+       * packagedata.am: Removed.
+
+       * Makefile.am (PACKAGEDATA): Removed packagedata.am.
+       (pkgdata_DATA): Renamed from PACKAGEDATA.
+
+       * automake.in (handle_data): Use am_install_var.
+       (init_globals): Init %exec_dir_p.
+
+       * data.am: Rewrote for new uniform naming scheme.
+
+       * automake.in (get_object_extension): New function.
+       (handle_programs): Use it.
+       (dir_holds_sources): Changed interpretation.
+       (handle_headers): New function.
+       (am_install_var): New function.
+       (generate_makefile): Call handle_headers.
+
+       * header-vars.am (pkgdatadir): New macro.
+       (pkglibdir): Ditto.
+       (pkgincludedir): Ditto.
+
+       * automake.in (handle_source_transform): New function.
+       (am_error): New function.
+       (generate_makefile): Use it.
+       (handle_source_transform): Ditto.
+       (handle_texinfo): Ditto.
+       (handle_dependencies): Ditto.
+       (handle_merge_targets): Ditto.
+       (require_file): Ditto.
+
+Sat Dec  2 21:39:56 1995  Tom Tromey  <address@hidden>
+
+       * automake.in: Updated FSF address.  From Jim Meyering.
+       * header-vars.am: Updated FSF address.
+
+       * distname.am: Removed.
+
+       * automake.in (file_contents): Strip "##" comments.
+       * Various files: Added "##" comments for strange things.
+
+       * automake.in (handle_tags): Generate TAGS rule for every
+       directory.
+
+       * subdirs.am (RECURSIVE): Include installcheck-recursive.
+       * automake.in (installcheck): New variable.
+       (generate_makefile): Initialize it.
+       (handle_subdirs): Push 'installcheck-recursive'.
+       (handle_merge_targets): Handle installcheck target.
+
+Thu Nov 30 20:13:16 1995  Tom Tromey  <address@hidden>
+
+       * automake.in ($PACKAGE): Removed.
+
+       * header-vars.am (ALL): Removed.
+
+       * automake.in: Reworked 'all' target handling.
+
+       * automake.in (generate_makefile):
+       Don't use AM_ forms in call to am_variable.
+
+       * automake.in: Changes for Perl 5, from Gord Matzigkeit
+
+       * clean.am (MOSTLYCLEANFILES, MAINTAINERCLEANFILES): New variables.
+
+       * automake.in (handle_footer): Allow SUFFIXES variable.
+
+       * automake.in (am_variable): New function.
+       (handle_texinfo): Use it.
+       (generate_makefile): Use it.
+
+       * configure.in: Version 0.24.
+
+Wed Nov 29 23:50:14 1995  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_libraries):
+       Generate blah_LIBADD defines if required.
+
+       * library.am (address@hidden@.a): Look at $(@address@hidden)
+
+       * libraries-vars.am (LIBOBJS, ALLOCA): Removed.
+
+       * compile-kr.am: ($(OBJECTS)): Depend on $(ANSI2KNR), not ansi2knr.
+
+       * configure.in: Version 0.23
+
+       * dist-subd-top.am (dist): Don't die if a subdirectory already exists.
+
+       * dist-subd-top.am, dist.am (dist): Give automake --output-dir option.
+
+       * automake.in: New option --output-dir
+
+       * automake.in (handle_configure): Fixed typo.
+
+       * automake.in (handle_installdirs): Always make installdirs target.
+
+       * subdirs.am (RECURSIVE): Removed uninstall-data-recursive and
+       uninstall-exec-recursive.  Added installdirs-recursive.
+
+       * automake.in (handle_installdirs): Handle installdirs-recursive.
+       (handle_man_pages): 'all' depends on $(MANS)
+
+       * Makefile.am: Removed mans.am.
+
+       * automake.in: More man-related fixes
+
+       * automake.in: Bug fixes
+
+       * automake.in: Rewrote man page handling.
+
+       * texi-version.am, remake-hdr.am, depend.am: Don't use touch.
+
+       * automake.in (handle_installdirs): New function.
+       (@installdirs): New global.
+       Many changes to deal with installdirs.
+
+       * clean.am (clean-generic): Always supply 'else' clause to 'if'
+
+       * automake.in (generate_header): Don't use header.am.
+       (handle_dist): Don't use dist-subd-vars.am.
+
+       * Makefile.am (PACKAGEDATA): Removed dist-subd-vars.am, header.am.
+
+       * Makefile.am (DISTCLEANFILES): Removed.
+
+       * clean.am (clean-generic): Bug fix.
+
+       * clean.am (clean-generic): Only remove CLEANFILES if nonempty
+
+       * texi-version.am (clean-vti): No such macro as VTI
+
+Tue Nov 28 19:56:07 1995  Tom Tromey  <address@hidden>
+
+       * automake.in: Bug fix for maintainer-clean
+
+       * automake.in (do_one_clean_target):
+       Print special text in maintainer-clean.
+       (handle_clean): Always include clean.am
+
+       * clean.am: Use -generic clean targets.
+
+       * compile.am: Added clean targets.
+
+       * configure.in: Version 0.22.
+
+       * automake.in (handle_dependencies):
+       Put trailing newline after all deps.
+
+       * automake.in (handle_dependencies): Another dependency bug fix.
+
+       * automake.in (handle_dependencies):
+       Bug fix when including dependencies.
+
+       * automake.in (handle_configure):
+       Verify existence of install-sh, mkinstalldirs
+
+       * automake.in (handle_texinfo): Include stamp-vti in distribution
+
+       * dist-subd-vars.am, dist-vars.am (DIST_FILES):
+       Include DATA, PACKAGEDATA.
+
+       * Makefile.am: Nothing
+
+       * Makefile.am (DIST_OTHER): Don't distribute gettext-sh
+
+       * automake.in (handle_texinfo): Typo
+
+       * automake.in: If script ends up in shell, feed to perl
+
+       * automake.in: Rewrote 'clean' rules.
+       Documentation made and installed first.
+       'all' depends on 'info'
+
+Mon Nov 27 23:57:29 1995  Tom Tromey  <address@hidden>
+
+       * configure.in, Makefile.am: Turned off internationalization.
+
+       * clean-kr.am: Rewrote for new clean scheme.
+
+       * tags-clean.am: Remove TAGS in distclean, not maintainer-clean
+
+       * Makefile.am (PACKAGEDATA): Include tags-clean.am
+
+       * subdirs.am: Removed bogus local clean targets
+
+       * tags-clean.am: Initial revision
+
+       * texi-version.am: Added clean targets
+
+       * texinfos.am: Fixes to clean targets.
+
+       * texinfos.am, libscripts.am, scripts.am, libraries.am, libprograms.am, 
programs.am:
+       Added clean targets
+
+       * compile-kr.am (ansi2knr.o): Depend on CONFIG_HEADER
+
+       * automake.in: Completely revamped automatic de-ANSI-fication
+
+       * compile-kr.am: (ansi2knr, $(OBJECTS)): New targets
+
+       * compile-vars.am (LINK): New macro
+
+       * kr-vars.am: Trailing blank line
+
+       * compile-kr.am: Rewrote
+
+       * compile-vars.am (COMPILE): New macro
+
+       * compile-vars.am (ANSI2KNR): Removed
+
+       * Makefile.am (PACKAGEDATA): Removed all sed scripts.  Added kr-vars.am
+
+       * kr-vars.am: Initial revision
+
+       * automake.in (require_file): New function.
+       (handle_texinfo): Require 'mdate-sh'
+       (common_sometimes): New variable
+       (usage): Use it.
+
+       * texi-version.am (stamp-vti): Use Ulrich's mdate-sh script
+
+       * mdate-sh: Initial revision
+
+       * automake.in (handle_footer): Don't define SOURCES or OBJECTS if empty
+
+       * automake.in (generate_makefile):
+       Put Makefile.in, Makefile.am in @dist_common
+       (handle_configure): Use @dist_common as appropriate
+
+       * dist-subd-vars.am, dist-vars.am (DIST_CONF): Removed
+
+       * configure.in: Abort if perl not found
+
+       * configure.in: Look for perl
+
+       * automake.in: Reimplemented in Perl
+
+       * automake.in: Fixlet
+
+Sun Nov 26 08:09:30 1995  Tom Tromey  <address@hidden>
+
+       * automake.in: Always print ".SUFFIXES:" rule.
+
+       * automake.in: Distribution config.h.in if required
+
+       * automake.in: Bug fix when including texi-version.am
+
+       * automake.in: Bug fix when looking for .texi file in $am_reldir
+
+       * depend.am: Comment fix
+
+       * automake.in: Look for .texi file in $am_reldir
+
+       * automake.in: Fixlet
+
+       * automake.in: Blank line after targets from user's Makefile.am
+
+       * automake.in: Move footer items to actual footer
+
+       * automake.in: Include stamp-h.in in DIST_COMMON if necessary
+
+       * automake.in (common):
+       Don't include acconfig.h, config.h.top, config.h.bot
+
+       * Makefile.am (CONFIG_HEADER): Renamed from CONFIG_H
+
+       * Makefile.am (CONFIG_H): Define
+
+       * acconfig.h: Initial revision
+
+       * configure.in: Use AC_CONFIG_HEADER.
+
+       * automake.in: Put blah_TEXINFOS into DIST_COMMON
+
+       * automake.in: .info file explicitly depends on primary .texi file
+
+       * texinfos.am (install-info): Always supply 'else' clause to 'if'
+
+       * tags.am (TAGS): Always supply 'else' clause to 'if'
+
+       * subdirs.am (.NOEXPORT): Removed (now in footer.am)
+
+       * automake.in: Always include footer.am in output
+
+       * mans.am (install-man): Always supply 'else' clause to 'if'
+
+       * automake.in: More version.texi fixes
+
+       * automake.in: Only do version.texi processing if requested.
+
+       * automake.in: Minor internationalization fixes.
+       Subshell can now exit with nonzero status.
+       Fixed up .texi handling; now uses texi-version.am
+       Make sure '.c' and '.o' are in .SUFFIXES if required.
+
+       * Makefile.am (PACKAGEDATA): Include texi-version.am
+       (stamp-vti, version.texi): Removed
+       (TEXINFOS): Don't reference version.texi
+
+       * texi-version.am: Initial revision
+
+       * dist.am, dist-subd-top.am (dist):
+       [DIST_SUBDIRS] Follow symlinks when copying.
+
+       * dist-subd-top.am (dist): Removed unneeded subdir= option to make
+
+Sat Nov 25 23:23:39 1995  Tom Tromey  <address@hidden>
+
+       * automake.in: Added --amdir option
+
+       * Makefile.am, configure.in: Turned on internationalization
+
+       * Makefile.am: Set EDITION
+
+       * configure.in: Version 0.21
+
+       * tags.am, tags-subd.am: Don't use double-colon rules
+
+       * automake.in: Redid install-data, install-exec, uninstall handling
+
+       * configure.in: Turn off i18n
+
+Fri Nov 24 23:51:37 1995  Tom Tromey  <address@hidden>
+
+       * automake.in (common): Remove NLS
+
+       * automake.in (common): Include ABOUT-NLS.
+
+       * automake.in: Test for install-sh and mkinstalldirs
+
+       * automake.in: Blank line after OBJECTS= line
+
+       * automake.in: Start subshell in loop after check for Makefile.am
+
+       * automake.in: --use-deps now the default
+
+       * automake.in (am_dir): Don't apply transform to install directory name
+
+       * packagedata.am: Don't apply transform to install directory name
+
+       * Makefile.am (SUBDIRS): Hold off on internationalization
+
+Thu Nov 23 18:02:38 1995  Tom Tromey  <address@hidden>
+
+       * automake.in:
+       Write 'SOURCES =' line after copying Makefile.am variables
+
+       * automake.in: Fixed bug in "--" option processing
+
+       * subdirs.am: ($(RECURSIVE)): Removed trailing \ from last line
+
+       * Makefile.am (DIST_OTHER): Include gettext-sh
+
+       * Makefile.am (SUBDIRS): Define
+
+       * configure.in: Include internationalization bits
+
+       * automake.in: Many changes to avoid double-colon rules.
+
+       * subdirs.am: ($(RECURSIVE)): Print name of target actually used
+
+       * subdirs.am: Removed "::" rules
+
+       * header.am: Removed install, uninstall
+
+       * header.am: Added install, uninstall targets
+
+       * hack-make.sed: Rewrite targets like "all-local" to "all_local"
+
+       * header.am, libraries.am, mans.am, texinfos.am, footer.am:
+       Removed "::" rules
+
+       * Makefile.am (PACKAGEDATA): Include libscripts.am
+
+       * libprograms.am: Don't install libscripts here
+
+       * libscripts.am: Initial revision
+
+       * scripts.am, programs.am, libprograms.am: Removed "::" rules
+
+       * automake.in (am_dir): Run package name through name transform.
+
+       * automake.in: Don't use packagedata.sed or data.sed
+
+       * Makefile.am (PACKAGEDATA): Removed data.sed, packagedata.sed.  Added
+       packagedata.am
+
+       * data.am: No longer run through sed
+
+       * packagedata.am: Initial revision
+
+Wed Nov 22 22:31:02 1995  Tom Tromey  <address@hidden>
+
+       * automake.in: No blank line after Usage
+
+       * automake.in: Removed "NLS nuisances" section.
+       Now uniformly uses $echo for user-visible messages (in advance of
+       internationalization)
+
+       * subdirs.am (maintainer-clean): Don't use realclean-local
+
+       * Makefile.am: Use PACKAGEDATA, not custom code
+
+       * data.am: Use @LONG@, not $(@LONG@)
+
+       * automake.in: Handle DATA and PACKAGEDATA
+
+       * packagedata.sed: Initial revision
+
+       * data.am: Use @DIR@, not $(@DIR@)
+
+       * data.sed: Use $(datadir), not datadir
+
+       * data.sed: Initial revision
+
+       * data.am: Wrote uninstall targets
+
+       * data.am: Initial revision
+
+       * dist-subd.am (dist): Don't link a file that has already been linked
+
+       * dist-subd-top.am, dist.am (dist):
+       Run `automake --include-deps' before making distribution
+
+       * automake.in: More dependency-tracking bug fixes
+
+       * dist-vars.am (DIST_FILES): Rearranged to be like dist-vars-subd.am
+
+       * dist-subd-vars.am (DIST_FILES): Include DIST_COMMON
+
+       * tags-subd.am, tags.am: Added trailing blank line
+
+       * depend.am: Use ".P", not "empty.P", as placeholder.
+
+       * automake.in: Only include depend.am if SOURCES not empty
+
+       * automake.in: Added --use-deps and --include-deps options.
+       Handle auto-generating dependencies.
+
+       * Makefile.am (am_DATA): Include depend.am
+
+       * depend.am: Initial revision
+
+       * automake.in: Look for acconfig.h, config.h.top, and config.h.bot
+
+       * automake.in: Put blank line after .SUFFIXES
+
+       * scripts.am: Added blank line at end
+
+       * scripts.am: Removed unnecessary comment
+
+       * scripts.am: Removed unnecessary workarounds
+
+       * automake.in: Don't include programs.am if PROGRAMS empty
+
+       * header-vars.am (INSTALL_SCRIPT): Typo
+
+       * texinfos.am, compile-kr.am: Don't include .SUFFIXES
+
+       * automake.in: Handle .SUFFIXES here.
+
+       * configure.in: Use fp_PROG_INSTALL
+
+       * header-vars.am: Changes for autoconf 2.5.
+       Now includes INSTALL_SCRIPTS.
+
+       * texinfos.am (install-info): Bug fix
+
+       * automake.in:
+       Include scripts.am or libscripts.am in output if appropriate
+
+       * programs.am (install-programs, uninstall-programs):
+       Don't install SCRIPTS
+
+       * Makefile.am (am_DATA): Include scripts.am
+
+       * scripts.am: Initial revision
+
+Tue Nov 21 09:11:38 1995  Tom Tromey  <address@hidden>
+
+       * automake.in:
+       Cleaned up how "prog_SOURCES" variable is found in input.
+       Ditto prog_OBJECTS.
+       Put static sed scripts into separate, installed files.
+
+       * Makefile.am (am_DATA): Include hack-make.sed and nl-remove.sed
+
+       * hack-make.sed, nl-remove.sed: Initial revision
+
+       * texinfos.am (install-info): Rewrote
+
+       * subdirs.am (all-recursive): Put with other -recursive rules
+
+       * configure.in: Version 0.20
+
+       * automake.in: Another bug fix
+
+       * automake.in: Bug fix when looking for texinfo.tex
+
+       * texinfo.tex: Initial revision
+
+       * automake.in:
+       If TEXINFOS defined but texinfo.tex does not exist, give warning.
+
+       * subdirs.am (all): Renamed from _all.  Now uses all-recursive
+       (all-recursive): Don't fail immediately if -k specified.
+
+Mon Nov 20 22:48:03 1995  Tom Tromey  <address@hidden>
+
+       * subdirs.am (_all):
+       New target.  Now use Jim Meyering's formulation of AIX
+       workaround.
+       (install-exec, install-data): New targets
+
+Sat Nov 18 19:07:30 1995  Tom Tromey  <address@hidden>
+
+       * remake.am (Makefile.in): automake "Makefile", not "Makefile.am"
+
+       * automake.in: Use @datadir@
+
+       * automake.in: Added @configure_input@ line
+
+Fri Nov 17 23:32:43 1995  Tom Tromey  <address@hidden>
+
+       * automake.in: "--help" option now prints auto-recognized file names.
+       Allow AM_ overriding of more variables.
+
+       * texinfos.am (install-info):
+       Don't cd to srcdir to avoid breaking install-sh
+       Other bug fixes
+
+       * Makefile.am: Handle automake.texi
+
+Thu Nov 16 18:43:43 1995  Tom Tromey  <address@hidden>
+
+       * subdirs.am (all): Separated out due to AIX 3.2.5 bug.
+
+       * tags.am (TAGS): bug fix
+
+       * automake.in: Use am_dir, not AM_DIR.
+       Use version, not VERSION.
+       Bug fix in TAGS code.
+
+       * Makefile.am (am_DATA): Include tags.am and tags-subd.am
+
+       * subdirs.am: TAGS target now in tags.am
+
+       * footer.am: TAGS and ID targets now in tags-subd.am
+
+       * tags-subd.am, tags.am: Initial revision
+
+       * automake.in: Cleaned up AM_PROGRAM code.
+       Handle TAGS target better
+
+       * remake.am, remake-subd.am (Makefile.in): Bug fix.
+
+       * automake.in (usage): Updated
+
+       * remake-subd.am, remake.am:
+       Added rule where Makefile.in depends on Makefile.am
+
+       * automake.in: Entire body of 'for' loop now in subshell
+
+       * automake.in (common): config.guess and config.sub are common files.
+
+       * dist-subd-top.am, dist.am (dist): Bug fix.
+
+       * Makefile.am (DIST_OTHER): Don't include TODO
+
+       * automake.in: Auto-include TODO and THANKS files.
+
+       * dist-subd-top.am, dist.am (dist): Don't depend on DIST_DIRS
+
+       * automake.in: More bug fixes in "look for Makefile.am" code.
+
+       * automake.in: Bug fix in "look for Makefile.am" code.
+
+       * automake.in:
+       If no arguments given, look for all Makefile.am's in this
+       directory and in immediate subdirs
+
+       * automake.in: Bug fixes for LDADD-override feature.
+
+       * program.am: Use @address@hidden, and put after LDFLAGS
+
+       * automake.in: Allow `prog_LDADD', if specified, to override LDADD.
+
+       * automake.in: Use AM_PROGRAMS, not ALLPROGRAMS, and invert sense.
+
+       * header-vars.am (ALL): Use PROGRAMS, not ALLPROGRAMS.
+
+Wed Nov 15 01:54:43 1995  Tom Tromey  <address@hidden>
+
+       * automake.in: No longer look for _SOURCES or _OBJECTS
+
+       * header-vars.am:
+       Remove "automatically created" header (now in automake).
+       Updated copyright.
+
+       * automake.in: Put version info in Makefile header
+
+Tue Nov 14 23:38:17 1995  Tom Tromey  <address@hidden>
+
+       * automake.in: Minor cleanups
+
+       * dist-subd-top.am, dist.am (dist):
+       Don't link or copy file if it already exists.
+
+       * automake.in:
+       Look for _SOURCES (common sources) and generate _OBJECTS.
+
+       * footer.am (ID, TAGS): Include HEADERS
+
+       * dist-vars.am, dist-subd-vars.am (DIST_FILES): Include HEADERS
+
+Mon Nov 13 22:20:02 1995  Tom Tromey  <address@hidden>
+
+       * dist-subd.am (distdir): Is relative to ".."
+
+       * dist-subd-vars.am (PACKAGE, VERSION): Define
+
+       * dist-subd.am (dist): Don't handle DIST_DIRS.
+
+       * mans.am (uninstall-man): Another bug fix.
+
+       * mans.am (uninstall-man): Bug fix.
+
+       * dist.am, dist-subd-top.am (dist): Bug fix
+
+       * Makefile.am (DIST_SUBDIRS): New macro
+
+       * dist-subd-top.am, dist.am (dist): Handle DIST_SUBDIRS
+
+       * Makefile.am (DIST_OTHER): Include automake.in
+
+       * Makefile.am (DISTCLEANFILES): New macro.
+
+       * automake.in (common): Include COPYING.LIB
+
+       * Makefile.am (automake): New rule.
+
+       * texinfos.am (install-info): Changed per GNU standards
+
+       * remake-hdr.am (stamp-h.in):
+       Use "touch", not "date", per GNU standards.
+
+       * automake.in (common): Include texinfo.tex
+
+Sun Nov 12 23:59:08 1995  Tom Tromey  <address@hidden>
+
+       * automake.in: More fixes when finding common files.
+
+       * Makefile.am (DIST_OTHER): Another removal.
+
+       * automake.in: Special-case when amdir=.
+
+       * Makefile.am (DIST_OTHER): Removed auto-detected files.
+
+       * automake.in:
+       Search for commonly-used files and auto-include them in distribution
+
+       * dist-vars.am (DIST_FILES): Include DIST_COMMON.
+       (DIST_CONF): Removed files searched for by automake.
+
+       * automake.in: More arg-parsing bug fixes.
+
+       * Makefile.am (DIST_OTHER): Include install-sh
+
+       * Makefile.am (DIST_OTHER): Don't include auto-included files.
+
+       * automake.in: Bug fixes to argument parsing code.
+
+       * automake.in: Handle --version and --help.
+       NLS stuff from autoconf.
+
+       * Makefile.am (amdatadir): Fixed typo.
+       (install): Make install directories
+
+       * Makefile.am: Use "install::", not "install:"
+
+       * install-sh, mkinstalldirs: Initial revision
+
+       * configure.in: Use AC_PROG_INSTALL
+
+       * automake.in: Set AM_DIR based on configure results.
+
+       * Makefile.am (install): New target.
+       (amdatadir): New variable.
+
+       * automake.in: Use "#! /", not "#!/".
+
+       * Makefile.am, configure.in: Initial revision
+
+       * automake.in: Renamed from "automake".
+       Set VERSION.
+
+       * dist.am (PACKAGE, VERSION): Now in dist-vars.am
+
+       * automake.in: Insert remake-subd.am if appropriate.
+
+       * subdirs.am (TAGS): Include $(CONFIG_HEADER) when making tags.
+
+       * automake.in: Handle ALLPROGRAMS variable.
+
+       * header-vars.am (ALL): Use ALLPROGRAMS, not PROGRAMS.
+
+       * automake.in: Fixlet when printing "subdir=DIR"
+
+       * automake.in: Put "subdir=DIR" into subdir Makefile
+
+       * automake.in: Don't refer to distname.am.
+       Only put footer.am in subdir Makefiles.
+
+       * subdirs.am (id, ID): New target.
+       (.NOEXPORT): Copied from footers.am.
+
+       * subdirs.am (TAGS): Bug fixes.
+
+       * subdirs.am (TAGS): Don't fail if a subdir doesn't have TAGS target.
+
+       * subdirs.am (maintainer-clean-local): Remove TAGS
+
+       * subdirs.am (TAGS): Make tags file that includes all subdir tags files
+
+       * subdirs.am: Use maintainer-clean, per GNU standards
+
+       * dist-subd-top.am: Some variables defined in dist-vars.am
+
+       * dist-vars.am (PACKAGE, VERSION):
+       New variables, initialized by configure
+
+       * footer.am (id, ID): New targets
+       (TAGS): Put TAGS file in build, not source, directory
+
+       * remake-subd.am (Makefile): Don't assume subdir is 'src'
+
+       * dist.am: Changed to assume PACKAGE and VERSION are set by configure.
+
+       * dist-subd.am: Changed to conform to new top-level dist target.
+
+       * dist-subd-top.am:
+       Changed to assume PACKAGE and VERSION are set by configure.
+
+       * clean-kr.am, clean.am (maintainer-clean):
+       Updated rules per GNU standards.
+
+       * clean.am, clean-kr.am (maintainer-clean): Renamed from realclean.
+
+Sat Nov  5 14:39:50 1994  djm  <address@hidden>
+
+       * automake.in, texinfos.am: kludge for multiple-part info files
+
+Thu Nov  3 13:33:44 1994  djm  <address@hidden>
+
+       * clean.am, clean-kr.am: remove INFOS
+
+Wed Nov  2 06:15:42 1994  djm  <address@hidden>
+
+       * texinfos.am: add path
+
+       * remake.am, remake-hdr.am: account for VPATH limitations
+
+Mon Oct 24 23:01:59 1994  djm  <address@hidden>
+
+       * automake.in, dist-subd-top.am, dist-subd.am, dist.am, header-vars.am, 
libprograms.am, programs.am:
+       handle SCRIPTS and LIBSCRIPTS similar to PROGRAMS
+
+Sun Oct 23 01:50:41 1994  djm  <address@hidden>
+
+       * texinfos.am: install-info depends on info files
+
+       * dist-subd-vars.am, dist-vars.am: distrib info files
+
+Sun Oct  2 02:03:06 1994  djm  <address@hidden>
+
+       * clean-kr.am, clean.am: fix up distclean
+
+       * subdirs.am: fix typo
+
+       * clean.am: do more in distclean
+
+Sat Oct  1 23:52:51 1994  djm  <address@hidden>
+
+       * libraries.am: make install depend on all
+
+       * automake.in: fix typo
+
+Wed Sep 28 21:15:26 1994  djm  <address@hidden>
+
+       * dist-subd-vars.am, dist-vars.am, header-vars.am: fix doc bugs
+
+       * automake.in, compile-vars.am, dist.am: fix dist for no subdirs
+
+       * dist-subd-top.am: Initial revision
+
+       * automake.in, header-vars.am, libraries-vars.am, mans-vars.am, 
texinfos-vars.am:
+       centralize prefix var setting
+
+       * header-vars.am: set all the std vars based on prefix
+
+Tue Sep 27 01:32:22 1994  djm  <address@hidden>
+
+       * automake.in: don't add kr stuff if not needed
+
+       * dist-vars.am: add config vars to dist
+
+Mon Sep 26 23:09:09 1994  djm  <address@hidden>
+
+       * program.am: add LDADD
+
+       * compile-vars.am: remove LDADD from LDFLAGS
+
+       * clean.am: move knr stuff to another file
+
+       * automake.in: use different clean file for ansi2knr
+
+       * clean-kr.am: Initial revision
+
+Thu Sep 22 03:45:02 1994  djm  <address@hidden>
+
+       * automake.in, dist-subd.am, dist.am: fix rules and dist
+
+Tue Sep 20 21:29:40 1994  djm  <address@hidden>
+
+       * compile.am, automake.in: split out knr
+
+       * compile-kr.am: Initial revision
+
+       * libprograms.am: fix typo
+
+       * automake.in, clean.am, compile-vars.am, header-vars.am, 
libprograms.am:
+       make libprograms work
+
+       * libprograms.am: Initial revision
+
+       * automake.in, compile.am, header-vars.am: fix little bugs
+
+       * compile.am: allow parallel K&R
+
+       * clean.am: remove kerb temps
+
+       * automake.in: fix recognizing start of rules
+
+       * dist-subd.am, dist.am: fix dist
+
+       * automake.in, compile.am, footer.am, texinfos.am: fix ansi2knr
+
+Mon Sep 19 23:39:21 1994  djm  <address@hidden>
+
+       * automake.in: works on m4 too
+
+       * automake.in, mans.am: works on fileutils
+
+       * automake.in, clean.am, compile.am, dist-subd.am, dist.am, footer.am, 
header-vars.am, header.am, libraries.am, library.am, mans-vars.am, mans.am, 
programs.am, remake-hdr.am, remake-subd.am, remake.am, subdirs.am, texinfos.am:
+       works on fileutils except for all
+
+       * automake.in: vars thing
+
+       * header-vars.am: Initial revision
+
+       * texinfos-vars.am, mans-vars.am, libraries-vars.am, dist-vars.am, 
dist-subd-vars.am:
+       entered into RCS
+
+       * compile-vars.am: Initial revision
+
+       * automake.in: many improvements
+
+       * footer.am: Initial revision
+
+       * dist.am: remove distname
+
+       * automake.in: namespace cleanup
+
+       * distname.am: Initial revision
+
+       * automake.in, clean.am, compile.am, dist-subd.am, dist.am, header.am, 
libraries.am, library.am, mans.am, program.am, programs.am, remake-hdr.am, 
remake.am, subdirs.am, texinfos.am:
+       might work
+
+       * mans.am, libraries.am, texinfos.am, library.am, compile.am, 
program.am, programs.am, clean.am, subdirs.am, remake-subd.am, remake.am, 
remake-hdr.am, dist.am, dist-subd.am, header.am, automake.in:
+       Initial revision
+
diff --git a/ChangeLog.1998 b/ChangeLog.1998
new file mode 100644
index 0000000..68d4837
--- /dev/null
+++ b/ChangeLog.1998
@@ -0,0 +1,2185 @@
+1998-12-22  Marcus G. Daniels  <address@hidden>
+
+       * automake.in (handle_dependencies): Transform EXT & PFX in
+       Objective C case.
+
+1998-12-11  Marcus G. Daniels  <address@hidden>
+
+       * automake.in: Register Objective C language.
+       (finish_languages): Consider Objective C to be non_c.
+       (lang_objc_rewrite, lang_objc_finish): New functions.
+       (resolve_linker): Recognize OBJCLINK before LINK.
+
+1999-01-10  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_texinfo): Handle empty $config_aux_dir.
+
+       * automake.in (handle_texinfo): Set $conf_pat correctly when
+       config_aux_dir not used.
+       (handle_texinfo): Run maintainer-clean-aminfo rules in srcdir.
+       From Erez Zadok.
+       * texi-vers.am (address@hidden@): Prefix file names with
+       $(srcdir).  From Erez Zadok.
+       ($(srcdir)/address@hidden@): Don't run mdate-sh from srcdir.
+
+1999-01-08  Thomas Tanner  <address@hidden>
+
+       * depend.am: remove the dependencies (.deps)
+       in "make distclean", not "make maintainer-clean"
+
+1999-01-10  Tom Tromey  <address@hidden>
+
+       * aclocal.in (write_aclocal): Updated copyright.
+       (parse_arguments): Likewise.
+       * automake.in (parse_arguments): Updated copyright.
+       (initialize_global_constants): Likewise.
+
+       * Makefile.am (pkgdata_DATA): Renamed from pkgdata_SCRIPTS.
+       (install-data-hook): New hook.  Report from Petter Reinholdtsen.
+
+       * remake-hdr.am: Provide `else' clause for each `if'.
+
+1999-01-10  Alexandre Oliva  <address@hidden>
+
+       * remake-hdr.am: recover from removal of config headers, and try
+       to get real timestamps, which is useful for CVS files
+
+1999-01-10  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_merge_targets): Don't special-case "-local"
+       targets.  Test all.test.
+
+       * automake.in (handle_texinfo): Prepend $(srcdir) to directory
+       used to find texinfo.tex.  Report from Glenn Amerine.
+
+1999-01-07  Tom Tromey  <address@hidden>
+
+       Based on report from Marcus G. Daniels.  Fixes include.test.
+       * automake.in (generate_makefile): Call read_main_am_file.
+       (read_main_am_file): New sub.
+       (read_am_file): Moved header generation code into
+       read_main_am_file.
+
+1999-01-06  Gary V. Vaughan  <address@hidden>
+
+       * automake.in (require_file_internal): qub perl on win32 hangs
+       on a call to unlink for a non-existant file, which in turn causes
+       tests/symlink.test to hang on win32.  Check that the file exists
+       before unlinking it!
+
+1998-12-24  Thomas Tanner  <address@hidden>
+
+       * automake.in (handle_ltlibraries): check whether -module was
+       defined for libraries names without 'lib' prefix.
+
+Fri Dec 11 10:20:42 1998  Matthew D. Langston  <address@hidden>
+
+       * compile_f_c_cxx.test: Change to use F77 and F77LINK instead of
+       FC and FLINK, respectively.
+       * flibs.test: same
+       * fnoc.test: same
+       * fo.test: same
+       * fonly.test: same
+       * link_f_c.test: same
+       * link_f_c_cxx.test: same
+       * link_f_cxx.test: same
+       * link_f_only.test: same
+
+Fri Dec 11 10:23:17 1998  Matthew D. Langston  <address@hidden>
+
+       * automake.in, automake.texi: Change all of the Fortran 77 code to
+       use the new `F77' prefix instead of the older `FC' prefix.
+       Specifically this changed FC, FCOMPILE, LTFCOMPILE, FLINK and FLD
+       to F77, F77COMPILE, LTF77COMPILE, F77LINK and F77LD, respectively.
+
+1999-01-05  Tom Tromey  <address@hidden>
+
+       * depend2.am (%.o): Use \012, not \n, to avoid losing `tr's.  From
+       Bill Currie.
+       (%.lo): Likewise.
+
+1998-12-22  Alexandre Oliva  <address@hidden>
+
+       * depend2.am: Don't assume backslash can't occur in the middle of
+       filename; it loses on M$W
+
+1998-12-21  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_libraries): Reverted Thomas Tanner's
+       change.  Non-libtool libraries still must fit naming
+       requirements.
+
+1998-12-21  Alexandre Oliva  <address@hidden>
+
+       * automake.in (handle_configure): Dist inputs for AC_OUTPUT.
+
+1998-12-21  Alexandre Oliva  <address@hidden>
+
+       * depend2.am: don't use .p and .P for dependencies; it loses on
+       case-insensitive filesystems.
+       Reported by Henrik Frystyk Nielsen <address@hidden>
+
+1998-12-20  Thomas Tanner  <address@hidden>
+
+       * automake.in (handle_libraries, handle_ltlibraries): relax the
+       name checking to not enforce `^lib.*' for the sake of building libtool 
+       modules.
+
+1998-12-21  Tom Tromey  <address@hidden>
+
+       * automake.in (do_one_merge_target): Special case
+       install-data-hook and install-exec-hook.
+       (handle_merge_targets): Removed install-data-hook and
+       install-exec-hook code.  Test insthook.test.
+
+1998-12-16  Tom Tromey  <address@hidden>
+
+       * tags.am (ID): Uniquify list of sources.  Report from Jim
+       Meyering.
+
+1998-12-11  Tom Tromey  <address@hidden>
+
+       Bug report from Paul D. Smith:
+       * automake.in (handle_merge_targets): Set
+       AM_INSTALL_PROGRAM_FLAGS, not INSTALL_PROGRAM.
+       * header-vars.am (INSTALL_PROGRAM): Added
+       AM_INSTALL_PROGRAM_FLAGS.
+
+1998-12-03  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_dist): Print prettier banner when
+       `make dist' succeeds.  From Akim Demaille.
+
+1998-12-02  Tom Tromey  <address@hidden>
+
+       * configure.in: Upped version to 1.3e (1.3d was just released).
+
+       * configure.in: Upped version to 1.3d.
+
+       * texinfo.tex, config.guess, config.sub, install-sh: New
+       versions.
+       * ansi2knr.c: New version.
+
+       * automake.in (handle_configure): Quote @MAINTAINER_MODE_TRUE@ to
+       avoid problems where AM_MAINTAINER_MODE is put into automake's own
+       configure.in.
+
+       * Makefile.am (cvs-dist): Run `cvs tag' operation in srcdir.
+
+       Some bugs from François Pinard:
+       * automake.in (usage): Remove duplicates in file list.
+
+       * automake.in (usage): Print files in column-major order.
+       (handle_gettext): Only require ABOUT-NLS for GNU programs.
+
+1998-12-01  Tom Tromey  <address@hidden>
+
+       * automake.texi (Dist): Documented GZIP_ENV.
+       * automake.in (handle_dist): Define and use GZIP_ENV, not GZIP.
+       (initialize_global_constants): Use GZIP_ENV, not GZIP.
+
+1998-11-27  Tom Tromey  <address@hidden>
+
+       * automake.in (quote_cond_val): Use "\002", not '\002', to
+       represent null string.
+       (unquote_cond_val): Removing all "\002" strings from result.  Test
+       cond7.test.
+
+       * automake.texi: Formatting changes for latest texinfo.
+
+       * automake.in (handle_java): Removed debugging print.
+
+1998-11-18  Tom Tromey  <address@hidden>
+
+       * automake.in (finish_languages): Use CCLD, not CLD.
+
+       * automake.in (finish_languages): Define CLD; use it in LINK
+       definition.
+       (lang_cxx_finish): Define CXXLD; use it in CXXLINK definition.
+       (lang_f77_finish): Define FLD; use it in FLINK definition.
+       (lang_ppf77_finish): Likewise.
+       (lang_ratfor_finish): Likewise.
+
+1998-11-10  Matthew D. Langston  <address@hidden>
+
+       * automake.in (scan_one_configure_file): Recognize
+       AC_F77_LIBRARY_LDFLAGS, and recognize FLIBS as a configure
+       substitution.
+
+       * automake.texi: Fix several little Fortran 77 references to now
+       point to autoconf.texi.  Rename associated Fortran 77 macros from
+       `AM_' to `AC_'.
+
+1998-11-10  Tom Tromey  <address@hidden>
+
+       * automake.in (read_am_file): Handle configure_vars case.  Test
+       pluseq4.test.
+
+1998-11-09  Tom Tromey  <address@hidden>
+
+       * automake.in (read_am_file): `conditional_stack' isn't a
+       function.  Correctly add new value to existing value in `+='
+       case.
+
+1998-10-29  Gary V. Vaughan <address@hidden>
+
+       * automake.in (parse_arguments): Fixed type of -c for copying
+
+1998-10-30  Tom Tromey  <address@hidden>
+
+       * automake.texi (Install): Documented DESTDIR more fully.  From
+       Jeff Garzik.
+
+       * automake.in (MACRO_PATTERN): Recognize `+='.
+       (BOGUS_MACRO_PATTERN): Likewise.
+       (read_am_file): Handle `+=' assignments.
+
+1998-10-28  Tom Tromey  <address@hidden>
+
+       * Makefile.am (maintainer-check): Changed code to be acceptable to
+       bash 2.01.1.
+
+       * automake.in (do_one_clean_target): Special-case config.status.
+       Report from Jeff Garzik.
+
+       * m4/Makefile.am (m4data_DATA): Don't mention f77.m4.
+       * m4/f77.m4: Removed; macro now in autoconf proper.
+
+1998-10-24  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_dist_worker): Typo fix in code testing to
+       see if subdir is `.'.  From Raja R Harinath.
+
+       * m4/lispdir.m4: Fixed sed invocation.  From Akim Demaille.
+
+1998-10-20  Tom Tromey  <address@hidden>
+
+       * automake.in (scan_dependency_file): Fixed test on `while' loop.
+       Fixes depend2.test.  Report from Akim Demaille.
+
+1998-10-16  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_ltlibraries): Specify `noinst' when
+       computing valid prefixes.  From Ulrich Drepper.
+
+       * automake.in (scan_dependency_file): Don't give an error if there
+       is text after the last line.  Report from Matthew D. Langston.
+
+       * m4/mktime.m4: Detect glibc mktime bug.  From Jim Meyering.
+
+       * Makefile.am (SUBDIRS): Added `.' again.
+
+       * Makefile.am (EXTRA_DIST): Removed automake.spec.in.  From
+       Matthew D. Langston.
+       (info_TEXINFOS): Removed am-f77.texi.
+
+       * automake.in (handle_ltlibraries): Allow `noinst' LTLIBRARIES.
+       These are libtool convenience libraries.
+
+1998-10-13  Tom Tromey  <address@hidden>
+
+       * m4/f77.m4: New file.
+       * m4/Makefile.am (m4data_DATA): Added f77.m4.
+
+Thu Oct  8 15:00:57 1998  Matthew D. Langston  <address@hidden>
+
+       * automake.in (resolve_linker): Put the Fortran 77 linker where it
+       needs to be.
+
+       * automake.in (lang_f77_finish): Add support for Fortran 77.
+
+       * automake.in (f77_extensions): New helper function for function
+       `lang_f77_finish'.
+
+       * automake.in (lang_f77_rewrite): Change to return success.
+
+       * automake.in (scan_one_configure_file): Add test for the Fortran
+       77 compiler.
+
+       * automake.in (finish_languages): Changed tests for "C++ only" to
+       "C++ and/or Fortran 77 only", and renamed `all_cxx' to `non_c'.
+
+       * automake.in: Registered the ppf77 language (`.F' extension) for
+       preprocessed Fortran 77.
+       
+       * automake.in: Registered the ratfor language (`.r' extension).
+
+       * automake.in: Registered Fortran 77 header files with the "header
+       language" (`.inc' extension).
+
+Tue Sep  8 14:50:50 1998  Matthew D. Langston  <address@hidden>
+
+       * automake.texi: Added several new index entries.
+
+Sun Aug 30 16:10:31 1998  Matthew D. Langston  <address@hidden>
+
+       * automake.texi:
+       - Add address@hidden' (output variable index).
+       - Merge address@hidden' (Autoconf macros) and address@hidden' to the 
General
+         Index.
+
+       * automake.texi (Macros):
+       - Changed the address@hidden @code' list of macros to address@hidden'.
+       - Add `AC_PROG_FC' and `MDL_F77_LIBRARY_LDFLAGS' to the list.
+
+Tue Aug 11 10:42:39 1998  Matthew D. Langston  <address@hidden>
+
+       * automake.texi (C++): Change address@hidden' to address@hidden'.
+
+       * automake.texi (Fortran 77): Add Fortran 77 documentation.
+
+1998-10-11  Tom Tromey  <address@hidden>
+
+       Preliminary (completely untested) multilib support.
+       * automake.texi (Macros): Document AM_ENABLE_MULTILIB.
+       * m4/Makefile.am (m4data_DATA): Added multi.m4.
+       * Makefile.am (amfiles): Added multilib.am.
+       * automake.in (seen_multilib): New global.
+       (scan_one_configure_file): Recognize AM_ENABLE_MULTILIB.
+       (generate_makefile): Call handle_multilib.
+       (handle_multilib): New function.
+       * multilib.am: New file.
+       * m4/multi.m4: New file.
+
+1998-10-08  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_dist): Always include configure.in and
+       configure in distribution.  Fixes confdist.test.
+
+       * automake.in (do_one_merge_target): Be silent when running
+       install-exec-am and install-data-am.  Fixes extra3.test and
+       extra4.test.
+
+1998-10-07  Tom Tromey  <address@hidden>
+
+       * automake.in (am_install_var): Added -noextra option.
+       (handle_data): Pass -noextra to am_install_var.
+
+Sun Oct  4 22:24:10 1998  Tom Tromey  <address@hidden>
+
+       * m4/winsz.m4 (AM_HEADER_TIOCGWINSZ_NEEDS_SYS_IOCTL): Use
+       3-argument form of AC_DEFINE.
+       * m4/regex.m4 (AM_WITH_REGEX): Use 3-argument form of AC_DEFINE.
+       * m4/ptrdiff.m4 (AM_TYPE_PTRDIFF_T): Use 3-argument form of
+       AC_DEFINE.
+       * m4/protos.m4 (AM_C_PROTOTYPES):Use 3-argument form of
+       AC_DEFINE.
+       * m4/obstack.m4 (AM_FUNC_OBSTACK): Use 3-argument form of
+       AC_DEFINE.
+       * m4/init.m4 (AM_INIT_AUTOMAKE): Use 3-argument form of
+       AC_DEFINE.
+       * m4/dmalloc.m4 (AM_WITH_DMALLOC): Use 3-argument form of
+       AC_DEFINE.
+
+Tue Oct  6 00:02:15 1998  Tom Tromey  <address@hidden>
+
+       * depend2.am (%.lo): Handle case where compiler does not put space
+       before ":".  From Raja R Harinath.
+
+Mon Oct  5 13:05:43 1998  Tom Tromey  <address@hidden>
+
+       * automake.in (scan_one_configure_file): AC_CONFIG_HEADER is not
+       obsolete; it simply isn't preferred with automake.
+       (scan_one_configure_file): Likewise for AC_DECL_YYTEXT and
+       AC_PROG_LEX.
+
+       * automake.in (am_line_error): Handle case where variable defined
+       in configure.in.  Fixes test badline.test.
+       (%configure_vars): Redefined meaning of values.
+       (scan_one_configure_file): Set $configure_vars values
+       appropriately.
+
+Sat Oct  3 14:53:34 1998  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_aclocal_m4): Use new MAINTAINER_MODE
+       conditional.
+       (handle_configure): Likewise.
+       (read_am_file): Likewise.
+       (file_contents_with_transform): Likewise.
+       (scan_one_configure_file): Recognize that AM_MAINTAINER_MODE
+       defines a conditional.
+       * automake.texi (Optional): Document new AM_MAINTAINER_MODE.
+       * texi-vers.am ($(srcdir)/@VTEXI@): Look at MAINTAINER_MODE
+       conditional.
+       (address@hidden@): Likewise.
+       * remake.am ($(srcdir)/configure): Look at MAINTAINER_MODE
+       conditional.
+       * remake-hdr.am ($(srcdir)/@CONFIG_HEADER_IN@): Look at
+       MAINTAINER_MODE conditional.
+       * m4/maintainer.m4 (AM_MAINTAINER_MODE): Defined MAINTAINER_MODE
+       conditional.
+
+1998-10-03  Jim Blandy  <address@hidden>
+
+       * depend2.am (%.lo): When editing the dependency file to add the
+       .lo file to the targets, allow for whitespace between the end of
+       the filename and the colon.  Some compilers (notably the Cygnus
+       release of GCC 2.7-97r1) put space there: "alist.o : ..."
+
+Sat Oct  3 12:07:21 1998  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_configure): Handle case where there is no
+       Makefile in the config header directory.  Fixes test config.test.
+
+Thu Oct  1 00:51:51 1998  Tom Tromey  <address@hidden>
+
+       * depend2.am (%.o): Append sed results to .P file in this case
+       too.  From Raja R Harinath.
+
+       * m4/lispdir.m4 (AM_PATH_LISPDIR): Correctly find xemacs and
+       xemacs install directories.  From Robert Bihlmeyer.
+
+       * depend2.am: Don't bother trying to delete source file from
+       list.
+
+       * depend2.am (%.o): Handle deleted header file problem.
+       (%.lo): Likewise.
+
+       * texinfos.am (install-info-am): Handle case where INFO_DEPS is
+       empty.  Reported by Andrew Cagney.
+       (uninstall-info): Likewise.
+       (dist-info): Likewise.
+
+       * automake.in (handle_texinfo): Error if user tries to generate
+       HTML.
+
+Wed Sep 30 00:41:40 1998  Tom Tromey  <address@hidden>
+
+       * automake.in (do_one_clean_target): Don't push previous clean
+       target if this target is `mostly'.  Report from Raja R Harinath.
+
+       * subdirs.am (mostlyclean-recursive ...): Build local_target, not
+       target.  From Raja R Harinath.
+
+       Completely changed how languages and source files are handled:
+       * automake.in: Call register_language for each language.
+       (lang_c_rewrite): New function.
+       (lang_cxx_rewrite): Likewise.
+       (lang_header_rewrite): Likewise.
+       (lang_yacc_rewrite): Likewise.
+       (lang_yaccxx_rewrite): Likewise.
+       (lang_lex_rewrite): Likewise.
+       (lang_lexxx_rewrite): Likewise.
+       (lang_asm_rewrite): Likewise.
+       (lang_fortran_rewrite): Likewise.
+       (register_language): Likewise.
+       (extension_map): New global.
+       (language_map): Likewise.
+       (resolve_linker): New function.
+       (handle_single_transform_list): Rewrote to use lang_X_rewrite
+       functions.  Changed meaning of first argument.
+       (initialize_per_input): Removed seen_any_source.  Initialize
+       language_scratch, extension_seen.  Removed cxx_extensions,
+       seen_c_source, dir_holds_headers, dir_holds_sources.
+       (handle_source_transform): Don't compute $objpat.  Pass $obj
+       directly to handle_single_transform_list.
+       (handle_built_sources): Fixed call to
+       handle_single_transform_list.
+       (lang_c_finish): New function.
+       (lang_cxx_finish): Likewise.
+       (lang_header_finish): Likewise.
+       (lang_yacc_finish): Likewise.
+       (lang_yaccxx_finish): Likewise.
+       (lang_lex_finish): Likewise.
+       (lang_lexxx_finish): Likewise..
+       (lang_asm_finish): Likewise.
+       (lang_fortran_finish): Likewise.
+       (yacc_lex_finish_helper): Likewise.
+       (libtool_compiler): Likewise.
+       (saw_extension): New function.
+       (handle_lib_objects_cond): Use saw_extension, not old variables.
+       (handle_yacc_lex_cxx): Removed.
+       (finish_languages): New function.
+       (get_object_extension): Don't set dir_holds_sources.
+       (handle_headers): Don't set dir_holds_headers.  Instead, call
+       saw_extension.
+       (saw_sources_p): New function.
+       (handle_tags): Use it.
+       (handle_dependencies): Likewise.
+       (cxx_extensions): New function.
+       (handle_dependencies): Use it.
+       (generate_makefile): Call finish_languages, not
+       handle_yacc_lex_cxx.
+
+1998-05-24  Andreas Schwab  <address@hidden>
+
+       * texi-vers.am: Use the correct target names.  Fix generation of
+       stamp file.
+
+       * automake.in (handle_tests): In commands generating site.exp copy
+       the old contents from site.exp, not site.bak, which does not
+       exist.
+
+Tue Sep 29 00:10:22 1998  Tom Tromey  <address@hidden>
+
+       Fixed noinst.test again:
+       * automake.in (do_one_merge_target): Special-case `install-am'.
+       (handle_merge_targets): Don't compute @install variable.
+
+       Fixes for recurs2.test.  Report from Jim Meyering.
+       * automake.in (vars_scanned): Define globally.
+       (variable_value_as_list_worker): Delete $var entry in
+       %vars_scanned after local work is done.
+
+1998-05-26  Marcus G. Daniels  <address@hidden>
+
+       * automake.in: New pattern: INCLUDE_PATTERN.
+       (read_am_file):  Make AM_FILE a local filehandle.
+       For INCLUDE_PATTERN, store included paths on @include_stack and call 
+       read_am_file with argument.
+       (handle_configure): When printing the dependencies for
+       Makefile.in, print the items on include_stack (if any) as
+       dependencies, too.
+
+       * automake.texi: Make a command index `cm' that goes into the
+       concept index.  Put if, endif, else, and include in the command index.
+       (Include): Show usage of include directive.  
+
+Mon Sep 28 00:03:45 1998  Tom Tromey  <address@hidden>
+
+       `.' in SUBDIRS changes order of builds:
+       * Makefile.am (SUBDIRS): Added `.'.  Put tests last.
+       * tags.am (TAGS): Don't look for TAGS file in `.'.
+       * automake.texi (Top level): Document SUBDIRS change.
+       * automake.in (handle_installdirs): Create separate installdirs-am
+       target.
+       (handle_merge_targets): Don't put all-am onto @all.  Fixed error
+       message.  Correctly handle install-info.  Give error if
+       install-info-local inappropriately defined.  Don't special-case
+       install-data, install-exec, install, uninstall, or all.
+       (handle_subdirs): Don't push `-recursive' target names onto
+       corresponding lists.
+       (do_one_merge_target): Always define `-am' form of rule, and point
+       ordinary form to `-am' or `-recursive' as appropriate.
+       Special-case `all'.
+       (do_check_merge_target): Generate check-am target.
+       (handle_dist_worker): Use target_defined.
+       (handle_dist): Likewise.
+       (handle_merge_targets): Likewise.
+       (do_one_merge_target): Likewise.
+       (do_check_merge_target): Likewise.
+       (do_one_clean_target): Likewise.
+       (initialize_per_input): Initialize $all_target.
+       (do_one_clean_target): Always generate -am form of rule; other
+       changes for new SUBDIRS change.
+       (handle_clean): Always generate clean-am form of rule.
+       (handle_tags): Only build subdir if not `.'.
+       (handle_dist_worker): Skip `.' directory.
+       * subdirs.am: Allow `.' to be specified in SUBDIRS.
+
+Sun Sep 27 20:02:21 1998  Tom Tromey  <address@hidden>
+
+       * automake.texi (Dist): Document EXTRA_DIST change.
+       * automake.in (handle_dist_worker): Allow subdirs in EXTRA_DIST.
+
+       * automake.in (handle_ltlibraries): Wrote better comment about
+       EXTRA_LTLIBRARIES.
+
+       * automake.texi (Invoking Automake): Document --copy.
+       * automake.in (copy_missing): New global.
+       (parse_arguments): Recognize --copy/-c.
+       (require_file_internal): Handle $copy_missing.  Fixed error
+       message.
+       (initialize_global_constants): Document -c/--copy.
+
+       * automake.texi: Document LIBOBJS trick.
+
+       * automake.in (handle_dist_worker): If DIST_SUBDIRS defined, use
+       it even when SUBDIRS not conditional.
+
+       * automake.in (quote_cond_val): Turn tabs into \003.
+       (unquote_cond_val): Turn \003 back into tabs.  Fixes test
+       cond6.test.
+
+       * automake.in (read_am_file): Treat backslash-newline as
+       whitespace.  Test parse.test.
+
+Sat Sep 26 19:31:22 1998  Tom Tromey  <address@hidden>
+
+       * configure: Rebuilt.
+       * configure.in: Upped version to 1.3c.
+
+       Track recent autoconf changes:
+       * m4/Makefile.in: Rebuilt.
+       * m4/Makefile.am (m4data_DATA): Updated for deleted files.
+       * m4/init.m4 (AM_INIT_AUTOMAKE): Use AC_PROG_INSTALL.
+       * m4/mingw.m4: Removed.
+       * m4/cygwin.m4: Removed.
+       * m4/install.m4: Removed.
+       * m4/exeext.m4: Removed.
+       * automake.in (scan_one_configure_file): Don't look for
+       AM_EXEEXT.
+       (check_cygnus): Only mention AC_EXEEXT.
+       (obsolete_macros): Mention AM_PROG_INSTALL, AM_EXEEXT,
+       AM_CYGWIN32, AM_MINGW32.
+       ($seen_prog_install): Changed interpretation; changed all users.
+       (scan_one_configure_file): Don't look for AM_PROG_INSTALL.
+       ($scripts_installed): Removed.
+       (handle_scripts): Use local $scripts_installed.
+       * aclocal.in (obsolete_macros): Added AM_PROG_INSTALL, AM_EXEEXT,
+       AM_CYGWIN32, AM_MINGW32.
+
+Mon Jul  6 14:52:49 1998  Ian Lance Taylor  <address@hidden>
+
+       * compile.am (mostlyclean-compile): If OBJEXT, remove *.$(OBJEXT)
+       along with *.o.
+
+Thu May 28 18:49:47 1998  Ian Lance Taylor  <address@hidden>
+
+       * automake.in (seen_objext): New variable.
+       (get_object_extension): If seen_objext, use .$(OBJEXT) rather than
+       .o.  When including compile.am, keep or discard OBJEXT lines
+       according to whether seen_objext is set.  If seen_objext, add .obj
+       to @suffixes.  If seen_objext, use .$(OBJEXT) rather than .o when
+       building ansi2knr.
+       (handle_yacc_lex_cxx): If seen_objext, add a rule to create .obj
+       files.  If seen_objext, use .$(OBJEXT) rather than .o when
+       building ansi2knr.
+       (scan_one_configure_file): Check for .obj as well as .o in
+       LIBOBJS.  Set seen_exeext if we see AC_EXEEXT.  Look for
+       AC_OBJEXT, and if found set seen_objext and set OBJEXT in
+       configure_vars.
+       (check_cygnus): Change error message to permit AC_EXEEXT.
+       * compile.am: Add OBJEXT lines for .c.obj compilation.
+       * Makefile.in: Rebuild.
+       * m4/Makefile.in: Rebuild.
+       * tests/Makefile.in: Rebuild.
+
+Mon Sep 11 16:07:55 1997  Chris Provenzano <address@hidden>
+
+       * header-vars.am: address@hidden@
+       Ran aclocal, autoconf, and automake.
+
+Sat Sep 26 16:31:29 1998  Tom Tromey  <address@hidden>
+
+       * ltlib.am: Use $(INSTALL) and not $(INSTALL_DATA).
+
+Mon Sep 14 08:27:38 1998  Per Cederqvist  <address@hidden>
+
+       * automake.in (handle_texinfo): The logic for when to provide
+       texinfo.tex was broken.  Attempt to fix.
+
+Mon Sep 14 00:55:12 1998  Per Cederqvist  <address@hidden>
+
+       Fix for Dynix 3.1.1.
+       * automake.in (handle_yacc_lex_cxx): Transform "# " to "#line";
+       some compilers (such as /bin/cc on Dynix 3.1.1) don't accept the
+       output from the preprocessor.
+
+Tue Aug 25 18:40:51 1998  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_tests): Don't create site.exp target if it
+       is already in Makefile.am.
+
+Sun Aug 16 23:26:26 1998  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_configure): Use @inputs, not
+       @rewritten_inputs, when constructing CONFIG_FILES.  Use different
+       list to test for file existence.  Test colon6.test.
+       (rewrite_inputs_into_dependencies): Added add_srcdir argument.
+       Updated all callers.
+
+Wed Aug 12 14:16:57 1998  Tom Tromey  <address@hidden>
+
+       * Released 1.3b.
+
+Tue Aug 11 12:18:59 1998  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_clean): Added missing close-paren.  Quote
+       `$' so it doesn't expand when replacing.  From Markus
+       F.X.J. Oberhumer.
+
+       * aclocal.in (usage): Changed bug address.
+       * automake.in (usage): Changed bug address.
+
+       * clean.am (distclean-generic): Don't mention
+       DISTCONFIGCLEANFILES.  From Markus F.X.J. Oberhumer.
+
+Mon Aug 10 20:57:35 1998  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_yacc_lex_cxx): Redirect ansi2knr output to
+       correct file.  From Kave Ghazi.
+
+Sun Aug  2 16:05:16 1998  Tom Tromey  <address@hidden>
+
+       * Released 1.3a.
+
+       * config.sub, config.guess, texinfo.tex: New versions from FSF.
+
+Sun Jul 19 00:04:25 1998  Tom Tromey  <address@hidden>
+
+       * automake.in (variable_conditions): Initialize %vars_scanned.
+       (variable_conditions_sub): Check it.  Test cond5.test.
+
+Sat Jul 18 00:24:14 1998  Tom Tromey  <address@hidden>
+
+       * automake.in (variable_value_as_list_worker): Renamed from
+       variable_value_as_list.  Set entry in vars_scanned, and give error
+       if variable recursively defined.  Test recurs.test.
+       (value_to_list): Call it instead.
+       (variable_value_as_list): New function.
+
+       * automake.in (variable_conditions_sub): If var is not
+       conditional, but does have conditional subvariables, then return
+       value should be all permutations of subvariable conditions.  Test
+       cond4.test.
+       (handle_source_transform): Define _OBJECTS variable with each
+       condition; no need to define multiple new variables.
+
+Fri Jul 17 12:56:14 1998  Tom Tromey  <address@hidden>
+
+       * automake.in (am_install_var): Use DESTDIR, not DATADIR.  From
+       Motoyuki Kasahara.
+
+       * automake.in (scan_dependency_file): Recognize DOS-style paths as
+       absolute.
+       * ylwrap: Recognize DOS-style paths as absolute.  From Ian Lance
+       Taylor.
+
+Fri Jul 17 07:37:20 1998  H.J. Lu  (address@hidden)
+
+       * ylwrap: Don't use absolute path if the input is in the
+       current directory.
+
+Fri Jul 17 11:58:27 1998  Ian Lance Taylor  <address@hidden>
+
+       * automake.in: Use $(AM_MAKEFLAGS) in every invocation of $(MAKE).
+       * subdirs.am: Likewise.
+
+Thu Jul 16 18:09:03 1998  Ian Lance Taylor  <address@hidden>
+
+       * remake.am (config.status): Depend upon
+       $(CONFIG_STATUS_DEPENDENCIES).
+       * automake.in (handle_configure): Examine
+       CONFIG_STATUS_DEPENDENCIES.
+
+Tue Jul 14 13:37:48 1998  Tom Tromey  <address@hidden>
+
+       * Makefile.am: Always look in srcdir for automake.in.
+
+Tue Jun 23 14:00:27 1998  Ian Lance Taylor  <address@hidden>
+
+       * progs.am: Don't let $(EXEEXT) interfere with $(transform).
+       Report from Mike Stump <address@hidden>.
+
+Tue Jun  2 13:27:34 1998  Tom Tromey  <address@hidden>
+
+       * automake.in (scan_one_configure_file): Make CONFIGURE file
+       handle local.  From Kevin Street.
+
+       * automake.in (read_am_file): Error if blank line or comment
+       follows trailing backslash.  Test syntax.test.
+       (file_contents_with_transform): Likewise.
+
+Thu May 28 18:49:47 1998  Ian Lance Taylor  <address@hidden>
+
+       * automake.in (handle_configure): Always use $(SHELL) when running
+       config.status.
+
+Mon Jun  1 14:23:29 1998  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_yacc_lex_cxx): Use AM_CPPFLAGS, AM_CXXFLAGS,
+       AM_CFLAGS.
+       (output_yacc_build_rule): Use AM_YFLAGS, AM_LFLAGS.
+       (handle_dependencies): Don't define CXXMKDEP.
+
+       * clean.am (mostlyclean-generic): Prefix rule with MOSTLYCLEAN.
+       (clean-generic): Prefix rule with CLEAN.
+       (distclean-generic): Prefix rule with DISTCLEAN.
+       (maintainer-clean-generic): Prefix rule with MAINTAINERCLEAN.
+       BUILT_SOURCES now handled in automake itself.
+       * automake.in (initialize_per_input): Initialize
+       maintainer_clean_files.
+       (handle_yacc_lex_cxx): Put lex and yacc output files onto
+       @maintainer_clean_files.
+       (handle_clean): Handle @maintainer_clean_files.  Transform
+       clean.am when installing; try to remove unnecessary tests in
+       generated code.
+
+       * automake.in (do_check_merge_target): Only generate $(MAKE)
+       command if there are check targets to make.  Report from Karl
+       Heuer.
+
+Sun May 17 23:05:55 1998  Tom Tromey  <address@hidden>
+
+       * aclocal.in (write_aclocal): Fixed generated copyright message.
+       From Eleftherios Gkioulekas.
+
+       * automake.in (parse_arguments): Typo fix from Paul D. Smith.
+
+Fri May  8 12:14:03 1998  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_yacc_lex_cxx): Put lex and yacc output files
+       onto @clean.
+
+Wed May  6 01:18:05 1998  Tom Tromey  <address@hidden>
+
+       * header-vars.am (DESTDIR): Changed from DISTDIR.
+
+Fri Apr 24 10:16:20 1998  Tom Tromey  <address@hidden>
+
+       * libs.am: Don't display loop while it runs.
+
+Sun Apr  5 13:58:24 1998  Tom Tromey  <address@hidden>
+
+       * Released 1.3.
+
+       * automake.in (handle_options): Correctly handle trailing alpha
+       version letter or lack thereof.  Test version3.test.
+
+       * automake.in (am_conf_line_warning): Perl 4 fixlet; typo fix.
+
+       * automake.in (handle_ltlibraries): Examine _DEPENDENCIES
+       variable.  Report from Chris Provenzano.  Test library.test.
+       (handle_libraries): Likewise.
+
+       * m4/lex.m4: Allow AM_PROG_LEX to be called with no arguments.
+
+Sun Apr  5 13:54:25 1998  Alexandre Oliva <address@hidden>
+
+       * automake.in (scan_one_configure_file): Only warn about
+       AC_DECL_YYTEXT and AC_PROG_LEXX.
+       (am_conf_line_warning): New function.
+
+Fri Apr  3 15:43:46 1998  Doug Evans  <address@hidden>
+
+       * automake.in (handle_configure): Fix setting of colon_infile
+       in case where multiple files are used to build Makefile.
+       [ Test colon5.test ]
+       
+Fri Apr  3 13:07:58 1998  Tom Tromey  <address@hidden>
+
+       * ansi2knr.c, texinfo.tex: New versions from respective
+       maintainers.
+
+       * automake.in (scan_one_configure_file): Exclude INSTALL_DATA from
+       configure_vars.  Test instdata.test.
+
+Tue Mar 31 21:07:42 1998  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_yacc_lex_cxx): Changed to use new version of
+       ansi2knr.
+       * ansi2knr.c: New version from L. Peter Deutsch.
+
+Thu Mar 26 11:00:04 1998  Tom Tromey  <address@hidden>
+
+       * m4/exeext.m4: Correctly eliminate bad cases when computing
+       am_cv_exeext.  Report from Markus F.X.J. Oberhumer.
+
+Wed Mar 25 15:09:56 1998  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_options): Support alpha version numbers.
+
+       * lisp.am (address@hidden@LISP): Allow .el files to appear in build
+       directory.  From Gary V Vaughan.
+
+Mon Mar 23 07:55:04 1998  Tom Tromey  <address@hidden>
+
+       * Released 1.2h.
+
+       * header.am (address@hidden@HEADERS): A header can appear in the
+       build directory as well as the source directory.  From Gary V
+       Vaughan.
+
+       * automake.in (handle_yacc_lex_cxx): Push lib sources onto
+       de_ansi_files before generating ._c dependencies.  Test
+       libobj8.test.
+
+       * m4/mktime.m4: New version from Jim Meyering.
+
+       * aclocal.in (usage): Document --print-ac-dir.
+       (parse_arguments): Added --print-ac-dir.
+
+       * ansi2knr.c, ansi2knr.1: New versions from ghostscript.
+       (main): Reapplied "-" change from Harlan Stenn.
+
+Fri Mar 20 22:42:30 1998  Tom Tromey  <address@hidden>
+
+       * automake.in (scan_one_configure_file): Use &am_conf_line_error,
+       not warn.  Check to make sure warnings happen only for
+       configure.in, not for "not aclocal.m4".
+
+Fri Mar 20 22:35:31 1998  Alexandre Oliva <address@hidden>
+
+       * automake.in: understand AM_PROG_LEX as a replacement for
+       AC_PROG_LEX and AC_DECL_YYTEXT
+       warn if the replaced macros are used.
+       * m4/Makefile.am: add lex.m4
+       * m4/lex.m4 (AM_PROG_LEX): new file and macro
+       * missing: added lex/flex support
+       instead of touching flex and bison output files, try to copy
+       them from a filename based on the last given argument
+
+Fri Mar 20 00:26:10 1998  Tom Tromey  <address@hidden>
+
+       * m4/protos.m4: Require AC_PROG_CPP.
+
+       * aclocal.in (add_file): If &search fails, and macro matches AM_,
+       then print error.  Test aclocalii.test.
+
+       De-ansi-fication fixes from Harlan Stenn:
+       * ansi2knr.c (main): Accept "-" argument to mean stdin.
+       * automake.in (handle_yacc_lex_cxx): Preprocess C source before
+       running through ANSI2KNR.
+       (get_object_extension): Generate rule for <dir>/ansi2knr.o.
+
+       * texinfos.am: Include $(DESTDIR).
+       * lisp.am: Include $(DESTDIR).
+       * java.am: Include $(DESTDIR).
+       * mans.am (address@hidden@): Include $(DESTDIR).
+       * automake.in (handle_man_pages): Include $(DESTDIR) in
+       installdirs variable.
+       (handle_texinfo): Likewise.
+       (am_install_var): Likewise.
+       * header-vars.am (DISTDIR): Define.
+       * data.am, header.am, libs.am, ltlib.am, progs.am, scripts.am:
+       Support $(DESTDIR) at install time.  From Assar Westerlund.
+
+       * automake.in (handle_java): Put Java sources in distribution.
+
+Thu Mar 19 01:33:35 1998  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_java): Put JAVACFLAGS after -d option.  From
+       Per Bothner.
+
+       * automake.in (handle_java): Use $(JAVAROOT) in place of `../..'
+       in default CLASSPATH.
+       (am_install_var): Allow `JAVA' variable to be defined.  Don't
+       define `JAVA' primary.
+
+       * automake.in (scan_one_configure_file): Check for `sinclude' and
+       turn into recursive call.
+
+       * automake.in (initialize_per_input): Set $output_all.
+       (generate_makefile): Don't set $output_header or generate
+       `default' target.  Print $output_all before $output_header.
+       (handle_merge_targets): Put `all' target into $output_all.
+
+Wed Mar 18 14:48:44 1998  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_configure): Put secondary dependencies from
+       multi-":" AC_OUTPUT entry into dependency list for file created by
+       config.status, not file created by automake.  Test colon3.test.
+       (generate_makefile): Pass $output, not $makefile, to
+       handle_merge_targets.
+
+       * Makefile.am (pkgdata_DATA): Added java.am, java-clean.am.
+       * java-clean.am: New file.
+       * java.am: New file.
+       * automake.in (generate_makefile): Call handle_java.
+       (handle_java): New sub.
+       (am_install_var): Only push primary variable on @all if not doing
+       Java.
+
+Sun Mar  8 15:43:09 1998  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_configure): When recognizing AC_OUTPUT ":"
+       syntax, make regexp less greedy.  From Maciej W. Rozycki.  Test
+       colon4.test.
+
+Fri Mar  6 21:20:53 1998  Tom Tromey  <address@hidden>
+
+       * m4/exeext.m4 (AM_EXEEXT): Ignore am_c_test.o.  From Bruno
+       Haible.
+
+Tue Feb 24 12:10:44 1998  Tom Tromey  <address@hidden>
+
+       * Released 1.2f.
+
+       * mans.am (address@hidden@, address@hidden@): Quote
+       `$' in sed expression.
+
+       * config.guess, config.sub, texinfo.tex: New versions from FSF.
+
+       * Makefile.am (pkgdata_DATA): Added mans.am.
+       * automake.in (handle_man_pages): Rewrote for new man page
+       handling.
+       (initialize_global_constants): Removed install_man_format,
+       uninstall_man_format.
+       * mans.am: New file.
+
+       * data.am, header.am, libs.am, lisp.am, ltlib.am, progs.am,
+       scripts.am, texinfos.am: Put `@' before NORMAL_UNINSTALL
+       invocation.
+
+Mon Feb 23 13:38:56 1998  Tom Tromey  <address@hidden>
+
+       * automake.in (get_object_extension): Remove .c.lo rule from
+       libtool when dependencies turned on.
+       * libtool.am (.c.lo): Disable when dependency checking turned on.
+
+       Dependency fixes from Alexandre Oliva:
+       * automake.in (handle_dependencies): Fixed quoting when
+       substituting @PFX@ and @address@hidden  Don't look for the `.P' file.
+       * depend2.am (%.o): Use @PFX@ and @address@hidden
+       (%.lo): New rule.
+
+       * texinfos.am (.txi.info, .txi.dvi, .txi): New rules.
+       * automake.in (handle_texinfo): Recognize .txi files.  From Karl
+       Berry.
+
+       * automake.in (handle_single_transform_list): $objpat now a
+       parameter.  Set $objpat when suffix rule found.
+
+       * aclocal.in (parse_arguments): Only put current year in --version
+       output.
+       * automake.in (parse_arguments): Only put current year in
+       --version output.
+
+Mon Feb 16 00:12:03 1998  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_aclocal_m4): When processing -I options,
+       directory is separate argument.  Test aclocali.test.
+
+Fri Feb 13 14:35:39 1998  Ian Lance Taylor  <address@hidden>
+
+       * automake.in (handle_texinfo): Correct condition for whether
+       texinfo.tex is required.  [Test texinfo5.test]
+
+Fri Feb 13 00:28:53 1998  Tom Tromey  <address@hidden>
+
+       * Released 1.2e.
+
+       * Makefile.am: Removed bogus line.
+
+Thu Feb 12 22:27:05 1998  Tom Tromey  <address@hidden>
+
+       * automake.in (get_object_extension): Conditionally include .c.o
+       rule from compile.am.
+       (handle_dependencies): Generate correct code when including new
+       depend2.am.
+       (file_contents_with_transform): Better error reporting.
+       * depend.am (MKDEP): Removed.
+       (.deps/.P): Removed.  Don't include .deps/.P.
+       * compile.am (.c.o): Now conditional on dependencies not being
+       generated by compiles.
+       * depend2.am (%.o): New rule.
+       (.deps/%.P): Removed.
+
+       * tags.am (TAGS): Uniquify list of files.  From Harlan Stenn.
+
+       * aclocal.in (scan_m4_files): Reverse-sort keys when constructing
+       `search' function.  From Johan Danielsson.
+
+Tue Sep 16 14:13:15 1997  Paul D. Smith  <address@hidden>
+
+       * automake.in: Create new option --generate-deps.  This option has
+       automake generate a .dep_segment file containing just the
+       dependencies created from the .P list.  This is needed to maintain
+       other makefiles that automake doesn't deal with (Makefile.DOS,
+       SMakefile, etc.)
+       * automake.texi (Invoking Automake): Document it.
+
+Thu Feb 12 19:45:16 1998  Tom Tromey  <address@hidden>
+
+       * aclocal.in (scan_configure): Tightened regexp a bit.  Test
+       whoami.test.  From Johan Danielsson.
+
+       Report from H.J. Lu.
+       * automake.in (output_yacc_build_rule): Don't write rule to create
+       `.h' file.
+       (handle_yacc_lex_cxx): Generate rule to build each .h file.
+
+       * automake.in (handle_options): Set readme-alpha and check-news
+       for Gnits after main processing.  Test alpha.test.  From Jim
+       Meyering.
+
+       * aclocal.in (usage): Updated bug-reporting address.
+       * automake.in (usage): Updated bug-reporting address.
+
+       * compile.am: Remove *.core for 4.4BSD systems.  From Assar
+       Westerlund.
+
+       * automake.in (handle_single_transform_list): Don't set
+       seen_any_source if all sources are C++.
+
+Wed Feb 11 17:30:01 1998  Tom Tromey  <address@hidden>
+
+       * aclocal.in (write_aclocal): Write to $output_file, not
+       aclocal.m4.  From Alexandre Oliva.
+
+Thu Feb  5 13:38:55 1998  Tom Tromey  <address@hidden>
+
+       * automake.in (scan_one_configure_file): Put CXCPP before CXX in
+       regexp.  From Garth Corral.  Test cxxxcpp.test.
+
+Sun Jan 25 11:16:53 1998  Tom Tromey  <address@hidden>
+
+       * automake.in (generate_makefile): Run handle_minor_options before
+       handle_dist, to make sure README-alpha ends up in distribution.
+       From Jim Meyering.
+
+Tue Jan 13 09:19:33 1998  Tom Tromey  <address@hidden>
+
+       * aclocal.in (add_file): Hack for Perl 4.  From Seth Alves.
+
+Thu Dec 11 12:29:46 1997  Ian Lance Taylor  <address@hidden>
+
+       * scripts.am: Don't add @EXEEXT@ to installed scripts.  Scripts
+       are not executables.
+
+Tue Dec  2 20:07:18 1997  Tom Tromey  <address@hidden>
+
+       * automake.in (initialize_global_constants): Bug fix in
+       uninstall_man_format.  Report from Eric Backus.
+
+Mon Dec  1 13:52:39 1997  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_source_transform): Correctly generate
+       _OBJECTS when _SOURCES is defined conditionally.  Reported by Rob
+       Savoye.  Test cond3.test.
+
+       Fixes for test objc.test:
+       * automake.in (initialize_per_input): New global seen_any_source.
+       (handle_yacc_lex_cxx): Use seen_any_source to decide when to
+       define LINK, et al.
+       (handle_single_transform_list): Set seen_any_source.
+       (handle_lib_objects_cond): Likewise.
+
+Wed Nov 26 13:41:57 1997  Tom Tromey  <address@hidden>
+
+       * Released 1.2d.
+
+       * m4/ccstdc.m4: Don't force AM_PROG_CC_STDC before AC_PROG_CPP.
+       Temporary hack.
+
+       * m4/mktime.m4 (AM_FUNC_MTIME): New version from Paul Eggert.
+
+       * header-vars.am (NORMAL_INSTALL, PRE_INSTALL, POST_INSTALL,
+       NORMAL_UNINSTALL, PRE_UNINSTALL, POST_UNINSTALL): Define as `:',
+       not `true'.
+
+       * automake.in (output_yacc_build_rule): Don't overwrite .h file in
+       non-ylwrap case.
+
+       * tags.am (ID): Scan lisp files.
+       (TAGS): Make tags for lisp files.
+
+Tue Nov 25 14:20:42 1997  Tom Tromey  <address@hidden>
+
+       * ltlib.am: Use INSTALL_DATA, not INSTALL_PROGRAM.  From Gord
+       Matzigkeit.
+
+Fri Nov 21 15:15:50 1997  Tom Tromey  <address@hidden>
+
+       * m4/mingw.m4, m4/cygwin.m4: Argument to AC_TRY_COMPILE is
+       function body, not entire function.  From Ian Taylor.
+
+Sat Oct 25 12:39:19 1997  Tom Tromey  <address@hidden>
+
+       * automake.in (scan_one_configure_file): Skip empty string for
+       Perl 4.  From Assar Westerlund.
+
+       * config.guess, config.sub, texinfo.tex: New versions from FSF.
+
+Fri Oct 24 23:15:09 1997  Tom Tromey  <address@hidden>
+
+       * automake.in (output_yacc_build_rule): Use YFLAGS again.
+       (handle_yacc_lex_cxx): Error if YACCFLAGS used.
+
+Wed Aug 27 19:26:45 1997  Rob Savoye  <address@hidden>
+
+       * compile.am: Add suffix rules for ".s.o" and ".S.o" so assembler
+       files can be used.
+       * libtool.am: Add suffix rules for ".s.lo" and ".S.lo" so assembler
+       files can be used.
+       * automake.in: Add .S and .s to the standard list of suffixes so
+       assembler files can be used.
+
+Fri Oct 24 13:39:01 1997  Tom Tromey  <address@hidden>
+
+       * m4/exeext.m4: Require AM_MINGW32.  Check MINGW32 setting.
+
+Thu Oct 23 21:16:28 1997  Tom Tromey  <address@hidden>
+
+       * m4/init.m4 (missing_dir): AC_REQUIRE AM_SANITY_CHECK,
+       AC_ARG_PROGRAM, and AC_PROG_MAKE_SET.
+
+Tue Oct 21 16:49:36 1997  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_options): Recognize `cygnus'.
+
+Tue Sep  9 17:09:47 1997  Rob Savoye  <address@hidden>
+
+       * m4/mingw.m4: New file for mingw32 support.
+       * m4/exeext.m4: Also check for the mingw32 environment.
+
+Tue Oct 21 00:39:44 1997  Tom Tromey  <address@hidden>
+
+       * m4/Makefile.am (m4data_DATA): Added mingw.m4.
+
+       * automake.in (handle_lib_objects_cond): Don't require @address@hidden
+       (handle_programs): Likewise.
+
+       * subdirs.am (check-recursive installcheck-recursive
+       info-recursive dvi-recursive): Handle case when SUBDIRS is empty.
+       (maintainer-clean-recursive): Likewise.  From Assar Westerlund.
+
+       * aclocal.in (scan_m4_files): If macro recognized, &search will
+       return 1.
+       (scan_configure): If AM_ macro not found, give error.
+
+       * m4/sanity.m4: If `ls' completely fails, die.  From Jim
+       Meyering.
+
+Mon Oct 20 16:13:48 1997  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_single_transform_list): Fixlet for Fortran.
+       From Bernard Urban.
+
+       * libtool.am: Remove _libs, for libtool 1.0d.  From Gord
+       Matzigkeit.
+
+Sun Oct 19 22:59:35 1997  Tom Tromey  <address@hidden>
+
+       * texinfos.am: Bug fix.  From John W. Coomes.
+
+Mon Sep 29 12:57:00 1997  Tom Tromey  <address@hidden>
+
+       * Released 1.2c.
+
+       * automake.in (handle_dist_worker): In topmost directory of
+       project, use `distdir', not `top_distdir', as argument to
+       --output-dir; likewise when building in subdirs.
+
+Sun Sep 28 15:55:46 1997  Tom Tromey  <address@hidden>
+
+       * m4/sanity.m4: Test $*, not address@hidden  From Akim Demaille.
+
+       * automake.in (handle_minor_options): New sub.
+       (check_gnits_standards): Don't handle README-alpha here.
+       (handle_dist_worker): Check NEWS file if `check-news' option
+       requested.
+       (generate_makefile): Run handle_minor_options.
+       (handle_options): Handle readme-alpha and check-news.  Set them if
+       --gnits.
+
+       * depend.am (MKDEP): Use $(CC), not gcc.
+
+Wed Sep 24 23:48:26 1997  Tom Tromey  <address@hidden>
+
+       * Release 1.2b.
+
+       * m4/ccstdc.m4 (AM_PROG_CC_STDC): Make sure this is run before
+       AC_PROG_CPP.  From Markus Oberhumer.
+
+Fri Sep 12 00:04:19 1997  Paul Eggert  <address@hidden>
+
+       * m4/ccstdc.m4 (AM_PROG_CC_STDC): Don't look at __STDC__;
+       look only at whether function prototypes are supported.
+
+Wed Sep 24 16:10:37 1997  Tom Tromey  <address@hidden>
+
+       * Various: Put "-" before each `rm' line.  This avoids a bug in
+       some losing makes (Ultrix, 4.3 BSD).
+
+       * automake.in (handle_dist_worker): Correctly handle subdirs that
+       have their own configure.in.  From Peter Mattis.
+
+       * automake.in (handle_yacc_lex_cxx): Handle de-ansi-fied sources
+       in srcdir as well as build dir.
+
+       * automake.in (scan_one_configure_file): Detect AC_OUTPUT().
+       (handle_single_transform_list): Don't apply length() to a list.
+
+       * automake.in (handle_programs): Define _DEPENDENCIES variable if
+       not defined by user.
+
+Thu Sep 18 19:43:38 1997  Tom Tromey  <address@hidden>
+
+       * m4/sanity.m4: Quote "$@" for m4.  From Gord Matzigkeit.
+
+Mon Sep  1 23:50:38 1997  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_texinfo): Set need_texi_file only when
+       TEXINFO_TEX not defined.
+
+Thu Aug 28 09:37:29 1997  Tom Tromey  <address@hidden>
+
+       From Juergen Erhard:
+       * automake.in (SUFFIX_RULE_PATTERN): New global.
+       (handle_single_transform_list): If suffix matches a source suffix,
+       rewrite.
+       (read_am_file): Add suffix rules to %suffix_rules.
+       (initialize_per_input): Initialize %suffix_rules.
+
+Wed Aug 27 12:56:50 1997  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_texinfo): Also remove .kys and .ps files.
+
+       * automake.in (handle_yacc_lex_cxx): Quoting fixlet.  From Kaveh
+       Ghazi.
+
+       * aclocal.in (write_aclocal): Print copyright and copying
+       permissions.  From RMS.
+       * automake.in (initialize_global_constants): More copyright stuff
+       from RMS.
+
+       * automake.in (handle_texinfo): Only require texinfo.tex in
+       appropriate situations.  Report from Paul D. Smith.
+
+Mon Aug 25 15:45:52 1997  Tom Tromey  <address@hidden>
+
+       * automake.in (scan_dependency_file): Fix so that
+       OMIT_DEPENDENCIES will work.  From Alexander Lukyanov.
+
+       * automake.in (handle_texinfo): texi2dvi can generate `.cn'
+       files.  From Akim Demaille.
+
+Wed Aug  6 10:51:37 1997  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_texinfo): Reversed sense of test.
+
+Tue Aug  5 17:49:54 1997  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_dependencies): Always mark OMIT_DEPENDENCIES
+       as seen.
+
+       * automake.in (handle_yacc_lex_cxx): Make each _.c file depend on
+       ansi2knr.
+
+       * automake.in (handle_yacc_lex_cxx): Fix for makes which don't
+       allow $< in non-suffix rules.  From Akim Demaille.
+
+       * automake.in (value_to_list): If variable name contains configure
+       substitution, then just ignore it.
+
+       * automake.in (variable_defined): Mark variable is seen, even if
+       only conditionally seen.
+
+       * Makefile.am: Check for bad splits.
+       * automake.in (various): Use split(' ',...), not split(/ /,...).
+
+Tue Aug  5 14:08:51 1997  Ian Lance Taylor  <address@hidden>
+
+       * ylwrap: If the program is a relative path, force it to be
+       absolute.
+
+Tue Aug  5 16:59:41 1997  Tom Tromey  <address@hidden>
+
+       * missing: Examine A[CM]_CONFIG_HEADER for name of files to
+       touch.  From Markus F.X.J. Oberhumer.
+
+       * automake.in (require_file_internal): Better error message when
+       installing.
+
+       * automake.in (handle_texinfo): Smarter test when deleting output
+       of makeinfo.
+
+Sat Aug  2 13:32:45 1997  Tom Tromey  <address@hidden>
+
+       * automake.in (do_check_merge_target): In --cygnus mode, check
+       doesn't depend on all.
+
+       * automake.in (output_yacc_build_rule): Use YACCFLAGS, not
+       YFLAGS.  Per GNU Standards.
+
+       * dejagnu.am (RUNTESTDEFAULTFLAGS): New macro.
+       (check-DEJAGNU): Use it.
+
+       * subdirs.am (maintainer-clean-recursive): Actually reverse subdir
+       list.  From Alexander Lukyanov.
+
+       * automake.in (initialize_global_constants): Changed generated
+       copyright.  From RMS.
+
+       * automake.in (handle_configure): Pass correct value for
+       CONFIG_FILES.  From Ian Taylor.
+
+Thu Jul 31 17:36:10 1997  Ian Lance Taylor  <address@hidden>
+
+       * ylwrap (pairlist): Shift out trailing "--"; don't pass it to
+       $prog.
+
+Thu Jul 24 00:52:02 1997  Tom Tromey  <address@hidden>
+
+       * automake.in (initialize_global_constants): Changed index names
+       in dist hash so that alternate dist targets will be generated.
+       Report from Glenn Amerine.
+
+       Suggestion from Karl Berry:
+       * automake.in (usage): Added short info line.
+
+       * aclocal.in (usage): Updated bug-reporting address.  Added short
+       info line.
+
+       * automake.in (handle_emacs_lisp): Put contents of lisp-clean.am
+       into output.  Report from Karl Berry.
+
+Mon Aug 25 16:14:32 1997  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_configure): Only generate ":" syntax for
+       CONFIG_FILES when really needed.
+
+Wed Aug  6 14:47:12 1997  Ian Lance Taylor  <address@hidden>
+
+       * remake-hdr.am (@CONFIG_HEADER@): Use a dummy command to force
+       GNU make to recheck the file modification time.
+
+Tue Aug  5 14:44:10 1997  Ian Lance Taylor  <address@hidden>
+
+       * ylwrap: If the program is a relative path, force it to be
+       absolute.
+
+Mon Aug  4 14:52:08 1997  Ian Lance Taylor  <address@hidden>
+
+       * automake.in ($RULE_PATTERN): Accept $ in body of rule name.
+       (handle_programs): Don't append $(EXEEXT) if the
+       program name contains '.'.
+       (am_install_var): When rewriting _PROGRAMS, don't append $(EXEEXT)
+       if the program names contains '.'.  Also, handle conditionals.
+
+Sat Aug  2 14:43:41 1997  Tom Tromey  <address@hidden>
+
+       * m4/exeext.m4: Fixed quoting.
+
+       * m4/exeext.m4 (am_cv_exeext): Use echo, not ls.
+
+       * automake.in (handle_programs): Transform @EXEEXT@ when including
+       program.am.
+
+Fri Aug  1 17:09:09 1997  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_programs): Don't transform CYGWIN or
+       NOTCYGWIN.
+       (am_install_var): Likewise.
+
+       * progs-clean.am (address@hidden@PROGRAMS): Never include EXEEXT.
+
+       * progs.am: Removed @EXEEXT@; it is now implicit.
+       * program.am: Add @EXEEXT@ in appropriate places; removed
+       cygwin-dependent code.
+       * automake.in (seen_exeext): Renamed from seen_cygwin32.
+       (handle_programs): Use seen_exeext.
+       (scan_one_configure_file): Look for AM_EXEEXT, not AM_CYGWIN32.
+       (check_cygnus): Use seen_exeext.
+       (am_install_var): Likewise.
+       (am_install_var): When handling PROGRAMS primary, append EXELIST
+       to program names as necessary.
+       * m4/exeext.m4: Require AM_CYGWIN32.
+
+Thu Jul 31 17:36:10 1997  Ian Lance Taylor  <address@hidden>
+
+       * ylwrap (pairlist): Shift out trailing "--"; don't pass it to
+       $prog.
+
+       * texinfos.am: Add -I $(srcdir) when invoking $(MAKEINFO) for
+       CYGNUS .texinfo.info case and .texinfo case.
+
+       * automake.in (handle_configure): Correct handling of inputs for
+       for AC_OUTPUT files when invoking config.status.
+
+Mon Jul 28 15:29:25 1997  Rob Savoye  <address@hidden>
+
+       * m4/cygwin.m4: Set a variable CYGWIN32, rather than EXEEXT.
+       * m4/exeext.m4: New autoconf test for an executable suffix.
+       * m4/Makefile.in: Install the new exeext.m4 test.
+
+Sun Jun 22 14:01:59 1997  Tom Tromey  <address@hidden>
+
+       * Released version 1.2.
+
+       * automake.in (handle_texinfo): Look for texinfo.tex in aux dir.
+
+       * automake.in (require_file_internal): Only print "installing"
+       when actually installing.  From Gord Matzigkeit.
+
+       * automake.in (handle_tests): Exit status `77' means `ignore
+       test'.  From François Pinard.
+       (handle_tests) Also, make banner same size as text.
+
+       * automake.in (handle_configure): Don't handle PRE_BUILT_SOURCES.
+       (handle_built_sources): Likewise; don't have `all' depend on
+       BUILT_SOURCES.
+
+       * depend.am (DEPS_MAGIC): New variable.
+       (.deps/.P): Depend on BUILT_SOURCES again.
+
+       * texinfos.am: Use ||, not ;.
+
+Tue Jun 10 11:04:16 1997  Tom Tromey  <address@hidden>
+
+       * m4/cygwin.m4: Examine output of compiler to see if .exe needed.
+
+Sun Jun  1 13:16:05 1997  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_built_sources): Handle PRE_BUILT_SOURCES.
+       (handle_configure): Likewise.
+
+       * depend2.am (.deps/%.P): Don't generate file if MKDEP fails.
+       From Alexandre Oliva.
+
+       * depend.am (.deps/.P): Depend on PRE_BUILT_SOURCES, not
+       BUILT_SOURCES.
+
+       * automake.in (initialize_global_constants): Added 1997 to
+       copyright info.
+
+       * automake.in (output_yacc_build_rule): Never move y.tab.c over
+       the .h file.  From Jim Meyering.
+
+Thu May 29 23:16:02 1997  Tom Tromey  <address@hidden>
+
+       * automake.in (scan_one_configure_file): Avoid defining ACLOCAL,
+       AUTOCONF, AUTOMAKE, AUTOHEADER.  From David Zaroski.
+
+Sat Feb 22 16:05:24 1997  Gordon Matzigkeit  <address@hidden>
+
+       * Makefile.am (pkgdata_DATA): Under this new scheme, we no longer
+       need compile-kr.am.  Delete it.
+
+       * automake.in (handle_yacc_lex_cxx, get_object_extension): Use
+       _.c, _.o, _.lo instead of ._c, ._o, .l_o for de-ansification.
+
+       * ansi2knr.c (main): Parse our arguments a little differently so
+       that we don't create null output files when we can't read the
+       input file.
+
+Wed May 28 23:40:33 1997  Tom Tromey  <address@hidden>
+
+       * depend.am (.deps/.P): Depend on $(BUILT_SOURCES) again.  From
+       Gord Matzigkeit.
+
+Mon May 26 22:50:49 1997  Tom Tromey  <address@hidden>
+
+       * remake-hdr.am ($(srcdir)/@address@hidden): Make echo silent.  Report
+       from Alexandre Oliva.
+
+       * automake.in (generate_makefile): If --no-force, check
+       Makefile.in against configure.in and aclocal.m4.  Report from
+       Alexandre Oliva.
+
+       * automake.in (handle_dist_worker): Put --include-deps on command
+       line if specified originally.
+       (handle_configure): Likewise.
+
+       * configure.in: Error if Perl 5.001 is used.
+
+       * ylwrap: Don't quote $prog when executing it.  From Jim
+       Meyering.
+
+Thu May 15 12:05:20 1997  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_merge_targets): Set INSTALL_SCRIPT in
+       install-strip target.
+
+Tue May 13 08:20:02 1997  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_dependencies): Don't generate dependencies
+       if DEP_FILES would be empty.
+
+Sun May 11 13:59:14 1997  Tom Tromey  <address@hidden>
+
+       * config.guess: New version from FSF.
+
+       * automake.in (get_object_extension): If ansi2knr in another
+       directory, always define ANSI2KNR to full path.  From Akim
+       Demaille.
+
+       * kr-extra.am (clean-krextra): Remove ansi2knr here, not in
+       distclean-krextra.
+
+       * missing: Regularized grammar.  From François Pinard.
+
+Sat May 10 16:48:47 1997  Tom Tromey  <address@hidden>
+
+       * Released 1.1p.
+
+       * m4/init.m4: Error if source directory already configured.
+
+       * automake.in (scan_dependency_file): Always use srcdir name as
+       passed in on command line.
+
+Thu May  1 12:53:46 1997  Ian Lance Taylor  <address@hidden>
+
+       * automake.in (value_to_list): Don't fail when a variable
+       substitution is not a complete word.
+
+Tue May  6 15:22:41 1997  Ian Lance Taylor  <address@hidden>
+
+       * subdirs.am: Fix check for make -k to use $(MAKEFLAGS) and to not
+       get fooled by command line arguments.
+
+Sat May 10 15:48:46 1997  Tom Tromey  <address@hidden>
+
+       * m4/ccstdc.m4: Print "none needed" if compiler accepts ANSI C by
+       default.
+
+Mon May  5 23:24:09 1997  Tom Tromey  <address@hidden>
+
+       * mkinstalldirs, config.guess, config.sub, COPYING, texinfo.tex:
+       New versions from FSF.
+
+Sun May  4 15:21:22 1997  Tom Tromey  <address@hidden>
+
+       * texinfos.am (install-info): Avoid the Debian install-info.
+       (uninstall-info): Likewise.
+
+       * automake.in (handle_single_transform_list): Strip any directory
+       name before processing name.
+
+Thu May  1 19:24:08 1997  Tom Tromey  <address@hidden>
+
+       * depend2.am (.deps/%.P): Don't put $(srcdir)/ into dependency.
+
+Wed Apr 30 19:15:47 1997  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_dist_worker): Change how top_distdir is
+       computed.  Based on patch from Ian Taylor.
+       (handle_dist): Define top_distdir.
+
+       * automake.in (handle_yacc_lex_cxx): Include CXXFLAGS in CXXLINK.
+       (handle_yacc_lex_cxx): Include CFLAGS in LINK.
+
+Wed Apr 30 14:46:37 1997  Ian Lance Taylor  <address@hidden>
+
+       * automake.in (handle_dist_worker): When building a distribution,
+       if SUBDIRS is defined conditionaly, recur into each possible
+       subdirectory.
+
+       * clean.am (distclean-generic): Remove stamp-h[0-9]*.
+
+Tue Apr 29 19:11:45 1997  Tom Tromey  <address@hidden>
+
+       * INSTALL, mkinstalldirs, install-sh: Update from François
+       Pinard.
+
+       * aclocal.in (add_macro): If AC_ macro was defined, then mark it
+       as seen.  Report from Janos Farkas.
+
+       * subdirs.am: Clean targets now run in reverse order.  From Kevin
+       Dalley.
+
+       * automake.in (handle_texinfo): Put `aminfo', not `info' on
+       @clean.
+
+       * mdate-sh: New version from Ulrich Drepper.
+
+Mon Apr 28 01:18:05 1997  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_configure): Makefile only depends on
+       BUILT_SOURCES when generating dependencies.
+
+       * Released 1.1o.
+
+Sun Apr 27 23:58:20 1997  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_dist): Use variable_value, not
+       variable_contents.
+
+Wed Apr 23 14:04:28 1997  Ian Lance Taylor  <address@hidden>
+
+       * automake.in (IF_PATTERN): Define.
+       (ELSE_PATTERN, ENDIF_PATTERN): Define.
+       (AM_CONDITIONAL_PATTERN): Define.
+       (%configure_cond): New global hash table.
+       (handle_source_transform): If xx_SOURCES is defined conditionally,
+       define xx_OBJECTS using the same conditions.
+       (handle_lib_objects): If variable is defined conditionally, define
+       xx_DEPENDENCIES conditionally.  Most code moved into subroutine.
+       (handle_lib_objects_cond): New function, broken out of
+       handle_lib_objects.
+       (scan_one_configure_file): Look for $AM_CONDITIONAL_PATTERN.
+       (conditional_true_when): New function.
+       (variable_defined): Add new parameter: cond.  Change some
+       callers.
+       (variable_conditions): New function.
+       (variable_conditionally_defined): New function.
+       (variable_value): New function.  Change most uses of $contents to
+       call variable_value instead.
+       (value_to_list): New function, from variable_value_as_list.
+       (variable_value_as_list): Add new parameter: cond.  Change all
+       callers.  Move some code into subroutine value_to_list.
+       (define_pretty_variable): Add new parameter: cond.  Change call
+       callers.
+       (read_am_file): Handle conditionals.
+       (initialize_per_input): Initialize %conditional and
+       @conditional_stack.
+       * m4/cond.m4: New file.
+       * m4/Makefile.am (m4data_DATA): Add cond.m4.
+
+Sun Apr 27 11:03:36 1997  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_dist_worker): Run automake once per
+       directory, instead of once at the top.
+       (handle_dist_worker): Changed interface.
+       (handle_dist): Likewise.
+       (generate_makefile): Better error message if can't write the
+       file.
+       (handle_dist_worker): Pass top_distdir to subdir makes.
+
+       * automake.in (handle_dist_worker): Use mode 777 on directories in
+       distribution.  GNU Standards compliance.
+
+       * automake.in (handle_yacc_lex_cxx): Don't use interlock.
+       (output_yacc_build_rule): Don't use interlock; just use new ylwrap
+       instead.  The new ylwrap builds in a subdir; idea from Mark
+       Eichin.
+       (output_lex_build_rule): Likewise.
+       (initialize_global_constants): [common_files] Don't include
+       interlock.
+
+       * Makefile.am (pkgdata_SCRIPTS): Removed interlock.
+       * interlock: Removed.
+       * ylwrap: Changed interface.  Now runs command in subdir.
+
+       * remake.am (config.status): Look in srcdir for config header.
+       ($(srcdir)/configure): Likewise.
+       * remake-hdr.am (@STAMP@): Look in srcdir for config header.  From
+       Phil Nelson.
+       ($(srcdir)/@CONFIG_HEADER_IN@): Likewise.
+
+       * automake.in (handle_aclocal_m4): Make target $(ACLOCAL_M4), not
+       value spelled out.  From Phil Nelson
+
+       * automake.in (handle_configure): Don't skip Makefiles; instead
+       skip automake inputs.
+       (handle_merge_targets): Changed interface; put $makefile at
+       beginning of @all (rather than Makefile at end).
+
+       * automake.in (handle_yacc_lex_cxx): Correctly compute
+       de_ansi_sources.
+
+       * clean-kr.am (distclean-kr): Do nothing; ansi2knr is removed in
+       kr-extra.am.
+
+       * Makefile.am: Check to make sure there are no accidental
+       configure substitutions.
+
+       * automake.in (handle_texinfo): Don't allow configure substitution
+       on @MAKEINFO@ here.
+
+       * automake.in (handle_yacc_lex_cxx): ._c and ._o files both depend
+       on $(ANSI2KNR).
+
+       * kr-extra.am (ansi2knr): Removed.
+       (ansi2knr.o): Likewise.
+
+       * automake.in (get_object_extension): Allow ansi2knr to be built
+       from any directory.
+
+Fri Apr 25 12:33:23 1997  Tom Tromey  <address@hidden>
+
+       * missing: Changed bison text.  From Ian Taylor.
+
+       * m4/missing.m4: Redirect stdin of testee.  From Bill Fenner.
+
+       * automake.in (output_yacc_build_rule): Generate rule to create .h
+       file.
+       (handle_footer): Generate unique, sorted list of suffixes.
+
+       * automake.in (scan_one_configure_file): Recognize AC_PROG_AWK,
+       _CPP, _CXCPP, _LN_S.  From Ralph Schleicher.
+
+Mon Apr 21 12:35:57 1997  Ian Lance Taylor  <address@hidden>
+
+       * automake.in (@config_fullnames): New array.
+       (@config_names): New array, replacing $config_name.
+       (@config_headers): New array, replacing $config_header.
+       (get_object_extension): Handle multiple header files.
+       (handle_tags, handle_merge_targets): Likewise.
+       (scan_one_configure_file): Likewise.
+       (handle_configure): Likewise.  Don't check for the configuration
+       header file in AC_OUTPUT; it won't be there.
+       * remake-hdr.am: Handle multiple header files.
+       * clean-hdr.am: New file, broken out of remake-hdr.am.
+       * m4/header.m4: Handle multiple header files.
+       * Makefile.am (pkgdata_DATA): Add clean-hdr.am.
+
+Wed Apr 16 00:05:47 1997  Tom Tromey  <address@hidden>
+
+       * texinfos.am (.texi.info, .texi, .texinfo.info, .info): Remove
+
+       * automake.in (define_program_variable): Added `override' argument.
+       (handle_texinfo): Pass override arg when defining MAKEINFO.
+       (AC_MISSING_PROG): New constant.
+       (scan_one_configure_file): Use it.
+
+Tue Apr 15 12:12:28 1997  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_texinfo): In --cygnus mode, reserve
+       clean-info for the user.
+
+       * automake.in (handle_subdirs): Typo fix.  From Akim Demaille.
+
+       * automake.in (handle_tags): Only use SUBDIRS if it is actually
+       defined.  Report from Ian Taylor.
+
+       * tags.am: Added prefix to SUBDIRS rules.
+
+Wed Apr  9 17:09:40 1997  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_ltlibraries): Use correct rpath
+       substitution.  Bug from Jim Blandy.
+
+Mon Apr  7 17:40:18 1997  Tom Tromey  <address@hidden>
+
+       * automake.in (AM_INIT_AUTOMAKE_PATTERN): Fixed for new 3rd arg.
+       Test version2.test.
+
+Thu Apr  3 19:07:59 1997  Tom Tromey  <address@hidden>
+
+       * Released 1.1n.
+
+       * tags.am (TAGS): Run "cd && etags" in subshell for proper
+       associativity.
+
+       * texinfos.am (install-info-am): If --cygnus, then info file can
+       be in build dir.  From David Zaroski.
+
+       * ltlibrary.am (@LTLIBRARY@): use @RPATH@, not explicit -rpath.
+
+       * automake.in (handle_ltlibraries): Treat EXTRA_ libraries
+       specially.
+
+Wed Apr  2 00:03:50 1997  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_source_transform): Don't generate dependency
+       on config.h.
+       (scan_dependency_file): Strip the .P file from the target.
+
+       * automake.in (handle_tags): Use single, not double, quotes when
+       setting list variable.
+
+       * data.am, header.am, libs.am, lisp.am, ltlib.am, progs-clean.am,
+       progs.am, scripts.am, tags.am: Use single quotes to fill list
+       variable; otherwise `$' in filename will not work.  From Per
+       Bothner.
+
+       * mdate-sh: Use "ls -d" so mdate-sh can be run on a directory.
+       From Bruno Haible.
+
+       * automake.in (handle_programs): Error if LIBADD used where LDADD
+       meant.
+       (handle_libraries): Error if LDADD used where LIBADD meant.
+       (handle_ltlibraries): Likewise.
+
+Tue Apr  1 22:46:33 1997  Tom Tromey  <address@hidden>
+
+       * automake.in (check_canonical_spelling): New sub.
+       (handle_programs): Use it.
+       (handle_libraries): Likewise.
+       (handle_ltlibraries): Likewise.
+
+Mon Mar 31 12:13:08 1997  Tom Tromey  <address@hidden>
+
+       * depend2.am (.deps/%.P): Make .P file depend on everything the .c
+       file includes.
+
+Fri Mar 28 23:34:49 1997  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_configure): Error if stamp-h appears in
+       AC_OUTPUT line.
+
+Thu Mar 27 17:28:47 1997  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_dist_worker): Avoid automake rules in
+       generated Makefile when no-dependencies specified.  From Greg
+       Woods.
+
+       * m4/lispdir.m4: Don't AC_SUBST ELCFILES.  From Greg Woods.
+
+       * texi-vers.am (address@hidden@): Make commands silent.
+
+       * Makefile.am (maintainer-check): "true" is ok now.
+
+       * m4/init.m4: Added optional 3rd argument, which avoids
+       AC_DEFINE.
+
+       * automake.in (scan_one_configure_file): Explicitly avoid
+       INSTALL_SCRIPT to avoid defining it twice.
+
+       * header-vars.am: Change _INSTALL variable definitions to `true'.
+       Updated all users to put `@' before invocation.
+
+Tue Mar 25 22:09:45 1997  Tom Tromey  <address@hidden>
+
+       Update to follow GNU Standards:
+       * automake.in (handle_man_pages): Use NORMAL_UNINSTALL before
+       uninstall-man.
+       * texinfos.am (uninstall-info): Use two loops, and have
+       PRE_UNINSTALL before running install-info.
+       * data.am, header.am, libs.am, lisp.am, ltlib.am, progs.am,
+       scripts.am, texinfos.am: Use NORMAL_UNINSTALL.
+       * header-vars.am (PRE_UNINSTALL, POST_UNINSTALL,
+       NORMAL_UNINSTALL): Define.
+
+       * automake.in (scan_one_configure_file): Don't define ANSI2KNR as
+       a configure varriable.
+
+       * m4/missing.m4: Run test in a subshell.  From Gord Matzigkeit.
+
+Mon Mar 24 23:28:59 1997  Tom Tromey  <address@hidden>
+
+       * m4/sanity.m4: Sleep before creating temp file.
+
+       * header-vars.am (NORMAL_INSTALL, PRE_INSTALL, POST_INSTALL):
+       Define.
+
+Sat Mar 22 00:06:00 1997  Tom Tromey  <address@hidden>
+
+       * automake.in (am_install_var): Make sure to delete
+       CYGWIN/NOTCYGWIN tokens as appropriate.
+       (handle_programs): Remove NOTCYGWIN tokens as well.
+       (file_contents_with_transform): A single newline makes an empty
+       line.
+
+       * program.am: Remove executable before linking.
+
+       * texinfos.am (.texi.dvi): Look in @TEXINFODIR@ for texinfo.tex.
+       (.texinfo.dvi): Likewise.
+
+       * automake.in (handle_texinfo): TEXINFO_TEX variable can set
+       location of texinfo.tex.
+
+Fri Mar 21 10:22:51 1997  Tom Tromey  <address@hidden>
+
+       * texinfos.am (.texinfo.dvi): Mirror .texi.dvi.
+
+       * ansi2knr.c, ansi2knr.1: New versions from L. Peter Deutsch.
+
+       * scripts.am: Add @EXEEXT@ to installed scripts.
+
+Wed Jan 22 20:12:31 1997  Jim Meyering  <address@hidden>
+
+       * m4/mktime.m4 (AM_FUNC_MKTIME): Run tests for each of a few values
+       for the TZ environment variable.  Andre Novaes Cunha provided the
+       hairy TZ setting that exercized the Solaris tzset bug.
+
+1997-01-22  Paul Eggert  <address@hidden>
+
+       * m4/mktime.m4: (AM_FUNC_MKTIME): Fix bug in mktime test -- don't
+       test now, test a couple of thousand times.
+
+Thu Mar 20 00:16:54 1997  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_programs): Remove CYGWIN lines unless
+       AM_CYGWIN32 seen.
+       (am_install_var): Remove CYGWIN lines from -clean file as well.
+
+       * progs.am: Put @EXEEXT@ where appropriate.
+
+       * program.am (@PROGRAM@): If using Cygwin32, then create actual
+       name in addition to ".exe" name.
+
+       * progs-clean.am (address@hidden@PROGRAMS): Conditionalize on CYGWIN.
+
+       * automake.in (check_cygnus): Require AM_CYGWIN32 in --cygnus mode.
+       (am_install_var): If AM_CYGWIN32 not seen, then remove @EXEEXT@
+       from .am files.
+
+       * automake.in (seen_cygwin32): New global.
+       (scan_one_configure_file): Check for AM_CYGWIN32.
+
+       * m4/cygwin.m4: New file.
+
+       * automake.in (scan_one_configure_file): Explicitly handle
+       AC_CONFIG_HEADER so we can avoid spurious warnings.
+       (obsolete_macros): Removed AC_CONFIG_HEADER.
+
+       * automake.in (handle_yacc_lex_cxx): Perl 4 fixes.  From Greg
+       A. Woods.
+
+Wed Mar 19 00:35:13 1997  Tom Tromey  <address@hidden>
+
+       * Released 1.1m.
+
+       * m4/missing.m4: Print message saying what is happening.
+
+       * m4/sanity.m4: sleep before testing.
+
+Tue Mar 18 17:20:03 1997  Tom Tromey  <address@hidden>
+
+       * config.guess, config.sub: New from the FSF.
+
+       * automake.in (initialize_global_constants): [common_files]
+       Include `missing'.
+       (scan_configure): Require `missing'.
+
+       * header-vars.am (MAKEINFO): Don't define.
+
+       * m4/init.m4 (missing_dir): Use AM_MISSING_PROG.
+       * m4/missing.m4: New file.
+
+       `missing' changes from François Pinard:
+       * Everywhere: Use ACLOCAL_M4 to name aclocal.m4 file; ACLOCAL now
+       names aclocal program.
+       * m4/init.m4: Replace programs with `missing' if not found.
+       * automake.in (handle_texinfo): Define MAKEINFO as @address@hidden
+       (AC_CHECK_PATTERN): Check for alphanumeric names only.
+       (handle_aclocal_m4): Use ACLOCAL, not aclocal.
+       * Makefile.am (pkgdata_SCRIPTS): Include missing.
+       * missing: New file.
+
+       * automake.in (target_defined): New sub.
+       (handle_footer): Error if target .SUFFIXES used.
+
+Sun Mar 16 14:33:41 1997  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_lib_objects): Set seen_c_source to line
+       number.
+       (handle_yacc_lex_cxx): Use seen_c_source as line number.
+       (am_line_error): Line of -1 means skip line-number check.
+
+       * automake.in (read_am_file): Change to keep perl -w quiet.
+       (check_typos): Removed extra check of EXTRA_ containing config
+       subs.
+
+Mon Mar 10 23:17:19 1997  Tom Tromey  <address@hidden>
+
+       * remake-hdr.am (stamp-h): Set CONFIG_HEADERS to
+       $(CONFIG_HEADER_FULL).
+       * automake.in (handle_configure): Define CONFIG_HEADER_FULL.
+
+       * automake.in (handle_lib_objects): Set seen_c_source as
+       appropriate.  From Alexander V. Lukyanov.  Test cxxlibobj.test.
+
+Sat Mar  8 22:54:35 1997  Tom Tromey  <address@hidden>
+
+       * texinfo.tex: New version.
+
+       * automake.in (handle_emacs_lisp): If EMACS is `no', then we
+       couldn't find an Emacs.  So don't bother running elisp-comp.  From
+       Ulrich Drepper.
+
+       * automake.in (handle_texinfo): Added .tr and .cv to list of
+       texinfo clean extensions.  From Karl Berry.
+
+Fri Feb 28 22:14:53 1997  Tom Tromey  <address@hidden>
+
+       * Makefile.am: Make sure we never use "undef".
+
+       * automake.in (usage): Changed bug-reporting address.
+       (handle_dist): Use undef, not delete.
+
+Wed Feb 26 08:41:11 1997  Gordon Matzigkeit  <address@hidden>
+
+       * automake.in (%obsolete_macros): Reintroduce, with hints for what
+       to do to upgrade the support.
+
+       * automake.in, ltlib-clean.am, ltlib.am, ltlibrary.am: Revamped
+       libtool support to use the _LTLIBRARIES primary.
+
+Wed Feb 26 00:20:39 1997  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_tags): In default case, add @tags_deps to
+       dependencies of tags target.
+
+Tue Feb 25 23:46:29 1997  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_tests): If a test failed, then make should
+       fail.  From Jim Meyering.
+
+Mon Feb 24 19:02:21 1997  Tom Tromey  <address@hidden>
+
+       * texi-vers.am (@VTEXI@): Copy stamp file into output.
+
+Sun Feb 23 00:10:36 1997  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_programs): Give correct error line for lex
+       error.
+       (am_line_error): Avoid uninitialized value errors from perl -w.
+
+       * aclocal.in (scan_m4_files): Fixed perl -w warning.
+
+       * texinfos.am (.texi, .texinfo): New targets.
+
+       * automake.in (scan_texinfo_file): Renamed.
+       (handle_texinfo): Handle files without ".info" extension.
+
+       * automake.in (handle_subdirs): Error if directory contains "/".
+       (handle_yacc_lex_cxx): Quoting fix.
+       (handle_single_transform_list): Use transformed (non-ansi) version
+       of $obj instead of explicit ".o".  From Gord Matzigkeit.
+
+       * m4/sanity.m4: Pass -L to ls if possible.
+
+Sat Feb 22 15:22:31 1997  Tom Tromey  <address@hidden>
+
+       * dist-vars.am (DISTFILES): Don't distribute MANS.
+
+       * automake.in (handle_dist): Use define_variable to define TAR,
+       GZIP.
+       (handle_dist): Pass GZIP in environment to tar.
+       (initialize_global_constants): Likewise.
+
+       From Kaveh Ghazi:
+       * m4/protos.m4: Don't put any dependencies on AC_C_INLINE or
+       AC_C_CONST.
+       * m4/ccstdc.m4: Force AM_PROG_CC_STDC to come before AC_C_INLINE
+       or AC_C_CONST.
+
+Fri Feb 21 00:39:17 1997  Tom Tromey  <address@hidden>
+
+       From The Crimson Binome:
+       * automake.in (handle_yacc_lex_cxx): Handle C++ yacc/lex source.
+       (output_yacc_build_rule): New sub for C++ yacc/lex.
+
+       * automake.in (my_glob): New sub.
+       (handle_dependencies): Use my_glob.
+       (handle_aclocal_m4): Scan ACLOCAL_AMFLAGS for dependencies.
+
+       * ltlibs.am, lisp.am, libs.am, header.am, data.am, progs.am,
+       scripts.am, texinfos.am: Add leading space to echo.
+
+       * automake.in (handle_texinfo): Added .tps and .vrs to list of TeX
+       endings.  From Jim Blandy.
+       (install_man_format): Make rule silent; instead print actual
+       command.
+
+Tue Feb  4 18:29:42 1997  Tom Tromey  <address@hidden>
+
+       * dist-vars.am (TAR): Removed.
+       * automake.in (TAR): New variable.
+       (handle_dist): Explicitly define TAR.
+       * configure.in: Compute TAR.
+
+       * automake.in (handle_lib_objects): Put @ALLOCA@ on @dep_list, not
+       @dep_files.
+       (AC_SUBST_PATTERN): Typo fix.
+       (handle_aclocal_m4): Use ACLOCAL_AMFLAGS.
+       (handle_clean): Put -recursive target before -am target.
+       (handle_merge_targets): Put basename of $config_name on @all.
+       Test confsub.test.  From Ramón García Fernández.
+
+Tue Jan 28 22:19:04 1997  Tom Tromey  <address@hidden>
+
+       * automake.in (initialize_global_constants): Put libtoolize files
+       into @common_files, not @common_sometimes.  From Gord Matzigkeit.
+
+Sun Jan 26 17:46:08 1997  Tom Tromey  <address@hidden>
+
+       * texinfos.am (.texi.info): If --cygnus, set -I $(srcdir).  From
+       Per Bothner.
+
+Sun Jan 12 18:28:16 1997  Fred Fish  (address@hidden)
+
+       * automake.in: Use 'interlock' and 'ylwrap' from source
+       directory or aux config directory, not build directory.
+
+Tue Jan  7 18:35:10 1997  Tom Tromey  <address@hidden>
+
+       * aclocal.in (parse_arguments): Handle -I.
+       (usage): Ditto.
+       (scan_m4_files): Ditto.
+
+       * automake.in (handle_single_transform_list): Don't give error
+       message if extension unrecognized.
+
+Tue Dec 17 11:18:20 1996  Andreas Schwab  <address@hidden>
+
+       * m4/header.m4 (AM_CONFIG_HEADER): Check for $CONFIG_HEADERS, not
+       $CONFIG_HEADER.
+
+Tue Jan  7 17:59:26 1997  Tom Tromey  <address@hidden>
+
+       * automake.in (scan_one_configure_file): AM_INIT_GUILE_MODULE runs
+       AM_PROG_INSTALL, not AC_PROG_INSTALL.  From Jim Blandy.
+       (handle_texinfo): Handle no-texinfo.tex option.
+       (handle_options): Ditto.
+
+Thu Jan  2 14:16:17 1997  Tom Tromey  <address@hidden>
+
+       * automake.in (am_install_var): Ignore EXTRA libtool libraries.
+       From Marius Vollmer.
+
diff --git a/ChangeLog.2000 b/ChangeLog.2000
new file mode 100644
index 0000000..1204989
--- /dev/null
+++ b/ChangeLog.2000
@@ -0,0 +1,2204 @@
+2000-12-29  Derek Price  <address@hidden>
+
+       * automake.in (handle_dependencies): Switched the DEP_FILES
+       definition to be conditional on @address@hidden
+
+2001-02-03  Ville Laurikari  <address@hidden>
+
+       * depcomp (aix): New side-effect dependency tracking mode, for
+       the C for AIX compiler.
+       * m4/depend.m4 (AM_DEPENDENCIES): Recreate `conftest.c' and
+       `conftest.h' for each test.
+
+2001-02-03  Tom Tromey  <address@hidden>
+
+       * automake.texi (Dist): Updated to mention caveat of putting
+       directory in EXTRA_DIST and also providing a nice example of
+       removing the CVS dir.
+       From Ganesan Rajagopal.
+
+       * m4/depend.m4 (depcpp): Run tests in a subdir.  Fixes report from
+       Bob Proulx.
+
+       * automake.in (scan_one_autoconf_file): Disable warning about
+       AM_PROG_LIBTOOL.
+
+       * automake.in (handle_configure): Don't modify variable which
+       aliases list element.  Don't push @inputs onto the dist list.
+       Fixes colon7.test.
+       (initialize_per_input) [dist_dirs]: New variable.
+       (handle_dist_worker): Use global dist_dirs.
+       (handle_configure): Set dist_dirs entries at toplevel.
+
+2001-02-02  Gordon Sadler  <address@hidden>
+
+       * automake.texi (Java Support): Added index, @section.
+
+2001-02-02  Pavel Roskin  <address@hidden>
+
+       * automake.in (scan_autoconf_traces): Restore trace messages.
+
+       * automake.in (handle_aclocal_m4): Fix stripping of the initial
+       "./" from the dependencies of aclocal.m4.
+       Reported by Ralf Corsepius.
+
+2001-02-01  Pavel Roskin  <address@hidden>
+
+       * aclocal.in: Rename "verbosity" to "verbose". Always prepend
+       "aclocal: " to the verbose output.
+
+       * automake.in: Remove all debugging messages.
+
+2001-01-31  Akim Demaille  <address@hidden>
+
+       * automake.in (add_depend2): Quote properly $obj and $source.
+
+2001-01-31  Akim Demaille  <address@hidden>
+
+       * depend2.am: Instead of replacing @PFX@ in $(@address@hidden), and
+       then replacing `$(@address@hidden)' for the files that need some
+       special flags, use only @address@hidden  Similarly for @address@hidden
+       Try to document this file.
+       * automake.in (add_depend2): Adjust to these changes.
+
+2001-01-31  Akim Demaille  <address@hidden>
+
+       * automake.in (%factored_dependencies): New.
+       (file_contents): Use it.
+       (handle_phony): Rename as...
+       (handle_factored_dependencies): this.
+       * subdirs.am: No need for convolved syntax to declare .PHONY.
+
+2001-01-31  Akim Demaille  <address@hidden>
+
+       * automake.in: maintainer-check fixes.
+
+2001-01-31  Akim Demaille  <address@hidden>
+
+       * automake.in (file_contents): Rewrite: instead of trying to parse
+       it line by line, first swallow it completely into $CONTENTS,
+       *then*, parse it *paragraph* by paragraph.
+
+2001-01-30  Akim Demaille  <address@hidden>
+
+       * automake.in (file_contents): Remove.
+       (file_contents_with_transform): Swap the order of the arguments,
+       and rename as...
+       (file_contents): this.
+       Adjust all uses.
+
+2001-01-30  Tom Tromey  <address@hidden>
+
+       * automake.in (scan_one_autoconf_file): Don't mention
+       omit_dependencies.
+
+2001-01-29  Akim Demaille  <address@hidden>
+
+       * automake.in (&scan_autoconf_config_files): Extract from
+       &scan_one_autoconf_file.
+       (&scan_one_autoconf_file): Use it.
+       (&scan_autoconf_traces): New.
+       ($scan_autoconf_files): Use it.
+
+2001-01-29  Akim Demaille  <address@hidden>
+
+       * texinfos.am, tags.am, subdirs.am, multilib.am, mans.am: Add a
+       .PHONY target.
+       * automake.in (handle_texinfo, handle_man_pages, handle_multilib)
+       (handle_etags, handle_subdirs): Don't push into @phony.
+
+2001-01-29  Akim Demaille  <address@hidden>
+
+       * automake.in (scan_one_autoconf_file): Correctly recognize
+       configure.ac.
+
+2001-01-29  Akim Demaille  <address@hidden>
+
+       * automake.in (handle_tests_dejagnu): New, extracted from...
+       (handle_tests): here.  Use `.PHONY:'.
+
+2001-01-29  Akim Demaille  <address@hidden>
+
+       * automake.in (handle_phony): Sort.
+       (file_contents_with_transform): Catch `.PHONY:'.
+       (handle_tests): Instead dumping the hard coded target check-TESTS
+       and registering its .PHONYsm, get them from...
+       * check.am: here, new file.
+
+2001-01-29  Akim Demaille  <address@hidden>
+
+       * automake.in (add_depend2): Use &transform.
+
+2001-01-29  Akim Demaille  <address@hidden>
+
+       * automake.in (handle_tags): Use &transform.
+       (am_error, am_line_error, am_conf_error, read_am_file): Use
+       directly arrays in strings, no need for &join.
+       Require Perl 5.
+       * Makefile.am (maintainer-check): Use grep -w when looking for
+       words.
+
+2001-01-29  Akim Demaille  <address@hidden>
+
+       * automake.in (prog_error): New.
+       Spread its use.
+
+2001-01-29  Akim Demaille  <address@hidden>
+
+       * automake.in (handle_single_transform_list): if (@list) { foreach
+       (@list) ...} can be written as a simple `foreach' loop.
+
+2001-01-29  Akim Demaille  <address@hidden>
+
+       * automake.in (define_standard_variables): Use &transform instead
+       of build_rx.
+
+2001-01-29  Akim Demaille  <address@hidden>
+
+       * automake.in (handle_texinfo): Use the new $texinfodir instead of
+       the removed $texinfo_tex.
+
+2001-01-29  Akim Demaille  <address@hidden>
+
+       * automake.in (handle_libraries, handle_ltlibraries): Use
+       &transform.
+
+2001-01-29  Akim Demaille  <address@hidden>
+
+       * automake.in (handle_programs) <xexe>: Remove, replaced by
+       `exeext'.
+       Use it, and &transform.
+
+2001-01-29  Akim Demaille  <address@hidden>
+
+       * automake.in (get_object_extension) <$default_includes>: New.
+       Use it and &transform.
+
+2001-01-28  Tom Tromey  <address@hidden>
+
+       * automake.in (variable_value_as_list_worker): Handle entries in
+       %am_var_defs.  Fixes listval.test.
+
+2001-01-26  Akim Demaille  <address@hidden>
+
+       * automake.in (handle_texinfo): Don't use $conf_pat, just
+       $conf_dir to transform MDDIR since now &transform handles the
+       escaping of RE special characters by itself.
+
+2001-01-24  Akim Demaille  <address@hidden>
+
+       * m4/depend.m4 (AM_DEPENDENCIES): Don't leave `AC_PROG_CC' etc. in
+       clear.
+       * m4/init.m4: Likewise.
+       * m4/sanity.m4: s/conftestfile/conftest.file/.
+
+2001-01-24  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_libraries): Use $configure_ac; typo fix.
+
+       * automake.in (transform): Quote substitution.
+
+2001-01-21  Alexandre Duret-Lutz  <address@hidden>
+           Tom Tromey  <address@hidden>
+
+       * automake.in (obsolete_rx): Match whole macro names, not
+       substrings.
+       * aclocal.in (obsolete_rx): Likewise.
+
+2001-01-21  Tom Tromey  <address@hidden>
+
+       * automake.texi: Changed dir category.
+
+2001-01-18  Akim Demaille  <address@hidden>
+
+       * automake.in (handle_texinfo): Use &transform, and transform
+       CONFIGURE_AC.
+       Reported by Lars Hecking, and diagnosed by Raja R Harinath.
+
+2001-01-16  Akim Demaille  <address@hidden>
+
+       Let Automake support `configure.ac'.
+
+       * automake.in: In the comments, prefer `configure.ac' to
+       `configure.in'.
+       When using &am_conf_error, don't repeat `in configure.in', since
+       the function already reports it.
+       When referring to `configure.in' use `$configure_ac' instead.
+       (configure_ac): New global variable.
+       (scan_configure, scan_one_configure_file): Rename as...
+       (scan_autoconf_files, scan_one_autoconf_file): this.
+       (scan_autoconf_files): Compute $configure_ac.
+       (transform): New function.
+       (handle_configure): Use it to transform CONFIGURE_AC in
+       `remake.am' and in `remake-hdr.am'.
+       (common_files): Also consider `configure.ac'.
+       Use consistently single quotes.
+       * aclocal.in (configure_ac): New variable.
+       Use it.
+       * texi-vers.am: Depend on CONFIGURE_AC not configure.in.
+       * remake.am: Likewise.
+       * remake-hdr.am: Likewise.
+
+2001-01-16  Akim Demaille  <address@hidden>
+
+       * m4/multi.m4: Remove the hairy useless quotation of `$'.
+       Simplify `ifelse([$2],,,[$2])' into... `$2'!
+       * m4/minuso.m4: Don't use changequote!
+       * m4/cond.m4: Fix quotation.
+       * m4/sanity.m4: Follow the Autoconf coding style.
+       * m4/missing.m4 (AM_MISSING_INSTALL_SH): Use a for loop.
+       * m4/depend.m4 (AM_DEPENDENCIES): Fix quotation issues.
+       Use AC_CACHE_CHECK.
+
+2001-01-15  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_single_transform_list): Don't print rule
+       here when source is in subdir and object is not.  Fixes
+       subobj4.test.
+
+       * automake.in (handle_single_transform_list): Correctly compute
+       $nonansi_obj.  Fixes cxxansi.test.
+
+       * automake.texi (Man pages): Updated to account for man1_MANS,
+       etc.
+
+2001-01-13  Steve Robbins  <address@hidden>
+           Tom Tromey  <address@hidden>
+
+       * aclocal.in (scan_configure): Don't recognize macro assignments
+       or AC_SUBSTs.
+       (add_file): Likewise.
+
+2001-01-13  Kevin Ryde  <address@hidden>
+
+       * automake.in (handle_ltlibraries): Omit -rpath from
+       check_LTLIBRARIES, as per noinst_LTLIBRARIES.
+
+2001-01-11  Tom Tromey  <address@hidden>
+
+       * depcomp (case gcc3): Use -MD, not -M.
+
+2001-01-10  Tom Tromey  <address@hidden>
+
+       * depcomp: Handle gcc 3.
+
+2000-12-23  Tom Tromey  <address@hidden>
+
+       * configure.in: Updated to 1.4c for cvs.
+
+       * configure.in: Updated to 1.4b and released.
+
+       * config.guess, config.sub, texinfo.tex: New versions.
+
+       * automake.in (handle_dist_worker): Always define DIST_SUBDIRS.
+       Re-fixes pr87.test.
+
+       * subdirs.am (maintainer-clean-recursive): Use DIST_SUBDIRS for
+       distclean and maintainer-clean.
+       * automake.texi (Top level): Document use of DIST_SUBDIRS.
+
+       From Rusty Ballinger:
+       * automake.in (handle_java): Don't skip `noinst' prefix.
+
+       * automake.texi (Invoking aclocal): Mention ## comments.
+
+2000-12-22  Tom Tromey  <address@hidden>
+
+       From Raja R Harinath:
+       * automake.in (libtoolize_sometimes): New global.
+       (initialize_global_constants): Added libtoolize_sometimes to
+       common_files.
+
+       * m4/depend.m4 (AM_SET_DEPDIR): Ignore errors when running rmdir.
+
+       * m4/depend.m4 (AM_SET_DEPDIR): Remove .deps directory when done.
+
+2000-12-21  Tom Tromey  <address@hidden>
+
+       * automake.texi (Tags): Document GTAGS target.
+       * tags.am (GTAGS): New target.
+
+       * automake.in (libtoolize_files): Removed ltconfig.
+       (initialize_global_constants): Added ltconfig to common_files.
+
+2000-12-21  Kevin Ryde  <address@hidden>
+
+       * automake.in (handle_footer): Generate .SUFFIXES target when user
+       defines suffixes but automake does not.
+
+2000-12-20  Marc Espie  <address@hidden>
+
+       * automake.in (handle_texinfo): Make path of $vtexi explicit in
+       dependency.
+       * texi-vers.am: Likewise.
+
+2000-12-20  Tom Tromey  <address@hidden>
+
+       From Kevin Ryde:
+       * automake.in (handle_footer): Always push user suffixes at the
+       start of .SUFFIXES:.
+       * automake.texi (Suffixes): Updated to reflect new suffix
+       handling.
+
+2000-12-18  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_built_sources): Removed.
+       (handle_merge_targets): Handle BUILT_SOURCES.
+       * automake.texi (Sources): Updated documentation of
+       BUILT_SOURCES.
+
+2000-12-17  Tom Tromey  <address@hidden>
+
+       * m4/protos.m4: Always do header checks.
+
+       * automake.in (handle_ltlibraries): Check for LDFLAGS variables
+       before using values.
+
+       * automake.in (handle_ltlibraries): Allow _LDFLAGS to be
+       conditionally defined.  Fixes PR automake/77 and ldflags.test.
+
+2000-11-25  Tom Tromey  <address@hidden>
+
+       * automake.in (file_contents_with_transform): Added file name and
+       line number to error report.
+       (MACRO_PATTERN, BOGUS_MACRO_PATTERN): Leading spaces are ok.
+
+2000-11-23  Pavel Roskin  <address@hidden>
+
+       * m4/regex.m4 (AM_WITH_REGEX): This macro was broken because
+       of M4 underquoting.
+       * m4/ccstdc.m4 (AC_PROG_CC_STDC): Added some M4 quotes.
+       * m4/dmalloc.m4 (AM_WITH_DMALLOC): Likewise.
+       * m4/lispdir.m4 (AM_PATH_LISPDIR): Likewise.
+       * m4/maintainer.m4 (AM_MAINTAINER_MODE): Likewise.
+       * m4/multi.m4 (AM_WITH_DMALLOC): Likewise.
+       * m4/python.m4 (AM_PATH_PYTHON): Likewise.
+       * m4/strtod.m4 (AM_FUNC_STRTOD): Likewise.
+
+2000-11-23  Tom Tromey  <address@hidden>
+
+       * automake.in (require_file_internal): Pass $file as second
+       argument to maybe_push_required_file.  Fixes PR automake/87.
+
+2000-11-18  Tom Tromey  <address@hidden>
+
+       * m4/depend.m4 (AM_DEPENDENCIES): Redirect `$am_depcomp' stdout to
+       /dev/null.  From Paul Martinolich.
+
+2000-11-16  Morten Eriksen  <address@hidden>
+
+       * aclocal.in (write_aclocal): Set ``binmode'' after file has been
+       opened, otherwise it has no effect.
+
+2000-10-23  Morten Eriksen  <address@hidden>
+
+       * aclocal.in (write_aclocal): Don't write aclocal.m4 with
+       CRLFs. This circumvents a bug in Cygwin bash.
+
+       * automake.in (generate_makefile): Don't write Makefile.in
+       files with CRLFs, as it causes problems for the dependency-file
+       extraction in AM_OUTPUT_DEPENDENCY_COMMANDS.
+
+2000-10-19  Alex Hornby  <address@hidden>
+
+       * automake.in (handle_merge_targets): Allow parallel install
+       with forced relink.
+
+2000-10-19  Akim Demaille  <address@hidden>
+
+       * subdir4.test (depcomp): Don't create it, defs does.
+
+2000-10-17  Pavel Roskin  <address@hidden>
+
+       * automake.in (handle_aclocal_m4): exclude aclocal.m4 and
+       acinclude.m4 from the dependencies of aclocal.m4 to avoid
+       circular and duplicated dependencies. Strip "./" from the
+       dependencies.
+
+2000-10-17  Lars J. Aas  <address@hidden>
+
+       * aclocal.in (write_aclocal): Set up aclocal.m4 header with
+       normal comments (#) instead of m4 dnl-type comments.
+
+2000-10-17  Alex Hornby  <address@hidden>
+
+       * depcomp: Altered sed clause to strip of inclusion depth
+       numbers generated by cpp. Also output in gcc style.
+
+2000-10-16  Morten Eriksen  <address@hidden>
+
+       * depcomp (msvisualcpp): New dependency tracking mode, for
+       Microsoft Visual C++.
+
+2000-10-16  Morten Eriksen  <address@hidden>
+
+       * depcomp: Fix a bug in SGI dependency tracking mode with source
+       files which do not dependend on any other source files.
+
+2000-10-16  Rodney Brown  <address@hidden>
+
+       * aclocal.in, aclocal.m4: Standardize FSF Copyright statements.
+       * automake.in, automake.texi: Likewise.
+       * clean-kr.am, clean.am: Likewise.
+       * comp-vars.am: Likewise.
+       * compile, compile.am: Likewise.
+       * data-clean.am: Likewise.
+       * data.am: Likewise.
+       * dejagnu.am: Likewise.
+       * depcomp: Likewise.
+       * depend.am, depend2.am: Likewise.
+       * dist-vars.am, dist.am: Likewise.
+       * elisp-comp: Likewise.
+       * footer.am: Likewise.
+       * header-vars.am, header.am: Likewise.
+       * java-clean.am java.am: Likewise.
+       * kr-extra.am: Likewise.
+       * library.am: Likewise.
+       * libs-clean.am, libs.am: Likewise.
+       * libtool.am: Likewise.
+       * lisp-clean.am lisp.am: Likewise.
+       * ltlib-clean.am ltlib.am: Likewise.
+       * ltlibrary.am: Likewise.
+       * m4/Makefile.in: Likewise.
+       * m4/strtod.m4: Likewise.
+       * mans-vars.am, mans.am: Likewise.
+       * mdate-sh: Likewise.
+       * missing: Likewise.
+       * multilib.am: Likewise.
+       * program.am: Likewise.
+       * progs-clean.am, progs.am: Likewise.
+       * python-clean.am, python.am: Likewise.
+       * remake-hdr.am, remake.am: Likewise.
+       * scripts.am: Likewise.
+       * subdirs.am: Likewise.
+       * tags-clean.am, tags.am: Likewise.
+       * texi-vers.am: Likewise.
+       * texinfos.am: Likewise.
+       * ylwrap: Likewise.
+
+2000-10-09  Pavel Roskin  <address@hidden>
+
+       * m4/init.m4 (AM_INIT_AUTOMAKE): Don't rely on variable
+       assignments changing $? - it's broken in ash-0.2.
+       * m4/missing.m4 (AM_MISSING_HAS_RUN): Likewise.
+
+       * automake.in (handle_aclocal_m4): If ACLOCAL_M4_SOURCES is
+       defined use it as the list of M4 files aclocal.m4 depends on.
+
+2000-10-06  Alexandre Duret-Lutz  <address@hidden>
+
+       * aclocal.in (add_file): Strip comments while scanning for
+       macro dependencies.
+
+2000-09-15  Alexandre Duret-Lutz  <address@hidden>
+
+       * automake.in (initialize_global_constants): End the
+       result of dist-bzip2 with tar.bz2, not bz2.
+
+2000-08-30  Tom Tromey  <address@hidden>
+
+       Fix for PR automake/72:
+       * automake.in (initialize_per_input): Define `need_link'.
+       (finish_languages): Use need_link.
+       (handle_source_transform): Set need_link if required.
+
+2000-08-28  Tom Tromey  <address@hidden>
+
+       * automake.in (yacc, yaccxx, lex, lexxx): Set `derived-autodep'
+       key.
+       (register_language): Default the `derived-autodep' option.
+       (handle_single_transform_list): Add to %dep_files if language has
+       `derived-autodep' set.  Re-fixes lex4.test.
+
+2000-08-27  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_single_transform_list): Only add to
+       %dep_files if language is found and supports automatic dependency
+       tracking.  Fixes PR automake/75.
+
+       * automake.in (am_primary_prefixes): Don't set `valid' for
+       configure variables that don't satisfy the other constraints.
+       Fixes PR automake/68.
+
+2000-04-14  Victor V. Vengerov  <address@hidden>
+
+       Fix for PR automake/67.
+       * automake.in (handle_multilib): remove .am suffix in fragment
+       name passed to file_contents.
+       * m4/multi.m4: Add missing ')' in AC_ARG_ENABLE invocation.
+       Remove external quotes in first arg of AC_OUTPUT_COMMANDS.
+       Remove unnecessary "rel-to-top-srcdir" before config-ml.in.
+
+2000-08-26  Tom Tromey  <address@hidden>
+
+       * subdirs.am (maintainer-clean-recursive): Always run clean rules
+       in `.' after all subdirs.  Fixes PR automake/3 and PR automake/24.
+
+       * automake.in (handle_man_pages): Generate install targets for man
+       even if man_MANS not defined.  From `danpb'.  Fixes PR automake/73.
+
+       * m4/depend.m4 (depcpp): Use `-o conftest.o'.
+       Fix for PR automake/74.  From js pendry.
+
+2000-08-20  Eli Zaretskii  <address@hidden>
+
+       * depcomp (gcc): Support DOS-style absolute file names with drive
+       letters.
+
+2000-08-06  Jim Meyering  <address@hidden>
+
+       * automake.in (handle_dependencies): Set $require_file_found{'depcomp'}
+       if the depcomp file exists, before calling require_config_file on
+       `depcomp'.  This makes require_file_internal skip its buggy existence
+       test that would make automake fail (with `required file `lib/depcomp'
+       not found') when AC_CONFIG_AUX_DIR is not set.
+
+       This change change does not fix the existing bug where, if `depcomp'
+       is not present in the build directory (at the top level), automake
+       still gives the inaccurate diagnostic about *lib*/depcomp rather
+       than ./depcomp.
+
+2000-08-05  Jim Meyering  <address@hidden>
+
+       * m4/header.m4 (AM_CONFIG_HEADER): Fix typo in last change:
+       add missing closing bracket and closing parenthesis.
+       Don't quote the first argument to AC_OUTPUT_COMMANDS.
+       Backslash-escape the backquotes and `$' in `am_indx'-incrementing stmt.
+
+2000-08-04  Tom Tromey  <address@hidden>
+
+       Idea from Nicolas Thiery:
+       * automake.texi (Tests): Document DEJATOOL as a list.
+       * dejagnu.am (RUNTESTDEFAULTFLAGS): Use $$tool, not $(DEJATOOL).
+       (check-DEJAGNU): Run runtest in a loop.
+
+2000-08-02  Akim Demaille  <address@hidden>
+
+       * m4: Quote properly the name of the macros being defined.
+       Use `#' instead of `dnl' where appropriate.
+       * m4/header.m4 (AM_CONFIG_HEADER): Get rid of changequote, just
+       quote.
+       Don't quote passive characters.
+       Pull the AC_PREREQ outside the macro.
+       * m4/init.m4: Pull the AC_PREREQ outside the macro.
+
+2000-07-28  Tom Tromey  <address@hidden>
+
+       * lisp.am (address@hidden@LISP): Prefix file with $(DESTDIR).
+       From Bruno Haible.
+
+2000-07-13  Kevin Ryde  <address@hidden>
+
+       * automake.in (am_install_var): Apply the $(EXEEXT) hack to
+       EXTRA_PROGRAMS as well as other _PROGRAMS.
+
+2000-07-02  Jim Meyering  <address@hidden>
+
+       * automake.in (scan_one_configure_file): Recognize AC_LIBOBJ.
+
+2000-06-19  Paolo Bonzini    <address@hidden>
+
+       * texi-vers.am: define UPDATED-MONTH variable (for an example, see
+       GNU make's manual)
+
+2000-06-02  Morten Eriksen  <address@hidden>
+
+       * depcomp: workaround for problem with SGI IRIX sed (it can only
+       handle lines of up to 8192 characters, the rest of the line will
+       be mangled).
+
+2000-05-31  Morten Eriksen  <address@hidden>
+
+       * depcomp: tell SGI MIPSpro compilers to generate dependencies
+       through the pre-processor (only CVS libtool has the -Wc option
+       yet).
+
+2000-05-15  Brendan O'Dea  <address@hidden>
+
+       * missing: Add support for `help2man'.
+
+2000-05-11  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_tests): Work correctly if TESTS is empty;
+       print nothing if it is.  From Kevin Ryde.
+
+2000-05-08  Tom Tromey  <address@hidden>
+
+       * automake.texi (Texinfo): Mention vers*.texi.
+
+2000-05-04  Akim Demaille  <address@hidden>
+
+       AM_INIT_AUTOMAKE is no longer optional, so don't look for
+       `VERSION=' and `PACKAGE='.
+       * automake.in (seen_package, seen_version): Remove initializations of
+       unnecessary variables.
+       (scan_one_configure_file): Don't set them.
+       (scan_configure): Don't use them.
+
+2000-05-01  Akim Demaille  <address@hidden>
+
+       * m4/init.m4 (AC_PROVIDE_IFELSE): If it is not defined, do it.
+       (AM_INIT_AUTOMAKE): Update the writing conventions.
+       Quote the arguments properly.
+       Add a few missing `dnl'.
+       Use AC_PROVIDE_IFELSE.
+
+2000-04-26  Jim Meyering  <address@hidden>
+
+       * automake.in (scan_one_configure_file): Handle the AC_CONFIG_FILES
+       macro.  Based on a patch from Harlan Stenn.
+
+2000-04-13  Akim Demaille  <address@hidden>
+
+       * compile: Remove unnecessary double quotes in assignments.
+
+2000-04-13  Akim Demaille  <address@hidden>
+
+       * automake.in (scan_one_configure_file): Also recognize
+       AC_CONFIG_HEADERS.
+       Remove trailing blanks.
+
+2000-04-05  Tom Tromey  <address@hidden>
+
+       * header-vars.am (DESTDIR): Commented out definition.
+
+       * automake.in (require_file_internal): Pass --copy to libtoolize
+       if automake was run with `--copy'.
+
+2000-03-22  Tom Tromey  <address@hidden>
+
+       * automake.texi (Uniform): Fix definition of pkglibdir.
+       From thi <address@hidden>.
+
+2000-03-19  Tom Tromey  <address@hidden>
+
+       * aclocal.in (parse_arguments): Copyright 2000.
+       (write_aclocal): Likewise.
+       * automake.in (parse_arguments): Copyright 2000.
+       (initialize_global_constants): Likewise.
+
+       * automake.in (generate_makefile): Call handle_dist after
+       handle_dependencies and handle_tests.  Fixes subobj3.test and
+       pr19.test regressions.
+
+2000-03-19  Gordon Matzigkeit  <address@hidden>
+
+       * depend2.am (@address@hidden): Look for the source file in srcdir as 
well
+       as the current directory.
+       (@address@hidden): Likewise.
+
+2000-03-19  OKUJI Yoshinori  <address@hidden>
+
+       * automake.in (handle_data): Pass -candist instead of
+       -defaultdist, for the compatibility.
+
+2000-03-19  Tom Tromey  <address@hidden>
+
+       Fix for test nodepcomp.test:
+       * automake.in (require_file_internal): Use readlink on symlinks.
+       Only unlink file if we are going to try to add it again.
+       (handle_dependencies): Require `depcomp' here.
+       (scan_configure): Don't require `depcomp'.
+
+2000-03-16  OKUJI Yoshinori  <address@hidden>
+
+       * automake.in (handle_configure): Remove $(BUILT_SOURCES) from
+       the rule to remake Makefile, whether $use_dependencies is true
+       or not. This was a historical one and doesn't make sense any
+       longer.
+
+2000-03-19  Tom Tromey  <address@hidden>
+
+       More for PR automake/38:
+       * automake.texi (Invoking Automake): Document --force-missing.
+       * automake.in (force_missing): New global.
+       (parse_arguments): Recognize --force-missing.
+       (initialize_global_constants): Document --force-missing.
+       (require_file_internal): Handle --force-missing.
+
+       Fix for PR automake/38:
+       * automake.in (require_file_internal): Check for and handle
+       dangling symlinks.  Fixes symlink2.test.
+
+       Fix for PR automake/45:
+       * automake.texi (configure): Mention requirement to run
+       AM_INIT_AUTOMAKE.
+       (Requirements): Removed most text.
+       * automake.in (seen_init_automake): New global.
+       (scan_configure): Error if AM_INIT_AUTOMAKE not seen.
+       (scan_one_configure_file): Don't support AM_INIT_GUILE_MODULE.
+       Set seen_init_automake if needed.
+
+       Fix for PR automake/41:
+       * automake.in (require_file_found): New global.
+       (require_file_internal): Set require_file_found entry.
+       (handle_texinfo): Require file any number of times.
+
+       * automake.in (handle_dist_worker): Exit if `cp' fails.  Fixes
+       install2.test.
+
+       * tags.am: Don't reference $$here.  Report from Sven Verdoolaege.
+
+2000-03-13  Alexandre Oliva  <address@hidden>
+
+       * m4/missing.m4: Print the backtick in a way that won't cause
+       autoconf CVS to emit any warnings.
+
+2000-03-01  Jim Meyering  <address@hidden>
+
+       * automake.in (handle_dist_worker) [generating rules for distdir]:
+       Don't use `ln' (which was just a space optimization anyway) to
+       populate $(distdir).  Otherwise, the dist rules that change
+       permissions would end up affecting the master sources.
+       * texinfos.am (dist-info): Likewise.
+
+2000-02-13  Jim Meyering  <address@hidden>
+
+       * automake.in (generate_makefile): Detect write/close failure.
+
+2000-02-02  Assar Westerlund  <address@hidden>
+
+       * automake.in (handle_single_transform_list): do not use $< which
+       is not handled by all non-GNU makes.  Instead do explicit sh code
+       testing for the file in this directory and srcdir.  Based on a
+       suggestion by Alexandre Oliva <address@hidden>
+
+2000-01-12  Tom Tromey  <address@hidden>
+
+       * m4/lispdir.m4: Added --with-lispdir argument processing.
+       From Kevin Dalley.
+
+2000-01-06  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_configure): Don't check for
+       AC_PROG_MAKE_SET.
+       (scan_configure): Check for AC_PROG_MAKE_SET.
+
+       * header-vars.am (@SET_MAKE@): Added.
+       * subdirs.am (@SET_MAKE@): Removed.  Report from Motoyuki
+       Kasahara.
+
+1999-12-19  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_dist_worker): Expand DIST_COMMON under all
+       conditions.
+       (require_file_internal): Corrected arguments to second invocation
+       of maybe_push_required_file.
+
+       Fix for PR automake/9:
+       * automake.in (make_dirs, make_dirs_set): New globals.
+       (is_make_dir): New function.
+       (handle_configure): Use it.
+       (require_file_internal): Push file if there is no Makefile in its
+       directory.
+       (initialize_per_input): Initialize handle_dist_run.
+       (push_dist_common): Inspect handle_dist_run.
+       (handle_dist): Set handle_dist_run.  Push items from
+       configure_dist_common onto dist_common if appropriate.
+       (configure_dist_common): New global.
+       (scan_configure): Set it.
+       (maybe_push_required_file): New function.
+       (require_file_internal): Use it.
+
+       * automake.in (handle_dist_worker): Scan DIST_COMMON to see if
+       more subdirs are defined.  From Axel Belinfante.  Fixes
+       PR automake/2.
+
+1999-12-18  Tom Tromey  <address@hidden>
+
+       Partial fix for PR automake/40:
+       * lisp.am (address@hidden@LISP): Handle nobase_ case.
+       (address@hidden@LISP): Likewise.
+       * header.am (address@hidden@HEADERS): Handle nobase_ case.
+       (address@hidden@HEADERS): Likewise.
+       * data.am (address@hidden@DATA): Handle nobase_ case.
+       (address@hidden@DATA): Likewise.
+       * automake.in (am_primary_prefixes): Recognize `nobase_' prefix.
+       (am_install_var): Recognize and handle `nobase_' prefix.
+
+1999-12-17  Tom Tromey  <address@hidden>
+
+       * automake.in (get_object_extension): Added space before `-I.'.
+       Report from Ralf Corsepius.
+
+1999-12-15  Tom Tromey  <address@hidden>
+
+       * aclocal.in: Don't pass $acdir to scan_m4_files.
+       (parse_arguments): Push $acdir on end of dirlist.
+       (scan_file): Don't warn if duplicate macro seen.
+
+1999-12-13  Tom Tromey  <address@hidden>
+
+       Fix for PR automake/30 and PR automake/23.  Fixes test
+       suffix3.test.
+       * automake.in (initialize_per_input): Initialize
+       source_suffix_pattern.
+       (derive_suffix): New function.
+       (handle_single_transform_list): Call it.
+
+       * automake.in (add_depend2): Handle the no-dependency-tracking
+       case.  Fixes test suffix2.test.
+
+       * depcomp (tmpdepfile): [case sgi] Added missing `fi'.
+
+       * automake.in (get_object_extension): Fixed quoting on
+       -I$(srcdir).
+
+       * depend2.am: Removed erroneous comment.
+
+       * automake.texi (Program variables): Document nostdinc.
+       (Options): Likewise.
+       * automake.in (get_object_extension): Respect nostdinc option.
+       (handle_options): Recognize nostdinc.
+       * comp-vars.am (DEFS): Use @DEFAULT_INCLUDES@ as sole
+       substitution.
+
+       * automake.in (read_am_file): Allow conditional includes.  Fixes
+       test condincl.test.
+
+       * depcomp: Handle case on SGI when libtool is `yes'.
+       * depend2.am (@address@hidden): Set libtool.
+       (@address@hidden): Likewise.
+       (@address@hidden): Likewise.
+
+       * depcomp: Unify dashmstdout and dashXmstdout cases.  Move hp case
+       after gcc case.
+
+1999-12-13  Pavel Roskin  <address@hidden>
+
+       * automake.in (add_depend2): substitute $rule in the rules
+       for individual files.  Fixes test specflags5.test.
+
+1999-12-12  Tom Tromey  <address@hidden>
+
+       * m4/depout.m4 (AM_OUTPUT_DEPENDENCY_COMMANDS): Run mkinstalldirs
+       to create directories.  Fixes test subobj3.test.
+
+1999-12-10  Tom Tromey  <address@hidden>
+
+       * m4/depout.m4 (AM_OUTPUT_DEPENDENCY_COMMANDS): Don't print
+       message when creating .deps files.
+
+       * automake.in (initialize_global_constants): If unreadable by
+       owner, make it readable by owner regardless of number of links.
+       Fixes more of install2.test.
+
+       * missing: Try to see if gnutar or gtar exist before invoking
+       them.
+
+       * m4/missing.m4 (AM_MISSING_INSTALL_SH): Remove ${SHELL} from
+       install_sh value.  Look for install-sh and install.sh in a
+       somewhat more sensible way.  Fixes test install2.test.  Partially
+       from Jim Meyering.
+
+1999-12-09  Pavel Roskin  <address@hidden>
+
+       * m4/missing.m4: remove redundant backquote
+
+1999-11-23  Tom Tromey  <address@hidden>
+
+       * automake.in (initialize_global_constants): Use `bzip2 -9', not
+       `bzip --best'  Report from Jim Meyering.
+
+1999-11-22  Tom Tromey  <address@hidden>
+
+       * m4/missing.m4 (AM_MISSING_INSTALL_SH): Don't take argument.
+       * m4/init.m4 (AM_INIT_AUTOMAKE): Don't pass argument to
+       AM_MISSING_INSTALL_SH.
+       * automake.in (scan_one_configure_file): Reverted previous
+       change.
+
+       * automake.in (scan_one_configure_file): Define `install_sh'
+       configure variable when AM_INIT_AUTOMAKE seen.  Report from Jim
+       Meyering.
+
+       * automake.in (handle_single_transform_list): Generate explicit
+       rule for subdir objects.  Fixes new addition to subobj.test.
+
+       * automake.in (handle_lib_objects_cond): Allow LIBOBJS to be
+       defined by AC_SUBST.  Fixes ltlibobjs.test.
+
+       Fix for sourcesub.test:
+       * automake.in (handle_single_transform_list): Added `var'
+       argument.  If config sub found, give error.
+       (handle_source_transform): Updated for new
+       handle_source_transform.
+
+       * py-compile: New file.
+       * m4/Makefile.am (m4data_DATA): Added python.m4.
+       * m4/python.m4: New file.
+       * automake.texi (Uniform): Mention PYTHON.
+       (Python): New node.
+       * Makefile.am (amfiles): Added python.am, python-clean.am.
+       (dist_script_DATA): Added py-compile.
+       * python.am: New file.
+       * python-clean.am: New file.
+       * automake.in (seen_pythondir): New global.
+       (generate_makefile): Call handle_python.
+       (handle_python): New function.
+       (scan_one_configure_file): Set seen_pythondir if AM_PATH_PYTHON
+       seen.
+       (am_install_var): Special-case PYTHON like JAVA.
+       (scan_configure): Check for py-compile.
+       (initialize_global_constants): Added py-compile to @common_files.
+
+       * ltlib.am (address@hidden@LTLIBRARIES): Added missing space.
+
+1999-11-21  Tom Tromey  <address@hidden>
+
+       * automake.in (finish_languages): Only generate suffix rule when
+       not doing dependency tracking.
+
+       * m4/init.m4 (AM_INIT_AUTOMAKE): Use AM_MISSING_INSTALL_SH.
+       * m4/missing.m4 (AM_MISSING_INSTALL_SH): New macro.
+
+       * depend2.am: Use @SOURCE@, @OBJ@, @LTOBJ@, @OBJOBJ@, and 
@address@hidden
+       Always use `-o'.
+
+1999-11-19  Tom Tromey  <address@hidden>
+
+       * dist.am: Set `CDPATH=:' to avoid problems.  Merged from
+       Alexandre's change on branch.
+
+1999-10-02  Alexandre Oliva  <address@hidden>
+
+       * Makefile.am (maintainer-check): Look for occurrences of ``cd'
+       without `CDPATH'.
+       * dejagnu.am: Set CDPATH before cd.
+       * Makefile.in: Rebuilt.
+
+       * automake.in (handle_single_transform_list): Change `\1' for `$1'
+       in `s///' replacement.
+
+       * automake.in (handle_dist): Set CDPATH before cd.
+       * dejagnu.am (check-DEJAGNU): Likewise.
+       * texinfos.am (install-info-am, dist-info): Likewise.
+       * m4/init.m4 (AM_INIT_AUTOMAKE): Likewise.
+       * m4/missing.m4 (AM_MISSING_HAS_RUN): Likewise.
+       * aclocal.m4, configure, Makefile.in: Rebuilt.
+
+       * AUTHORS: Added myself.
+
+1999-09-14  Alexandre Oliva  <address@hidden>
+
+       * m4/missing.m4: Support relative srcdir and ac_aux_dir.
+       Reported by Tim Wilkinson <address@hidden>
+       * aclocal.m4, configure: Rebuilt.
+
+1999-08-17  Alexandre Oliva  <address@hidden>
+
+       * m4/lex.m4 (AM_PROG_LEX): Require AM_MISSING_HAS_RUN and, if no
+       LEX program is found, use `${am_missing_run}flex'.
+
+1999-08-16  Alexandre Oliva  <address@hidden>
+
+       * automake.in (handle_single_transform_list): Replace `$(OBJEXT)'
+       with `o' in depfile.
+
+       * automake.in (handle_lib_objects_cond): Remove second dot from
+       dependency file names.
+
+       * depend2.am (address@hidden@.obj): Dependency file should be .Po,
+       regardless of OBJEXT.
+
+       * automake.in (handle_dependencies): Add blank line after depend2.
+       (handle_dependencies): Start DEP_FILES with address@hidden@'.  Output
+       blank line before `include's, not after them.
+       (scan_one_configure_file): Do not special-case `DEP_' any more.
+
+       * m4/depout.m4 (AM_OUTPUT_DEPENDENCY_COMMANDS): Run for loop only
+       if AMDEP is empty.
+       * aclocal.m4, configure: Rebuilt.
+
+       * m4/depend.m4 (AMDEPBACKSLASH): Define.
+       * depend2.am (@address@hidden, @address@hidden, @address@hidden): Use 
AMDEPBACKSLASH.
+
+       * automake.in (handle_dependencies): Generate `include's for
+       dependency files after address@hidden@'.
+
+       * m4/missing.m4: Use eval, instead of a sub-shell, to test for
+       --run support in the missing script, since SHELL is not exported.
+       Reported by job bogan <address@hidden>
+       * aclocal.m4, configure: Rebuilt.
+
+1999-08-15  Alexandre Oliva  <address@hidden>
+
+       * aclocal.m4, configure: Rebuilt with itself.
+       * Makefile.in, m4/Makefile.in, tests/Makefile.in: Likewise.
+
+       * m4/missing.m4 (AM_MISSING_PROG): Remove DIRECTORY argument.
+       Require AM_MISSING_HAS_RUN.  Use am_missing_run, defined by...
+       (AM_MISSING_HAS_RUN): New macro.
+       * m4/init.m4: Remove missing_dir from calls to AM_MISSING_PROG.
+       * automake.texi (Requirements): Likewise.
+       * version.texi, stamp-vti: Rebuilt.
+
+1999-07-28  Tom Tromey  <address@hidden>
+
+       * depcomp: Handle the `hp' mode.
+
+1999-07-06  Tom Tromey  <address@hidden>
+
+       * depcomp: Work around HP-UX 10.20 sed bug.
+
+1999-07-05  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_dependencies): Generate a separate include
+       for each dep file.  Report from Alexandre Oliva.
+       * depend.am: Don't include DEP_FILES.
+
+1999-06-01  Alexandre Oliva  <address@hidden>
+
+       * depend.am: Add @AMDEP@ before `include', so that dependency
+       tracking can be disabled.
+       * depend2.am: Ditto, before all lines related with dependency
+       tracking.
+       * m4/depend.m4 (AM_DEP_TRACK): New macro, that documents
+       --enable/disable-dependency-tracking and sets AMDEP accordingly.
+       It is implicitly disabled if depcomp is missing.
+       (AM_DEPENDENCIES): Disable dependency tracking unless it can be
+       generated by side-effect.
+       * m4/init.m4 (AM_INIT_AUTOMAKE): Require AM_DEP_TRACK.
+       * automake.in (handle_dependencies): Add @AMDEP@ before the value
+       of DEP_FILES.
+       * m4/depout.m4 (AM_OUTPUT_DEPENDENCY_COMMANDS): Handle DEP_FILES
+       starting with `#'.
+
+       * depcomp: Support -xM for dependency generation, for Sun CC.
+       Reported by Alex Hornby <address@hidden>
+       * m4/depend.m4: Extract the list of supported dependency-tracking
+       mechanisms from the depcomp script and use it to test each one.
+       * THANKS: Added Alex Hornby.
+
+       * depend2.am: Move $(depcomp) to the line of $(...DEPMODE), so as
+       to leave $(...COMPILE) in a line by itself.
+
+       * THANKS: Added Miles Bader.
+
+1999-06-01  Miles Bader  <address@hidden>
+
+       * m4/depend.m4 (AM_DEPENDENCIES): Add check for `makedepend'.
+       Fix `dashmstdout' to ignore non-dependency-generating uses of the
+       -M flag.
+       * depcomp (makedepend): New dependency-generating method.
+
+1999-06-01  Alexandre Oliva  <address@hidden>
+
+       * missing: If given `--run' as first argument, try to run the
+       given program before falling back to the ``emulated'' behavior.
+       Add support for `tar'.
+       * automake.in: Use new `tar' support for `dist'.
+       * m4/missing.m4 (AM_MISSING_PROG): Instead of checking for the
+       program, prepend `missing --run' to the given program name.
+       * m4/init.m4: Remove AMTAR-related stuff.
+       * NEWS: Updated.
+
+       * m4/depout.m4: Instead of `find'ing Makefiles, just iterate on
+       CONFIG_FILES.  Do not use temporary variable for list of
+       dependency files, it breaks Cygwin.
+
+1999-04-27  Alexandre Oliva  <address@hidden>
+
+       * depcomp (gcc): Imported comments removed from depend2.am, so
+       that we don't lose them.
+
+       * m4/depout.m4 (AM_OUTPUT_DEPENDENCY_COMMANDS): Avoid sed s/$U//
+       when not using ansi2knr.
+
+1999-04-26  Alexandre Oliva  <address@hidden>
+
+       * m4/depend.m4 (AM_DEPENDENCIES): Test for depcc -E support.
+       * depcomp (cpp): Extract dependencies from `# nnn "..."' lines.
+
+1999-04-25  Alexandre Oliva  <address@hidden>
+
+       * m4/depend.m4 (AM_DEPENDENCIES): Add a definition to conftest.h,
+       so as not to compile an empty source; some compilers fail on this.
+       Redirect stderr of depcc to /dev/null.  Test for -M with -o,
+       because some compilers will output the rules to the output file.
+       * depcomp (dashmstdout): Add --silent before --mode=compile, so
+       that we don't get libtool output mixed up with make rules.
+
+       * m4/init.m4 (AM_INIT_AUTOMAKE): Require AM_SET_DEPDIR.
+       * depend2.am: Set tmpdepfile too, to speed up depcomp.  Always use
+       -o for libtool, otherwise it may try to deduce the object name
+       from the dependency-generation flag.
+       * depcomp: Assume depdir exists.  Preserve depfile on unsuccessful
+       compilations.
+
+       * libtool.am: Do not emit .c.lo here...
+       * depend2.am: ... emit .*.lo here, only when using libtool.
+       * automake.in (get_object_extension): No more @MINUSO@ here.
+       (handle_single_transform_list): Set $depfile from $object.
+       (handle_dependencies): Emit depend2.am for all used languages,
+       regardless of $use_dependencies; the setting of depcomp makes the
+       difference.
+       (lang_cxx_finish): Do not emit compilation rules.
+       (lang_objc_finish): Likewise.
+       (lang_java_finish): Likewise.
+
+1999-04-21  Tom Tromey  <address@hidden>
+
+       * m4/depout.m4 (AM_OUTPUT_DEPENDENCY_COMMANDS): Correctly
+       interpolate DEPDIR in DEP_FILES expansion.
+
+1999-04-20  Lee Iverson  <address@hidden>
+
+       * m4/depend.m4 (AM_DEPENDENCIES): Fix up test for SGI-style
+       dependency updating.
+       * m4/depout.m4 (AM_OUTPUT_DEPENDENCY_COMMANDS): Fix sed script to
+       handle multi-line dependency lists.
+
+1999-11-12  Tom Tromey  <address@hidden>
+
+       Fix for PR automake/14:
+       * aclocal.in: Added `ud_GNU_GETTEXT'.  Updated to mention
+       AC_CYGWIN.
+       * automake.in: Mention AC_CYGWIN, not AC_CYGWIN32.
+
+       * m4/multi.m4: Added missing `]'.  From Akim Demaille.
+
+       * Makefile.am (path-check): Make sure distdir is writeable before
+       removing it.
+       * automake.in (handle_texinfo): Added `cm' and `ov' extensions.
+       (handle_dist_worker): Make sure distdir is writeable before
+       removing it.
+       (initialize_global_constants [$dist_trailer]): Make sure distdir
+       is writeable before removing it.
+       * dist.am (distcheck): Make the new source tree read-only before
+       compiling.  Idea from Karl Berry.
+
+       * automake.texi (Gnits): Allow COPYING.LIB again.
+       * automake.in (check_gnits_standards): Allow COPYING.LIB again.
+
+1999-11-11  Jim Meyering  <address@hidden>
+
+       * dist.am (distcheck): Remove $(distdir).tar.gz before counting
+       files.
+
+1999-11-09  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_dist): Typo fix.  From Jim Meyering.
+
+1999-11-09  Jim Meyering  <address@hidden>
+
+       * automake.in (handle_dist): Remove the DISTHOOK and GETTEXT
+       markers, no matter what.
+
+1999-11-08  Tom Tromey  <address@hidden>
+
+       * dist.am (distcheck): Put `&&' at the start of the distcheck-hook
+       line.
+
+       * automake.in (handle_dist_worker): Use `cp -R', not `cp -r'.
+       From Jim Meyering.  Also, don't mention file name in `cp'
+       destination.  From Olly Betts.
+
+1999-10-27  Miodrag Vallat  <address@hidden>
+
+       * texinfos.am (uninstall-info): Use installed info file, not one
+       from srcdir or builddir.
+
+1999-11-07  Tom Tromey  <address@hidden>
+
+       * clean.am (maintainer-clean-generic): Remove Makefile.in.  From
+       Jeff Bailey
+
+       Fix for PR automake/18:
+       * automake.in (handle_dist): Add contents of dist.am to the output
+       rules.
+       * Makefile.am (amfiles): Added dist.am.
+       * dist.am: New file.
+       (distcheck): Added uninstall and distclean checks.
+
+       * automake.in (PATH_PATTERN): Added `-' as allowable character.
+       Fixes PR automake/20.  From Matthew D. Langston.
+
+       * automake.in (SUFFIX_RULE_PATTERN): Add `0-9' as characters
+       allowed in suffixes.  Fixes PR 22.  From Matthias Clasen.
+
+1999-10-03  Alexandre Oliva  <address@hidden>
+
+       * m4/lispdir.m4: -batch must come before -q.
+       * elisp-comp: Likewise.
+       Reported by Lars Hecking <address@hidden>
+       * THANKS: Added Lars.
+
+1999-08-15  Tom Tromey  <address@hidden>
+
+       * automake.in (get_object_extension): Fixed quoting bug.  Fixes
+       ansi4.test.
+
+1999-07-27  Tom Tromey  <address@hidden>
+
+       * config.guess, config.sub: New versions from autoconf.
+
+1999-07-13  Tom Tromey  <address@hidden>
+
+       Work around losing `awk'.  Report from Harlan Stenn.
+       * m4/init.m4 (AM_INIT_AUTOMAKE): Require AC_PROG_AWK.
+       * tags.am (ID, TAGS): Use $(AWK), not `awk'.
+
+       * automake.in (handle_source_transform): Mark prefix as seen if
+       corresponding _SOURCES variable exists.  Fixes empty2.test.
+
+1999-06-25  OKUJI Yoshinori  <address@hidden>
+
+       * configure.in (ACLOCAL): Do not prepend the variable SRCDIR to
+       m4.
+       (AUTOMAKE): Set --amdir to current directory.
+
+1999-06-20  Tom Tromey  <address@hidden>
+
+       * Makefile.am (TAGS_FILES): New macro.
+       (ETAGS_ARGS): Moved files into TAGS_FILES.
+       (TAGS_DEPENDENCIES): Likewise.
+       (ETAGS_ARGS): Removed.
+       (TAGS_DEPENDENCIES): Removed duplicate definition.
+
+       * tags.am (ID): Handle VPATH correctly.  Use TAGS_FILES.  Report
+       from Ganesan Rajagopal.
+       (TAGS): Likewise.
+
+1999-06-18  Thomas Tanner  <address@hidden>
+
+       * automake.in (handle_ltlibraries): Check for -module in LDFLAGS,
+       too.
+
+1999-06-20 Mark Elbrecht <address@hidden>
+
+       * ylwrap: Handle filenames output by the DOS version of Bison.
+
+1999-06-20  Tom Tromey  <address@hidden>
+
+       * ylwrap: Be less strict when recognizing DOS paths.  From Mark
+       Elbrecht.
+
+1999-06-19  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_dist_worker): Remove redundant entries from
+       DIST_SUBDIRS.
+
+       * automake.in (handle_lib_objects_cond): Better error message when
+       unrecognized option passed in LDADD.
+
+1999-06-08  Alexandre Oliva  <address@hidden>
+
+       * configure.in (ACLOCAL, AUTOMAKE): Use our own scripts, with
+       appropriate --acdir and --amdir arguments.
+
+1999-06-07  Alexandre Oliva  <address@hidden>
+
+       * automake.in (dist_header): Avoid changing permissions of files
+       in the source tree, trying a complex `find/chmod' command before
+       falling back to plain chmod.
+       (handle_dist_worker): Do not create directories with mode 777, the
+       find above will take care of that.
+       * m4/init.m4: Set install_sh for find/chmod above.
+
+       * THANKS: Added Shuhei Amakawa.
+
+1999-06-07  Shuhei Amakawa <address@hidden>
+
+       * mans.am: Strip dirname from given filename.
+
+1999-06-07  Jim Meyering  <address@hidden>
+
+       * automake.in (handle_dist): Change emitted rules so that a failure
+       in `$(MAKE) distcheck-hook' propagates to the outer make.
+
+1999-05-27  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_single_transform_list): Replace AM_FLAG and
+       not FLAG in compilation rule.
+       (add_depend2): Likewise.
+
+       * ltlib.am (address@hidden@LTLIBRARIES): Pass INSTALL_STRIP_FLAG to
+       libtool.
+
+       * m4/dmalloc.m4: Updated dmalloc site information.
+
+1999-05-19  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_single_transform_list): Push object name
+       without extension onto lang_specific_files.  Fixes
+       specflags4.test.
+
+       * automake.in (handle_single_transform_list): Added missing
+       space.  Fixes specflags.test.
+
+1999-05-05  Tom Tromey  <address@hidden>
+
+       * automake.in: Disabled dependency tracking for Java.
+
+1999-05-04  Tom Tromey  <address@hidden>
+
+       * library.am (@LIBRARY@): Use $(@address@hidden).
+       * automake.in (handle_libraries): Recognize _AR variable.
+
+1999-04-30  Tom Tromey  <address@hidden>
+
+       * automake.in (finish_languages): Always use `-o $@' with
+       libtool.  Define ltcompile and ltlink at outermost scope in
+       function.
+       * libtool.am (.c.lo): Removed.
+
+       * automake.in (finish_languages): Put `.' before extension in
+       suffix list, `.obj' rule, and `.lo' rule.  Look at `-flags', not
+       `-flag'.  From Pavel Roskin.
+
+1999-04-28  Tom Tromey  <address@hidden>
+
+       * automake.in (finish_languages): Fixed scoping of ltcompile and
+       ltlink.  From Pavel Roskin.
+
+1999-04-27  Tom Tromey  <address@hidden>
+
+       * automake.in (read_main_am_file): Don't start macro definition
+       with backslash-newline.  Instead, append newline at the end if
+       required.
+
+       * automake.in (read_am_file): Insert a backslash before a trailing
+       newline.  Fixes pluseq8.test.
+
+       * automake.in (MACRO_PATTERN): Allow digits and `_' to start a
+       macro name.
+       (check_canonical_spelling): Don't insert `AM' before macro name
+       (reverts Alexandre's 1999-04-27 patch).
+       * automake.texi: Reverted documentation change for `AM' patch.
+
+       * automake.in (handle_lib_objects_cond): Prefer `$1' over `\1'.
+       Minor rewrite for clarity.
+       (check_canonical_spelling): Prefer `$1' over `\1'.
+
+       * depend2.am (@OBJ@): Renamed.  Use @SOURCE@, @address@hidden  Always
+       use `-o $@'.
+       (@LTOBJ@): Likewise.
+       * automake.in (handle_single_transform_list): Don't print rule if
+       doing dependency tracking and the file's language supports it.
+       (initialize_per_input): Initialize lang_specific_files.
+       (add_depend2): New function.
+       (handle_dependencies): Use it.
+
+       * automake.in (lang_ppf77_finish): Use lang_f77_finish.
+       ratfor compiler name is `RCOMPILE'.  ppf77 compiler name changed
+       to `PPF77COMPILE' to allow use of f77 and ppf77 in the same
+       directory.
+       (lang_ratfor_finish): Use lang_f77_finish.
+
+       * compile.am (NOTDEPEND.c.o): Removed.
+       (OBJEXT.c.obj): Likewise.
+       * automake.in: Added `flags' attribute to all relevant languages.
+       (handle_single_transform_list): Handle per-derived-object flags.
+       Changed interface and all callers.
+       (handle_built_sources): Don't call handle_single_transform_list.
+       Added `compile' and `compiler-name' attribute to all relevant
+       languages.
+       (finish_languages): Define compiler variables here.
+       (lang_cxx_finish): Don't call define_compiler_variable.  Don't
+       define flag variable or .o rules.  Don't add to @suffixes.
+       (lang_f77_finish): Likewise.
+       (lang_ppf77_finish): Likewise.
+       (lang_objc_finish): Likewise.
+       (lang_java_finish): Likewise.
+       (finish_languages): Define flag variable here.
+       Added `output-arg' attribute to all relevant languages.
+       (finish_languages): Define `.o' rules here.
+       (finish_languages): Put extension on @suffixes.
+       (get_object_extension): Don't transform NOTDEPEND or MINUSO.
+
+1999-04-27  Alexandre Oliva  <address@hidden>
+
+       * automake.in (initialize_global_constants): Invoke gzip for
+       dist-shar just like in plain dist, i.e., pass it GZIP_ENV and -c.
+
+       * automake.in (initialize_global_constants): Remove zip file
+       before re-creating it.
+       Reported by Bob Friesenhahn <address@hidden>
+
+       * texinfos.am (uninstall-info): Look for info file in srcdir, just
+       like in install-info-am.
+       Reported by Tudor Hulubei <address@hidden>
+
+       * automake.in (handle_lib_objects_cond): \Q doesn't work either.
+       Let's use the good ol' substitution, then.
+       Reported by Russ Allbery <address@hidden>
+
+       * automake.in (check_canonical_spelling): Insert AM before names
+       starting with non-letters.
+
+       * automake.texi: Document it.
+
+1999-04-26  Alexandre Oliva  <address@hidden>
+
+       * automake.in (handle_lib_objects_cond): Do not use quotemeta, it
+       doesn't work on perl4.  Maybe \Q and \E do.
+
+1999-04-24  Tom Tromey  <address@hidden>
+
+       * automake.in: Treat `.zip' and `.jar' files as Java.
+
+       * automake.in (generate_makefile): Define `subdir' after reading
+       .am file.
+       (read_main_am_file): Give programming error if variable defined
+       before invocation.
+
+1999-04-22  Tom Tromey  <address@hidden>
+
+       * automake.in (generate_makefile): Define `subdir' variable.
+       (handle_dist): Don't define `subdir'.
+
+       * automake.in (handle_texinfo): Change numbering scheme for
+       stamp-vti files, to avoid problems with DOS.
+       From Michel de Ruiter.
+
+       * automake.texi: Don't mention AM_FUNC_MKTIME.
+       * aclocal.in (obsolete_macros): Mention AM_FUNC_MKTIME.
+       * automake.in (scan_one_configure_file): Recognize
+       AC_FUNC_MKTIME, not AM_FUNC_MKTIME.
+       (obsolete_macros): Mention AM_FUNC_MKTIME.
+       * m4/Makefile.am (m4data_DATA): Removed mktime.m4.
+       * m4/mktime.m4: Removed.
+
+1999-04-20  Tom Tromey  <address@hidden>
+
+       * automake.texi (Top level): Don't recommend substing SUBDIRS.
+
+1999-04-20  Brian Ford <address@hidden>
+
+       * scripts.am: Change else if's to elif.
+
+1999-04-20  Alexandre Oliva  <address@hidden>
+
+       * automake.in (handle_lib_objects_cond): Only require the source
+       of a LIBOBJ if it's not in BUILT_SOURCES.
+       Reported by Erez Zadok.
+
+1999-04-19  Tom Tromey  <address@hidden>
+
+       * automake.in: Treat `.class' files as Java source.
+       (lang_java_finish): Handle `.class' files.
+
+1999-04-18  Alexandre Oliva  <address@hidden>
+
+       * m4/lispdir.m4: Match only `/(share|lib)/x?emacs/site-lisp/*$'.
+
+       * m4/lispdir.m4: Do not override lispdir if it's already defined.
+       Run some emacs-lisp to find out the site-lisp directory, but
+       relocate it into prefix.
+
+1999-04-17  Paul Eggert  <address@hidden>
+
+       * m4/mktime.m4 (bigtime_test, main): Move alarm from
+       bigtime_test to main, since Solaris 7 (64-bit) mktime loops
+       even outside of bigtime_test.  Use a time limit of 60 seconds
+       for the whole test, not 10 seconds per iteration.
+
+1999-04-17  Erez Zadok  <address@hidden>
+
+       * automake.in: Create stamps for headers in appropriate
+       directories, even if the input file lives in a different place.
+       * remake-hdr.am: Likewise.
+
+1999-04-16  Tom Tromey  <address@hidden>
+
+       From Brian Ford:
+       * progs.am (address@hidden@PROGRAMS, address@hidden@PROGRAMS):
+       Invoke `sed' only once per program.
+       * scripts.am (address@hidden@SCRIPTS, address@hidden@SCRIPTS):
+       Invoke `sed' only once per program.
+
+1999-04-13  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_subdirs): Make `install-recursive' phony.
+       From Michel de Ruiter.
+
+       * automake.in (handle_ltlibraries): Added missing `check'.
+
+1999-04-12  Tom Tromey  <address@hidden>
+
+       * ansi2knr.c: New version from Pavel Roskin (via ansi2knr.c
+       maintainer).
+
+1999-04-11  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_dist): Use AMTAR.
+       (initialize_global_constants): Likewise.
+       * m4/init.m4 (AM_INIT_AUTOMAKE): Use AMTAR, not TAR.
+
+       * automake.in (lang_sub_obj): New function.
+       (lang_cxx_rewrite): Use it.
+       (lang_asm_rewrite): Likewise.
+       (lang_objc_rewrite): Likewise.
+       (lang_cxx_finish): Add `-o $@' to all C++ rules.
+       (lang_asm_finish): Add `-o' to suffix rules when appropriate.
+       (lang_objc_finish): Add `-o $@' to all ObjC rules.
+       (lang_java_finish): Likewise.
+
+       * automake.in: Only register `asm' once.
+       (lang_asm_finish): Put assembly suffixes on @suffixes.
+
+       * libtool.am (.s.lo): Removed.
+       (.S.lo): Likewise.
+       * automake.in (lang_asm_finish): Handle libtool.
+
+       * libtool.am (.c.o): Always pass -c to libtool.
+
+       * automake.in (lang_yacc_rewrite): Handle sources in subdirs.
+       (lang_yaccxx_rewrite): Likewise.
+       (lang_lex_rewrite): Likewise.
+       (lang_lexxx_rewrite): Likewise.
+
+       Assembly code no longer included by default:
+       * compile.am (.s.o): Removed.
+       (.S.o): Likewise.
+       * automake.in: Register `asm' language.
+       (lang_asm_finish): Generate suffix rules for assembly.
+       (get_object_extension): Don't add `.s' or `.S' to suffix list.
+
+       * automake.in (get_object_extension): Substitute @MINUSO@ when
+       including compile.am.
+       * compile.am (.c.o): Added @address@hidden
+       (.c.obj): Likewise.
+
+       First cut at allowing objects in subdirectories:
+       * m4/Makefile.am (m4data_DATA): Added minuso.m4.
+       * Makefile.am (dist_script_DATA): Added compile.
+       * m4/minuso.m4: New file.
+       * automake.in (initialize_global_constants): Added compile to
+       common_files.
+       (seen_cc_c_o): New global.
+       (scan_one_configure_file): Set it when AM_PROG_CC_C_O seen.
+       (handle_options): Recognize `subdir-objects' option.
+       (lang_c_rewrite): Added directory argument.
+       (lang_yacc_rewrite): Likewise.
+       (lang_yaccxx_rewrite): Likewise.
+       (lang_lex_rewrite): Likewise.
+       (lang_lexxx_rewrite): Likewise.
+       (handle_single_transform_list): Pass directory to _rewrite
+       function.  Generate dependencies for dirstamp files for each .o;
+       it is just the rules we want to create once.
+       (lang_c_rewrite): Handle `subdir-objects' option.
+       (lang_c_rewrite): Require `compile' program.
+       * compile: New file.
+
+       * automake.in (initialize_per_input): Initialize %directory_map.
+       (handle_single_transform_list): Only create .dirstamp rules once
+       per directory.
+
+       * m4/gcj.m4 (AM_PROG_GCJ): Use AC_CHECK_PROGS, not AC_CHECK_PROG.
+
+       Fix for confh.test:
+       * automake.in (configure_input_files): New global.
+       (scan_configure): Set it.
+       (handle_configure): Use configure_input_files when determining
+       which subdirs have a Makefile.am.  Fixes confh.test.
+       (handle_configure): Only recognize acconfig.h in top srcdir.
+
+1999-04-10  Tom Tromey  <address@hidden>
+
+       * depend2.am (%.o): Use `$(*D)/$(*F)', not just `$(*F)'.
+       (%.lo): Likewise.
+
+       * automake.in (am_install_var): Remove redundancies from the
+       result.  Fixes test cond8.test.
+
+       * automake.in (handle_single_transform_list): Handle dependency
+       tracking when files are created in subdirs.  Error if object in
+       subdir has `..' component.
+
+       * automake.in (initialize_global_constants): Use $(TAR), not tar.
+
+       * automake.in (handle_ltlibraries): Allow check_LTLIBRARIES.
+
+       * automake.in (lang_yacc_finish): Added missing `&'.
+
+1999-04-10  Alexandre Oliva  <address@hidden>
+
+       * automake.in (handle_configure): Replace multiple occurrences of
+       @STAMP@ in the same line; completes the patch for remake-hdr.am
+       below.
+
+       * automake.in (handle_dependencies): Fix test for `autodep'
+       support.
+
+       * automake.in (handle_source_transform): Add a pfx to used_pfx
+       only if it's conditional or non-empty, to reduce the number of
+       empty variables.  Emit _OBJECS variable based on program name if
+       no SOURCES were explicitly specified.
+
+       * remake-hdr.am: Create the stamp file before the header file,
+       and just rename it after, so that the timestamps will be correct.
+       Reported by Marc Horowitz <address@hidden>
+
+       * automake.in (lang_yacc_finish): Generate and dist a `.h' for a
+       `.y' iff YFLAGS or AM_YFLAGS contain `-d'.
+       Reported by Jim Meyering <address@hidden>
+
+       * automake.in (lang_yacc_finish): $hname must not contain a `.'.
+
+1999-04-10  Tom Tromey  <address@hidden>
+
+       * Makefile.am (EXTRA_DIST): New macro.
+       * ChangeLog.1996, ChangeLog.1998: New files.
+
+1999-04-09  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_source_transform): Handle dist and nodist
+       prefixes.
+       (initialize_per_input): Initialize dist_sources.
+       (check_libobjs_sources): Handle dist and nodist prefixes.
+       (generate_makefile): Define DIST_SOURCES.
+       * dist-vars.am (DISTFILES): Reference DIST_SOURCES, not SOURCES.
+
+       * automake.texi (Macros): Mention AM_PROG_GCJ.
+       (Java Support): New node.
+       (Dist): Documented dist_ and nodist_ prefixes.
+
+       * m4/gcj.m4 (AM_PROG_GCJ): Renamed from AC_PROG_GCJ.
+
+       * automake.in (lang_java_finish): Generate .lo rule for `.java'
+       files, not `.gcj' files.
+
+       * m4/gcj.m4: New file.
+       * m4/Makefile.am (m4data_DATA): Added gcj.m4.
+
+       * automake.in: Register the `java' language.
+       (resolve_linker): Handle GCJLINK.
+       (lang_java_rewrite): New function.
+       (LANG_IGNORE, LANG_PROCESS, LANG_SUBDIR): New constants.
+       (lang_c_rewrite): Use new constants.
+       (lang_cxx_rewrite): Likewise.
+       (lang_header_rewrite): Likewise.
+       (lang_yacc_rewrite): Likewise.
+       (lang_yaccxx_rewrite): Likewise.
+       (lang_lex_rewrite): Likewise.
+       (lang_lexxx_rewrite): Likewise.
+       (lang_asm_rewrite): Likewise.
+       (lang_f77_rewrite): Likewise.
+       (lang_ppf77_rewrite): Likewise.
+       (lang_ratfor_rewrite): Likewise.
+       (lang_objc_rewrite): Likewise.
+       (handle_single_transform_list): Likewise.  Handle LANG_SUBDIR
+       return from rewrite function.
+       (lang_java_finish): New function.
+       (register_language): Changed interface and all calls.  Added
+       `autodep' settings to various languages.
+       (handle_dependencies): Use `autodep' property of language when
+       including dependency-tracking code.
+
+1999-04-07  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_texinfo): Indentation fixes.
+
+1999-04-07  Alexandre Oliva  <address@hidden>
+
+       * automake.in (value_to_list): Skip *only* trailing backslashes.
+
+1999-04-07  Pavel Roskin  <address@hidden>
+
+       * automake.in (value_to_list): Skip trailing backslashes.
+
+1999-04-07  Alexandre Oliva  <address@hidden>
+
+       * automake.in (handle_texinfo): Add texinfo.tex to config_aux_dir
+       when appropriate.
+       Reported by Per Cederqvist <address@hidden>
+       (handle_texinfo): Do not define texinfo_tex='.', use
+       '$(srcdir)/texinfo.tex' instead; the directory name will be
+       properly extracted.
+       (require_conf_file_with_line): Fixed typo.
+
+1999-04-03  Raja R Harinath  <address@hidden>
+
+       * automake.in (handle_tests): Test `dir=./' before `dir=', so that
+       we do not depend on PATH starting with `.'.
+
+1999-03-31  Tom Tromey  <address@hidden>
+
+       * automake.in (quote_cond_val): Quote \n.
+       (unquote_cond_val): Unquote \n.
+       (read_am_file): If line ends with `\', preserve it and add a
+       newline.
+       (read_main_am_file): In conditional case, put conditional text at
+       beginning of each generated line.
+
+1999-03-31  Alexandre Oliva  <address@hidden>
+
+       * automake.in (handle_tests): support XFAIL_TEST
+       * automake.texi: document it
+
+1999-04-12  Alexandre Oliva  <address@hidden>
+
+       * End of merge from trunk.
+
+1999-04-12  Alexandre Oliva  <address@hidden>
+
+       * automake.in (cmdline_use_dependencies): Reintroduce it.
+       (--ignore-deps): Set cmdline_use_dependencies again.
+       (handle_dependencies): If use_dependencies is not set, define
+       depcomp as empty.
+       (handle_configure): Pass --ignore-deps to generated Makefile.ins.
+       (scan_configure): Do not require depcomp when ignoring
+       dependencies.
+       (initialize_global_constants): Reintroduce --ignore-deps.
+
+1999-04-10  Alexandre Oliva  <address@hidden>
+
+       * depcomp: New file.
+       * Makefile.am (dist_script_DATA): Added depcomp.
+       * automake.in (cmdline_use_dependencies, omit_dependencies,
+       dependency_macros): Removed.
+       (--ignore-deps): Just ignore.
+       (handle_single_transform_list, dep_files): Named dependency files
+       as \$(DEPDIR)/$base.P$obj
+       (handle_lib_objects_cond): Likewise.
+       (generate_dependency_code): Do not check for AM_*_DEPENDENCIES.
+       (scan_one_configure_file): Likewise.
+       (handle_dependencies): Always enable auto-dep.  Define `depcomp'.
+       Ignore OMIT_DEPENDENCIES.
+       (handle_configure): Do not pass --ignore-deps.
+       (scan_configure): Require `depcomp'.
+       (initialize_global_constants): Make `depcomp' common.  Remove
+       `--ignore-deps' from usage.
+       (get_object_extension): No more NOTDEPEND in compile nor libtool.
+       * compile.am: Remove rules for .c.o and .c.obj
+       * depend.am (distclean-depend): Wipe out $(DEPDIR)
+       * depend2.am (@address@hidden): Define from config.status.
+       Use it and depcomp in suffix rules.
+       * libtool.m4: Likewise.
+       * m4/ccdepend.m4, m4/cxxdepend.m4: Removed.
+       * m4/depvars.m4, m4/objcdepend.m4: Likewise.
+       * m4/Makefile.am (dist_m4data_DATA): Likewise.
+       * m4/depout.m4 (AM_OUTPUT_DEPENDENCY_COMMANDS): Extract DEPDIR
+       from the Makefile and subst it in deps.  Report creation of deps
+       files (for now).  Replace $U with `_' and the empty string.  Write
+       a comment to each created file.
+       * m4/depend.m4 (AM_SET_DEPDIR): Select a valid deps dir name.
+       (AM_DEPENDENCIES): Accept CC, CXX and OBJC.  Just determine the
+       dependency mode and AC_SUBST [$1]DEPMODE.
+       * m4/init.m4 (AM_INIT_AUTOMAKE): Automatically call
+       AM_DEPENDENCIES for CC and CXX, if the corresponding AC_PROG
+       appears in configure.in, before or after AM_INIT_AUTOMAKE.
+
+1999-04-02  Raja R Harinath  <address@hidden>
+
+       * depout.m4: Fix sed expression for extracting `dirpart'.
+
+1999-03-29  Tom Tromey  <address@hidden>
+
+       * depend2.am (address@hidden@COMPILE): Use `!=' and not `-ne'.
+
+       * compile.am (.c.obj): Also disabled when dependency tracking
+       enabled.
+       * depend2.am (@address@hidden): New target.
+       * automake.in (get_object_extension): Added explanatory comment.
+       (generate_dependency_code): Handle $seen_objext.
+
+       * depend.am: Removed obsolete comment.
+       * depend2.am: Minor formatting fix.
+
+1999-03-28  Tom Tromey  <address@hidden>
+
+       * m4/Makefile.am (dist_m4data_DATA): Renamed, and added new
+       files.
+       (EXTRA_DIST): Removed.
+       * automake.in (dependency_macros): New global.
+       (scan_one_configure_file): Recognize new dependency tracking
+       macros, and define new resulting configure variables.
+       (generate_dependency_code): New sub.
+       (handle_dependencies): Use it.
+       * depend2.am (address@hidden@COMPILE): New macro.
+       (@address@hidden): Use it.
+       (@address@hidden): Likewise.
+       * m4/depvars.m4: New file.
+       * m4/objcdepend.m4: New file.
+       * m4/cxxdepend.m4: New file.
+       * m4/init.m4: Moved dependency handling code into depout.m4.
+       * m4/depout.m4: New file.
+       * m4/ccdepend.m4: New file.
+       * m4/depend.m4: New file.
+
+       * depend2.am (@address@hidden): Renamed to be old-style suffix pattern.
+       (@address@hidden): Likewise.
+       * m4/init.m4 (AM_INIT_AUTOMAKE): Don't create `.deps/.P'; it is no
+       longer needed.
+
+       * m4/init.m4 (AM_INIT_AUTOMAKE): Add code to config.status which
+       will create the required .P files for dependency tracking.
+       * automake.in (scan_dependency_file): Removed.
+       (handle_dependencies): Never call scan_dependency_file.
+       (generate_deps): Removed.
+       (parse_arguments): Don't recognize --generate-deps, --build-dir,
+       --srcdir-name, or --include-deps.  Do recognize --ignore-deps.
+       (srcdir_name): Removed.
+       (build_directory): Removed.
+       (initialize_global_constants): Changed $USAGE to reflect argument
+       parsing changes.
+       (handle_dist_worker): Never run automake in `dist' rule.
+       (handle_configure): Use --ignore-deps, not --include-deps.
+       * depend.am (DEPS_MAGIC): Removed.
+       (DEP_FILES): Unconditionally include.
+
+1999-03-27  Tom Tromey  <address@hidden>
+
+       * automake.in (saw_sources_p): Correctly count header extensions
+       seen.
+       (handle_headers): Fixed order of arguments to am_install_var.
+
+       * automake.in (am_install_var): Don't error if EXTRA_foo is
+       defined uselessly.
+
+       * scripts.am (address@hidden@SCRIPTS): Use NDIR when appropriate.
+       (address@hidden@SCRIPTS): Likewise.
+       * progs.am (address@hidden@PROGRAMS): Use NDIR when appropriate.
+       (address@hidden@PROGRAMS): Likewise.
+       * ltlib.am (address@hidden@LTLIBRARIES): Use NDIR when appropriate.
+       (address@hidden@LTLIBRARIES): Likewise.
+       * lisp.am (address@hidden@LISP): Use NDIR when appropriate.
+       (address@hidden@LISP): Likewise.
+       * libs.am (address@hidden@LIBRARIES): Use NDIR when appropriate.
+       (address@hidden@LIBRARIES): Likewise.
+       * java.am (address@hidden@JAVA): Use NDIR when appropriate.
+       (address@hidden@JAVA): Likewise.
+       * header.am (address@hidden@HEADERS): Use NDIR when appropriate.
+       (address@hidden@HEADERS): Likewise.
+       * data.am (address@hidden@DATA): Use NDIR when appropriate.
+       (address@hidden@DATA): Likewise.
+       * Makefile.in: Rebuilt.
+       * Makefile.am (dist_pkgdata_DATA): Renamed.
+       (EXTRA_DIST): Removed.
+       (install-data-hook): Added POST_INSTALL; print commands as they
+       are run; respect DESTDIR.
+       * dist-vars.am (DISTFILES): Removed $(HEADERS).
+       * automake.in (am_install_var): Accept `-candist' and
+       `-defaultdist' options.  Handle `dist_' and `nodist_' prefixes.
+       (am_primary_prefixes): Added can_dist argument.  Recognize `dist_'
+       and `nodist_' prefixes.
+       (handle_scripts): Pass -candist to am_install_var.
+       (handle_data): Pass -defaultdist to am_install_var.
+       (handle_headers): Likewise.
+       (handle_emacs_lisp): Pass -candist to am_install_var.
+       (handle_java): Pass -candist to am_install_var.
+
+1999-03-26  Tom Tromey  <address@hidden>
+
+       * m4/init.m4: Fixed typo when invoking SHELL.
+
+       * automake.in (lang_yacc_finish): Always use `.h' as suffix for
+       yacc header file.  From Ralf Corsepius.
+
+       * Makefile.in: Rebuilt.
+       * Makefile.am: Updated to reflect removal of TAR subst.
+       * automake.texi (Options): Document dist-bzip2.
+       * automake.in (TAR): Removed global.
+       (initialize_global_constants): Changed `dist' to use pipe with
+       gzip; work with non-GNU tar.
+       (handle_dist): Handle non-GNU tar.  Don't define TAR.
+       (initialize_global_constants): Added `dist-bzip2' entry.
+       (handle_options): Recognize dist-bzip2 option.
+       (handle_dist): Likewise.
+       * configure: Rebuilt.
+       * configure.in: Don't check for tar.
+       * m4/init.m4 (AM_INIT_AUTOMAKE): Check for `tar'.  Substitute
+       AMTARFLAGS.
+
+       * automake.in (am_install_var): Removed obsolete comment.
+
+       * texinfos.am (uninstall-info): Don't print loop but instead print
+       commands.  Simplified pre-uninstall loop.
+       * scripts.am (address@hidden@SCRIPTS): Don't print loop but
+       instead print commands.
+       * progs.am (address@hidden@PROGRAMS): Don't print loop but instead
+       print commands.
+       * ltlib.am (address@hidden@LTLIBRARIES): Don't print loop but
+       instead print commands.
+       * lisp.am (address@hidden@LISP): Strip subdir from file name.
+       (address@hidden@LISP): Likewise.  Also, don't print loop but
+       instead print commands.
+       * libs.am (address@hidden@LIBRARIES): Don't print loop but instead
+       print commands.
+       * java.am (address@hidden@JAVA): Don't print loop but instead
+       print commands.
+       * header.am (address@hidden@HEADERS): Strip subdir from file name.
+       (address@hidden@HEADERS): Likewise.  Also, don't print loop but
+       instead print commands.
+       * data.am (address@hidden@DATA): Strip subdir from file name.
+       (address@hidden@DATA): Likewise.  Also, don't print loop but
+       instead print commands.
+
+       * automake.in (handle_merge_targets): `install-strip' is a phony
+       target.  From Michel de Ruiter.
+
+1999-03-25  Tom Tromey  <address@hidden>
+
+       * automake.in (define_compiler_variable): Don't define variable
+       with trailing `_'.
+
+1999-03-25  Alexandre Oliva  <address@hidden>
+
+       * automake.in (LDADD): accept -dlopen and -dlpreopen here
+       * automake.texi: ditto
+
+1999-03-25  Alexandre Oliva  <address@hidden>
+
+       * automake.in (TESTS): make from Solaris 7/x86 loses if srcdir
+       is absolute and != objdir.  dir="" or "$(srcdir)/" fixes it
+
+1999-03-24  Tom Tromey  <address@hidden>
+
+       * automake.in (define_compiler_variable): New sub.
+       (finish_languages): Use it.
+       (lang_cxx_finish): Likewise.
+       (lang_f77_finish): Likewise.
+       (lang_ppf77_finish): Likewise.
+       (lang_ratfor_finish): Likewise.
+       (lang_objc_finish): Likewise.
+
+1999-03-23  Tom Tromey  <address@hidden>
+
+       * progs.am (address@hidden@PROGRAMS): Use `-e' instead of multiple
+       sed invocations.  From Elrond.
+       (address@hidden@PROGRAMS): Likewise.
+
+       * automake.in (lang_lex_finish): Rewrite `l', not `y', to `c'.
+       From Ralf Corsepius.
+
+1999-02-01  Thomas Tanner  <address@hidden>
+
+       * automake.in: accept both A(C|M)_PROG_LIBTOOL, print a
+       warning when AM_PROG_LIBTOOL was found
+       * automake.texi: renamed AM_PROG_LIBTOOL to AC_PROG_LIBTOOL
+
+1999-03-22  Tom Tromey  <address@hidden>
+
+       Made `+=' more robust.  Fixes pluseq6.test and pluseq7.test.
+       * automake.in (define_standard_variables): New sub.
+       (read_main_am_file): Use two passes to scan standard variables.
+       (read_am_file): Don't special-case configure variables with `+='.
+       (initialize_per_input): Initialize %var_was_plus_eq.
+       (read_am_file): Set var_was_plus_eq element correctly.
+       (define_variable): Give error if variable assigned with `+=' is
+       internally defined.
+       (initialize_per_input): Initialize %am_var_defs.
+       (file_contents_with_transform): Set element in %am_var_defs.
+       (read_am_file): Use %am_var_defs.
+
+1999-03-21  Tom Tromey  <address@hidden>
+
+       * automake.in (initialize_per_input): Initialize %object_map.
+       (handle_single_transform_list): Allow source files in
+       subdirectories.
+
+1999-03-21  Jim Meyering  <address@hidden>
+
+       * automake.in (handle_dist): Add missing newline after the first
+       semicolon.
+
+1999-03-11  Tom Tromey  <address@hidden>
+
+       * m4/error.m4, m4/mktime.m4, m4/obstack.m4, m4/regex.m4,
+       m4/strtod.m4: Use $ac_objext, not `.o'.  From Jim Meyering.
+
+       From Jim Meyering:
+       * automake.in (handle_dist): Add `;\' to end of distcheck-hook
+       line.
+       (scan_one_configure_file): In LIBOBJS, recognize `$ac_objext' as
+       legitimate ending.  Fixes libobj9.test.
+
+       From Ralf Corsepius.  Fixes lex3.test.
+       * automake.in (lang_yacc_finish): Include `.' in name pushed onto
+       maintainer-clean list.
+       (lang_lex_finish): Likewise.
+
+1999-03-02  Tom Tromey  <address@hidden>
+
+       * subdirs.am (maintainer-clean-recursive): Changed "&&" into "if"
+       construct to work around FreeBSD make/sh problem.  From Rich Wales.
+
+1999-03-01  Tom Tromey  <address@hidden>
+
+       Fixes from Pavel Roskin:
+       * automake.in (variable_conditions_sub): Sort list passed to
+       variable_conditions_permutations.
+       (variable_conditions): Sort list before returning.
+
+1999-02-27  Tom Tromey  <address@hidden>
+
+       * automake.in (lang_extensions): New sub.
+       (handle_dependencies): Use it.
+       (cxx_extensions): Removed.
+       (lang_cxx_finish): Use lang_extensions.
+       (f77_extensions): Removed.
+       (lang_f77_finish): Use lang_extensions.
+       (objc_extensions): Removed.
+       (lang_ppf77_finish): Put `.' before extension.  Fixes ext.test.
+       Report from Dave Morrison.
+       (lang_ratfor_finish): Likewise.
+
+1999-02-26  Tom Tromey  <address@hidden>
+
+       * automake.in (finish_languages): Added AM_LDFLAGS.
+       (lang_cxx_finish): Likewise.
+       (lang_f77_finish): Likewise.
+       (lang_ppf77_finish): Likewise.
+       (lang_ratfor_finish): Likewise.
+       (lang_objc_finish): Likewise.
+
+1999-02-11  Tom Tromey  <address@hidden>
+
+       * aclocal.in (obsolete_macros): Copied from automake.in.
+       (obsolete_rx): Use only keys of obsolete_macros.
+       (scan_configure): Report replacement macro for an obsolete macro.
+       * automake.in (obsolete_macros): Added ud_GNU_GETTEXT.
+
+       * automake.in (obsolete_macros): Corrected typo in AM_EXEEXT
+       entry.  Fixes obsolete2.test.
+
+       * automake.in (obsolete_macros): Use empty string to indicate no
+       substitution.
+       (scan_one_configure_file): Likewise.
+
+1999-02-07  Paul Eggert  <address@hidden>
+
+       * m4/ccstdc.m4 (AM_PROG_CC_STDC): Prefer -Ae to -Aa
+       -D_HPUX_SOURCE, since -Ae allows `long long' and this is
+       needed by some programs.
+
+1999-02-10  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_texinfo): Added `pgs' to list of
+       extensions.  From NISHIDA Keisuke.
+
+1999-02-04  Akim Demaille  <address@hidden>
+
+       * automake.in (handle_texinfo): remove texinfo.tex from
+       TEXINFODIR.
+
+1999-02-02  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_merge_targets): Use INSTALL_STRIP_FLAG.
+       * progs.am (address@hidden@PROGRAMS): Added INSTALL_STRIP_FLAG.
+       * header-vars.am (INSTALL_PROGRAM): Removed
+       AM_INSTALL_PROGRAM_FLAGS.
+       (INSTALL_STRIP_FLAG): New macro.
+
+       * automake.in: Handle `ypp' as C++ yacc source and `lpp' as C++
+       lex source.
+       (lang_yacc_finish): Likewise.
+       (lang_lex_finish): Likewise.
+
+1999-02-01  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_dist_worker): Correctly find find in $$d,
+       not $$.  From Bill Davidson.
+
+       * automake.in (finish_languages): Use "&", not "do".  From Pavel
+       Roskin.
+       (handle_single_transform_list): Likewise.
+
+1999-01-29  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_configure): Removed unused variable.  From
+       Pavel Roskin.
+
+       * ansi2knr.c: New version from L. Peter Deutsch.
+
+1999-01-22  Tom Tromey  <address@hidden>
+
+       * automake.in (require_file_internal): Correctly examine return
+       value of `system'.  From Andris Pavenis.  Fixes copy.test.
+
+       * m4/init.m4 (AM_INIT_AUTOMAKE): Require autoconf 2.13.
+
+       * automake.in (lang_ppf77_rewrite): New function.  From Jochen
+       Kuepper.  Fixes ppf77.test.
+       (lang_ratfor_rewrite): New function
+
+       * automake.in (handle_configure): Use `&' before sub calls (Perl 4
+       fix).  From Erez Zadok.
+
+1999-01-15  Tom Tromey  <address@hidden>
+
+       * configure.in: Version 1.4a (oops).
+
+       * configure.in: Updated version to 1.5a.
+
+1999-01-14  Tom Tromey  <address@hidden>
+
+       * automake.in (handle_configure): Compute $header_dir based on
+       $one_name, not $one_hdr.  Reported by Erez Zadok.  Fixes
+       confh2.test.
+       (handle_configure): Compute relative path to input header
+       correctly in all cases.
+
+       * automake.in (handle_tests): Avoid error messages from dejagnu
+       test rules.  From Karl Heuer.
+
+       * automake.in (handle_texinfo): Add `/' to end of $conf_dir.
+
+       * Makefile.am (AUTOMAKE_OPTIONS): Added `1.4'.
+
+       * texi-vers.am ($(srcdir)/address@hidden@): Find @TEXI@ in srcdir.
+       From Alexandre Oliva and Erez Zadok.
+
+       * automake.in (create): Renamed from touch.
+       (handle_configure): Use create, not touch.
+
+       * config.sub, config.guess: New versions from autoconf.
+
+       * mkinstalldirs: New version from autoconf.
+
+1999-01-12  Tom Tromey  <address@hidden>
+
+       * config.sub, config.guess, COPYING, texinfo.tex: New versions
+       from FSF.
+
+1999-01-11  Marcus G. Daniels  <address@hidden>
+
+       * automake.in (PATH_PATTERN): New variable:
+       (INCLUDE_PATTERN): Use it.  Ignore all include commands using
+       symbols besides $(top_srcdir) and $(srcdir).
+
+1999-01-11  Alexandre Oliva  <address@hidden>
+
+       * automake.in (handle_dist_worker): avoid failure in `make dist'
+       if last file is a builddir-only file
+
+1999-01-11  Alexandre Oliva  <address@hidden>
+
+       * missing (autoheader): `s' was missing from sed script; grr
+
+1999-01-11  Tom Tromey  <address@hidden>
+
+       * remake-hdr.am (@STAMP@): Reverted timestamp change.
+       ($(srcdir)/@address@hidden): Likewise.
+
+1999-01-10  Tom Tromey  <address@hidden>
+
+       * Makefile.am (scriptdir): New macro.
+       (script_DATA): Likewise.
+       (install-data-hook): Use them.
+       (EXTRA_DIST): Added script_DATA.
+       (installcheck-local): Use script_DATA.
+
+       * Makefile.am (pkgdata_DATA): Removed duplicate definition.
+
+1999-01-10  Alexandre Oliva  <address@hidden>
+
+       * missing (autoheader): accept multiple header files
+       (automake): simplify sed processing
+
+1999-01-10  Alexandre Oliva  <address@hidden>
+
+       * automake.in (handle_configure, stamp_dir): create only one stamp
+       file per header, instead of one in the top-level directory and one
+       in the directory that contains the header.
+
+1999-01-10  Tom Tromey  <address@hidden>
+
+       * automake.in (lang_objc_finish): Formatting fix.
+
+       * automake.in (objc_extensions): New sub.
+       (handle_dependencies): Only generate dependency-tracking code for
+       ObjC when ObjC source seen.
diff --git a/HACKING b/HACKING
index 6bde75a..8c4974a 100644
--- a/HACKING
+++ b/HACKING
@@ -34,6 +34,20 @@
 
 
 ================================================================
+= Naming
+
+* We've adopted the convention that internal AC_SUBSTs should be
+  named with a leading `am__', and internally generated targets should
+  be named with a leading `am--'.  This convention is very new
+  (as of Feb 7 2001) and so it isn't yet universally used.  But all
+  new code should use it.
+
+  We used to use `_am_' as the prefix for an internal AC_SUBST.
+  However, it turns out that NEWS-OS 4.2R complains if a Makefile
+  variable begins with `_'.  Yay for them.  I changed the target
+  naming convention just to be safe.
+
+================================================================
 = Editing `.am' files
 
 * Always use $(...) and not ${...}
@@ -45,13 +59,21 @@
 
 * Never use basename or dirname.  Instead use sed
 
+* If you run `cd' within back-quotes, make sure you set `CDPATH=:',
+  otherwise the directory name may be printed, depending on CDPATH.
+
+* For install and uninstall rules, if a loop is required, it should be
+  silent.  Then the body of the loop itself should print each
+  "important" command it runs.  The printed commands should be preceded
+  by a single space.
+
 
 ================================================================
 = Editing automake.in and aclocal.in
 
 * Follow existing indentation style.
 
-* Use only Perl 4 constructs
+* Perl 5 is now OK.
 
 
 ================================================================
@@ -67,6 +89,7 @@
 
 * Fetch new versions of the files that are maintained by the FSF.
   Commit.  Unfortunately you need an FSF account to do this.
+  (You can also use `make fetch', but that is still woefully incomplete.)
 
 * Update NEWS.  For an alpha release, update README-alpha.
 
diff --git a/Makefile.am b/Makefile.am
index 3c336b3..ca90339 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,50 +1,23 @@
 ## Process this file with automake to create Makefile.in
 
-AUTOMAKE_OPTIONS = gnits 1.4
-MAINT_CHARSET = latin1
+AUTOMAKE_OPTIONS = 1.4 dist-bzip2
 
 ## We need `.' in SUBDIRS because we want `check' to build `.' before
 ## tests.
-SUBDIRS = . m4 tests
+SUBDIRS = . m4 lib tests
 
 bin_SCRIPTS = automake aclocal
 info_TEXINFOS = automake.texi
 
-amfiles = clean-hdr.am clean-kr.am clean.am comp-vars.am compile.am \
-data-clean.am data.am dejagnu.am depend.am depend2.am dist-vars.am \
-footer.am header-vars.am header.am java-clean.am java.am kr-extra.am \
-library.am libs-clean.am libs.am libtool.am lisp-clean.am lisp.am \
-ltlib-clean.am ltlib.am ltlibrary.am mans-vars.am mans.am multilib.am \
-program.am progs-clean.am progs.am remake-hdr.am remake.am scripts.am \
-subdirs.am tags-clean.am tags.am texi-vers.am texinfos.am
 
-pkgdata_DATA = COPYING INSTALL texinfo.tex ansi2knr.c ansi2knr.1 $(amfiles)
-
-## These must all be executable when installed.  However, if we use
-## _SCRIPTS, then the program transform will be applied, which is not
-## what we want.  So we make them executable by hand.
-scriptdir = $(pkgdatadir)
-script_DATA = config.guess config.sub install-sh mdate-sh missing \
-mkinstalldirs elisp-comp ylwrap acinstall
-
-install-data-hook:
-       @for prog in $(script_DATA); do \
-         chmod +x $(scriptdir)/$$prog; \
-       done
-
-EXTRA_DIST = acinstall $(pkgdata_DATA) $(script_DATA)
+TAGS_FILES = automake.in aclocal.in
 
 # The following requires a fixed version of the Emacs 19.30 etags.
-ETAGS_ARGS = automake.in aclocal.in --lang=none \
- --regex='/address@hidden \t]+\([^,]+\)/\1/' automake.texi
-TAGS_DEPENDENCIES = automake.in aclocal.in automake.texi
+ETAGS_ARGS = --lang=none \
+ --regex='/address@hidden \t]+\([^,]+\)/\1/' $(srcdir)/automake.texi
+TAGS_DEPENDENCIES = automake.texi
 
-## `test -x' is not portable.  So we use Perl instead.  If Perl
-## doesn't exist, then this test is meaningless anyway.
-installcheck-local:
-       for file in $(script_DATA); do \
-         $(PERL) -e "exit ! -x '$(pkgdatadir)/$$file';" || exit 1; \
-       done
+EXTRA_DIST = ChangeLog.1996 ChangeLog.1998 ChangeLog.2000
 
 ################################################################
 ##
@@ -52,57 +25,92 @@ installcheck-local:
 ## to anybody else
 ##
 
-# Run the test suite using Perl 4.
-perl4-check: automake aclocal
-       @if $(SHELL) -c 'perl4.036 -v' > /dev/null 2>&1; then \
-         $(MAKE) PERL=perl4.036 check; \
-       else :; fi
-
 # Some simple checks, and then ordinary check.  These are only really
 # guaranteed to work on my machine.
 maintainer-check: automake aclocal
 ## This check avoids accidental configure substitutions in the source.
-## There are exactly 8 lines that should be modified.  This works out
-## to 24 lines of diffs.
-       @if test `diff $(srcdir)/automake.in automake | wc -l` -ne 24; then \
+## There are exactly 7 lines that should be modified.  This works out
+## to 22 lines of diffs.
+       @if test `diff $(srcdir)/automake.in automake | wc -l` -ne 28; then \
          echo "found too many diffs between automake.in and automake"; 1>&2; \
          diff -c $(srcdir)/automake.in automake; \
          exit 1; \
        fi
 ## Syntax check with default Perl (on my machine, Perl 5).
-       $(PERL) -c -w automake
-       $(PERL) -c -w aclocal
+       perllibdir=$(srcdir)/lib $(PERL) -c -w automake
+       perllibdir=$(srcdir)/lib $(PERL) -c -w aclocal
 ## expect no instances of '${...}'.  However, $${...} is ok, since that
 ## is a shell construct, not a Makefile construct.
 ## The backslash in `$${' is needed for some versions of bash.
-       @if test `fgrep '\$${' $(srcdir)/[a-z]*.am | fgrep -v '$$$$' | wc -l` 
-ne 0; then \
-         echo "found too many uses of '\$${'" 1>&2; \
+       @if fgrep '\$${' $(srcdir)/lib/am/[a-z]*.am | \
+              fgrep -v '$$$$'; then \
+         echo "Found too many uses of '\$${' in the lines above." 1>&2; \
+         exit 1;                               \
+       else :; fi
+## Make sure `rm' is called with `-f'.
+       @if egrep '\<rm ([^-]|\-[^f ]*\>)' \
+                 $(srcdir)/lib/am/[a-z]*.am $(srcdir)/tests/*.test | \
+             fgrep -v '##'; then \
+         echo "Suspicious 'rm' invocation." 1>&2; \
          exit 1;                               \
        else :; fi
 ## Make sure all invocations of mkinstalldirs are correct.
-       @if test `fgrep 'mkinstalldirs' $(srcdir)/[a-z]*.am | fgrep -v 
'$$(mkinstalldirs)' | wc -l` -ne 0; then \
-         echo "found incorrect use of mkinstalldirs" 1>&2; \
+       @if fgrep -n 'mkinstalldirs' $(srcdir)/lib/am/[a-z]*.am | \
+             fgrep -v '$$(mkinstalldirs)'; then \
+         echo "Found incorrect use of mkinstalldirs in the lines above" 1>&2; \
          exit 1; \
        else :; fi
-## Another syntax check, this time with Perl 4, if it exists.
-       @if $(SHELL) -c 'perl4.036 -v' >/dev/null 2>&1; then \
-         perl4.036 -c -w automake; \
-         perl4.036 -c -w aclocal; \
-       else :; fi
-## We never want to use "undef", only "delete".
-       @if grep undef $(srcdir)/automake.in > /dev/null 2>&1; then \
+## We never want to use "undef", only "delete", but for $/.
+       @if grep -n -w 'undef ' $(srcdir)/automake.in | \
+             fgrep -v 'undef $$/'; then \
          echo "Found undef in automake.in; use delete instead" 1>&2; \
          exit 1; \
        fi
 ## We never want split (/ /,...), only split (' ', ...).
-       @if fgrep 'split (/ /' $(srcdir)/automake.in > /dev/null 2>&1; then \
-         echo "Found bad split in automake.in" 1>&2; \
+       @if fgrep -n 'split (/ /' $(srcdir)/automake.in; then \
+         echo "Found bad split in the lines above." 1>&2; \
+         exit 1; \
+       fi
+## Look for cd within backquotes without CDPATH=:
+       @if grep -n '^[^#]*` *cd ' $(srcdir)/automake.in \
+             $(srcdir)/lib/am/*.am $(srcdir)/m4/*.m4; then \
+         echo "Consider setting CDPATH in the lines above" 1>&2; \
+         exit 1; \
+       fi
+## Using @_ in a scalar context is most probably a programming error.
+       @if grep -Hn '[^) ] *= address@hidden' $(srcdir)/automake.in; then \
+         echo "Using @_ in a scalar context in the lines above." 1>&2; \
+         exit 1; \
+       fi
+## Forbid using parens with `local' to ease counting.
+       @if grep '^[ \t]*local *(' $(srcdir)/automake.in; then \
+         echo "Don't use \`local' with parens: use several \`local' above." 
>&2; \
+         exit 1; \
+       fi
+## Up to now we manage to limit to 1 use of local.
+       @locals=`grep -c '^[ \t]*local [^*]' $(srcdir)/automake.in`; \
+       case $$locals in \
+         [0] ) \
+           echo "Wow, congrats!  There are no \`local' now!." >&2; \
+           echo "Please update Makefile.am (maintainer-check)." >&2; \
+           exit 1; \
+         ;; \
+         1 ) ;; \
+         * ) \
+           echo "Too many \`local'!  Are you sure you need $$locals of them?" 
>&2; \
+           echo "Up to now 1 was enough." >&2; \
+           exit 1; \
+         ;; \
+       esac
+## Don't let AMDEP_TRUE substitution appear in automake.in.
+       @if grep '@AMDEP''_TRUE@' $(srcdir)/automake.in; then \
+         echo "Don't put AMDEP_TRUE substitution in automake.in" 1>&2; \
          exit 1; \
        fi
 
 # Tag before making distribution.  Also, don't make a distribution if
 # checks fail.  Also, make sure the NEWS file is up-to-date.
-cvs-dist: maintainer-check perl4-check distcheck
+cvs-dist: maintainer-check distcheck
        @if sed 1q $(srcdir)/NEWS | grep -e "$(VERSION)" > /dev/null; then :; 
else \
          echo "NEWS not updated; not releasing" 1>&2; \
          exit 1;                               \
@@ -126,10 +134,32 @@ path-check: distdir
 ## of files on stdin, at least.
          find . -print | xargs pathchk -p); \
          status=$$?; \
-         rm -rf $(distdir); \
+         chmod -R a+w $(distdir) > /dev/null 2>&1; rm -rf $(distdir); \
          exit $$status
 
-## Just get the .am files into TAGS.  We don't really care too much if
-## any interesting tags show up.
-ETAGS_ARGS = $(amfiles)
-TAGS_DEPENDENCIES = $(ETAGS_ARGS)
+## Program to use to fetch files.
+WGET = wget
+
+## Files that we fetch and which we compare against.
+## FIXME should be a lot more here
+## Sadly we can't fetch ansi2knr.1 from the same location :-(
+FETCHFILES = config.guess config.sub ansi2knr.c
+
+## Fetch the latest versions of files we care about.
+fetch:
+       rm -rf Fetchdir > /dev/null 2>&1
+       mkdir Fetchdir
+## If a get fails then that is a problem.
+       (cd Fetchdir && \
+       $(WGET) ftp://ftp.gnu.org/gnu/config/config.guess; \
+       $(WGET) ftp://ftp.gnu.org/gnu/config/config.sub; \
+       $(WGET) ftp://ftp.cs.wisc.edu/ghost/ansi2knr.c)
+## Don't exit after test because we want to give as many errors as
+## possible.
+       @stat=0; for file in $(FETCHFILES); do \
+         if diff $(srcdir)/lib/$$file Fetchdir/$$file > /dev/null 2>&1; then 
:; \
+         else \
+           stat=1; \
+           echo "install Fetchdir/$$file into srcdir and commit"; \
+         fi; \
+       done; exit $$stat
diff --git a/Makefile.in b/Makefile.in
index 0ab35ee..76991db 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,6 +1,7 @@
-# Makefile.in generated automatically by automake 1.4 from Makefile.am
+# Makefile.in generated automatically by automake 1.5 from Makefile.am.
 
-# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+# Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -10,6 +11,7 @@
 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 # PARTICULAR PURPOSE.
 
address@hidden@
 
 SHELL = @SHELL@
 
@@ -31,13 +33,9 @@ infodir = @infodir@
 mandir = @mandir@
 includedir = @includedir@
 oldincludedir = /usr/include
-
-DESTDIR =
-
 pkgdatadir = $(datadir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
-
 top_builddir = .
 
 ACLOCAL = @ACLOCAL@
@@ -46,113 +44,124 @@ AUTOMAKE = @AUTOMAKE@
 AUTOHEADER = @AUTOHEADER@
 
 INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_HEADER = $(INSTALL_DATA)
 transform = @program_transform_name@
-
 NORMAL_INSTALL = :
 PRE_INSTALL = :
 POST_INSTALL = :
 NORMAL_UNINSTALL = :
 PRE_UNINSTALL = :
 POST_UNINSTALL = :
-MAKEINFO = @MAKEINFO@
+AMTAR = @AMTAR@
+AWK = @AWK@
+DEPDIR = @DEPDIR@
+EXEEXT = @EXEEXT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PERL = @PERL@
-TAR = @TAR@
 VERSION = @VERSION@
+am__include = @am__include@
+am__quote = @am__quote@
+install_sh = @install_sh@
 
-AUTOMAKE_OPTIONS = gnits 1.4
-MAINT_CHARSET = latin1
+AUTOMAKE_OPTIONS = 1.4 dist-bzip2
 
-SUBDIRS = . m4 tests
+SUBDIRS = . m4 lib tests
 
 bin_SCRIPTS = automake aclocal
 info_TEXINFOS = automake.texi
 
-amfiles = clean-hdr.am clean-kr.am clean.am comp-vars.am compile.am 
data-clean.am data.am dejagnu.am depend.am depend2.am dist-vars.am footer.am 
header-vars.am header.am java-clean.am java.am kr-extra.am library.am 
libs-clean.am libs.am libtool.am lisp-clean.am lisp.am ltlib-clean.am ltlib.am 
ltlibrary.am mans-vars.am mans.am multilib.am program.am progs-clean.am 
progs.am remake-hdr.am remake.am scripts.am subdirs.am tags-clean.am tags.am 
texi-vers.am texinfos.am
-
+TAGS_FILES = automake.in aclocal.in
 
-pkgdata_DATA = COPYING INSTALL texinfo.tex ansi2knr.c ansi2knr.1 $(amfiles)
+# The following requires a fixed version of the Emacs 19.30 etags.
+ETAGS_ARGS = --lang=none \
+ --regex='/address@hidden \t]+\([^,]+\)/\1/' $(srcdir)/automake.texi
 
-scriptdir = $(pkgdatadir)
-script_DATA = config.guess config.sub install-sh mdate-sh missing 
mkinstalldirs elisp-comp ylwrap acinstall
+TAGS_DEPENDENCIES = automake.texi
 
+EXTRA_DIST = ChangeLog.1996 ChangeLog.1998 ChangeLog.2000
 
-EXTRA_DIST = acinstall $(pkgdata_DATA) $(script_DATA)
+WGET = wget
 
-ETAGS_ARGS = $(amfiles)
-TAGS_DEPENDENCIES = $(ETAGS_ARGS)
+FETCHFILES = config.guess config.sub ansi2knr.c
+subdir = .
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_CLEAN_FILES =  automake aclocal
-SCRIPTS =  $(bin_SCRIPTS)
+mkinstalldirs = $(SHELL) $(top_srcdir)/lib/mkinstalldirs
+CONFIG_CLEAN_FILES = automake aclocal
+SCRIPTS = $(bin_SCRIPTS)
 
-TEXI2DVI = texi2dvi
+DIST_SOURCES =
+TEXINFO_TEX = $(top_srcdir)/lib/texinfo.tex
 INFO_DEPS = automake.info
 DVIS = automake.dvi
 TEXINFOS = automake.texi
-DATA =  $(pkgdata_DATA) $(script_DATA)
-
-DIST_COMMON =  README AUTHORS COPYING ChangeLog INSTALL Makefile.am \
-Makefile.in NEWS THANKS TODO aclocal.in aclocal.m4 ansi2knr.1 \
-ansi2knr.c automake.in config.guess config.sub configure configure.in \
-elisp-comp install-sh mdate-sh missing mkinstalldirs stamp-vti \
-texinfo.tex version.texi ylwrap
-
 
-DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+RECURSIVE_TARGETS = info-recursive dvi-recursive install-info-recursive \
+       uninstall-info-recursive all-recursive install-data-recursive \
+       install-exec-recursive installdirs-recursive install-recursive \
+       uninstall-recursive check-recursive installcheck-recursive
+DIST_COMMON = README AUTHORS COPYING ChangeLog INSTALL Makefile.am \
+       Makefile.in NEWS THANKS TODO aclocal.in aclocal.m4 automake.in \
+       configure configure.in install-sh mdate-sh missing \
+       mkinstalldirs stamp-vti version.texi
+DIST_SUBDIRS = $(SUBDIRS)
+all: all-recursive
 
-GZIP_ENV = --best
-all: all-redirect
 .SUFFIXES:
-.SUFFIXES: .dvi .info .ps .texi .texinfo .txi
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
-       cd $(top_srcdir) && $(AUTOMAKE) --gnits Makefile
-
-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
-       cd $(top_builddir) \
-         && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-$(ACLOCAL_M4):  configure.in 
-       cd $(srcdir) && $(ACLOCAL)
-
-config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+.SUFFIXES: .dvi .info .ps .texi
+$(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.in $(ACLOCAL_M4)
+       cd $(top_srcdir) && \
+         $(AUTOMAKE) --gnu  Makefile
+Makefile:  $(srcdir)/Makefile.in  $(top_builddir)/config.status
+       cd $(top_builddir) && \
+         CONFIG_HEADERS= CONFIG_LINKS= \
+         CONFIG_FILES=$@ $(SHELL) ./config.status
+
+$(top_builddir)/config.status: $(srcdir)/configure 
$(CONFIG_STATUS_DEPENDENCIES)
        $(SHELL) ./config.status --recheck
-$(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) 
$(CONFIGURE_DEPENDENCIES)
+$(srcdir)/configure:  $(srcdir)/configure.in $(ACLOCAL_M4) 
$(CONFIGURE_DEPENDENCIES)
        cd $(srcdir) && $(AUTOCONF)
+
+$(ACLOCAL_M4):  configure.in 
+       cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
 automake: $(top_builddir)/config.status automake.in
-       cd $(top_builddir) && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) 
./config.status
+       cd $(top_builddir) && CONFIG_FILES=$@ CONFIG_HEADERS= CONFIG_LINKS= 
$(SHELL) ./config.status
 aclocal: $(top_builddir)/config.status aclocal.in
-       cd $(top_builddir) && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) 
./config.status
-
+       cd $(top_builddir) && CONFIG_FILES=$@ CONFIG_HEADERS= CONFIG_LINKS= 
$(SHELL) ./config.status
 install-binSCRIPTS: $(bin_SCRIPTS)
        @$(NORMAL_INSTALL)
        $(mkinstalldirs) $(DESTDIR)$(bindir)
        @list='$(bin_SCRIPTS)'; for p in $$list; do \
+         f="`echo $$p|sed '$(transform)'`"; \
          if test -f $$p; then \
-           echo " $(INSTALL_SCRIPT) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 
'$(transform)'`"; \
-           $(INSTALL_SCRIPT) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 
'$(transform)'`; \
-         else if test -f $(srcdir)/$$p; then \
-           echo " $(INSTALL_SCRIPT) $(srcdir)/$$p $(DESTDIR)$(bindir)/`echo 
$$p|sed '$(transform)'`"; \
-           $(INSTALL_SCRIPT) $(srcdir)/$$p $(DESTDIR)$(bindir)/`echo $$p|sed 
'$(transform)'`; \
-         else :; fi; fi; \
+           echo " $(INSTALL_SCRIPT) $$p $(DESTDIR)$(bindir)/$$f"; \
+           $(INSTALL_SCRIPT) $$p $(DESTDIR)$(bindir)/$$f; \
+         elif test -f $(srcdir)/$$p; then \
+           echo " $(INSTALL_SCRIPT) $(srcdir)/$$p $(DESTDIR)$(bindir)/$$f"; \
+           $(INSTALL_SCRIPT) $(srcdir)/$$p $(DESTDIR)$(bindir)/$$f; \
+         else :; fi; \
        done
 
 uninstall-binSCRIPTS:
        @$(NORMAL_UNINSTALL)
-       list='$(bin_SCRIPTS)'; for p in $$list; do \
-         rm -f $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`; \
+       @list='$(bin_SCRIPTS)'; for p in $$list; do \
+         f="`echo $$p|sed '$(transform)'`"; \
+         echo " rm -f $(DESTDIR)$(bindir)/$$f"; \
+         rm -f $(DESTDIR)$(bindir)/$$f; \
        done
 
-$(srcdir)/version.texi: stamp-vti
+$(srcdir)/version.texi:  $(srcdir)/stamp-vti
        @:
-
 $(srcdir)/stamp-vti: automake.texi $(top_srcdir)/configure.in
-       @echo "@set UPDATED `$(SHELL) $(srcdir)/mdate-sh 
$(srcdir)/automake.texi`" > vti.tmp
-       @echo "@set EDITION $(VERSION)" >> vti.tmp
-       @echo "@set VERSION $(VERSION)" >> vti.tmp
+       @(set `$(SHELL) $(top_srcdir)/lib/mdate-sh $(srcdir)/automake.texi`; \
+       echo "@set UPDATED $$1 $$2 $$3"; \
+       echo "@set UPDATED-MONTH $$2 $$3"; \
+       echo "@set EDITION $(VERSION)"; \
+       echo "@set VERSION $(VERSION)") > vti.tmp
        @cmp -s vti.tmp $(srcdir)/version.texi \
          || (echo "Updating $(srcdir)/version.texi"; \
              cp vti.tmp $(srcdir)/version.texi)
@@ -162,181 +171,86 @@ $(srcdir)/stamp-vti: automake.texi 
$(top_srcdir)/configure.in
 mostlyclean-vti:
        -rm -f vti.tmp
 
-clean-vti:
-
-distclean-vti:
-
 maintainer-clean-vti:
        -rm -f $(srcdir)/stamp-vti $(srcdir)/version.texi
 
-automake.info: automake.texi version.texi
-automake.dvi: automake.texi version.texi
-
-
-DVIPS = dvips
+automake.info: automake.texi $(srcdir)/version.texi
+automake.dvi: automake.texi $(srcdir)/version.texi
 
 .texi.info:
        @cd $(srcdir) && rm -f $@ address@hidden address@hidden
        cd $(srcdir) \
-         && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
+         && $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) \
+              `echo $< | sed 's,.*/,,'`
 
 .texi.dvi:
-       TEXINPUTS=.:$$TEXINPUTS \
-         MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
+       TEXINPUTS=$(top_srcdir)/lib:$$TEXINPUTS \
+       MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I 
$(srcdir)' \
+       $(TEXI2DVI) $<
 
 .texi:
        @cd $(srcdir) && rm -f $@ address@hidden address@hidden
        cd $(srcdir) \
-         && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
-
-.texinfo.info:
-       @cd $(srcdir) && rm -f $@ address@hidden address@hidden
-       cd $(srcdir) \
-         && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
+         && $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) \
+              `echo $< | sed 's,.*/,,'`
 
-.texinfo:
-       @cd $(srcdir) && rm -f $@ address@hidden address@hidden
-       cd $(srcdir) \
-         && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
-
-.texinfo.dvi:
-       TEXINPUTS=.:$$TEXINPUTS \
-         MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
-
-.txi.info:
-       @cd $(srcdir) && rm -f $@ address@hidden address@hidden
-       cd $(srcdir) \
-         && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
-
-.txi.dvi:
-       TEXINPUTS=.:$$TEXINPUTS \
-         MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
-
-.txi:
-       @cd $(srcdir) && rm -f $@ address@hidden address@hidden
-       cd $(srcdir) \
-         && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
+MAKEINFO = @MAKEINFO@
+TEXI2DVI = texi2dvi
+DVIPS = dvips
 .dvi.ps:
        $(DVIPS) $< -o $@
 
-install-info-am: $(INFO_DEPS)
-       @$(NORMAL_INSTALL)
-       $(mkinstalldirs) $(DESTDIR)$(infodir)
-       @list='$(INFO_DEPS)'; \
-       for file in $$list; do \
-         d=$(srcdir); \
-         for ifile in `cd $$d && echo $$file $$file-[0-9] $$file-[0-9][0-9]`; 
do \
-           if test -f $$d/$$ifile; then \
-             echo " $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile"; 
\
-             $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile; \
-           else : ; fi; \
-         done; \
-       done
-       @$(POST_INSTALL)
-       @if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i 
debian' >/dev/null 2>&1; then \
+uninstall-info-am:
+       $(PRE_UNINSTALL)
+       @if (install-info --version && \
+            install-info --version | fgrep -i -v debian) >/dev/null 2>&1; then 
\
          list='$(INFO_DEPS)'; \
          for file in $$list; do \
-           echo " install-info --info-dir=$(DESTDIR)$(infodir) 
$(DESTDIR)$(infodir)/$$file";\
-           install-info --info-dir=$(DESTDIR)$(infodir) 
$(DESTDIR)$(infodir)/$$file || :;\
+           echo " install-info --info-dir=$(DESTDIR)$(infodir) --remove 
$(DESTDIR)$(infodir)/$$file"; \
+           install-info --info-dir=$(DESTDIR)$(infodir) --remove 
$(DESTDIR)$(infodir)/$$file; \
          done; \
-       else : ; fi
-
-uninstall-info:
-       $(PRE_UNINSTALL)
-       @if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i 
debian' >/dev/null 2>&1; then \
-         ii=yes; \
-       else ii=; fi; \
-       list='$(INFO_DEPS)'; \
-       for file in $$list; do \
-         test -z "$ii" \
-           || install-info --info-dir=$(DESTDIR)$(infodir) --remove $$file; \
-       done
+       else :; fi
        @$(NORMAL_UNINSTALL)
-       list='$(INFO_DEPS)'; \
+       @list='$(INFO_DEPS)'; \
        for file in $$list; do \
-         (cd $(DESTDIR)$(infodir) && rm -f $$file $$file-[0-9] 
$$file-[0-9][0-9]); \
+         (if cd $(DESTDIR)$(infodir); then \
+            echo " rm -f $$file $$file-[0-9] $$file-[0-9][0-9])"; \
+            rm -f $$file $$file-[0-9] $$file-[0-9][0-9]; \
+          else :; fi); \
        done
 
 dist-info: $(INFO_DEPS)
        list='$(INFO_DEPS)'; \
        for base in $$list; do \
          d=$(srcdir); \
-         for file in `cd $$d && eval echo $$base*`; do \
+         for file in `CDPATH=: && cd $$d && eval echo $$base*`; do \
            test -f $(distdir)/$$file \
-           || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
            || cp -p $$d/$$file $(distdir)/$$file; \
          done; \
        done
 
 mostlyclean-aminfo:
-       -rm -f automake.aux automake.cp automake.cps automake.dvi automake.fn \
-         automake.fns automake.ky automake.kys automake.ps \
-         automake.log automake.pg automake.toc automake.tp \
-         automake.tps automake.vr automake.vrs automake.op automake.tr \
-         automake.cv automake.cn
-
-clean-aminfo:
-
-distclean-aminfo:
+       -rm -f automake.aux automake.cm automake.cp automake.cps automake.cv \
+         automake.dvi automake.fn automake.ky automake.log automake.op \
+         automake.ov automake.pg automake.ps automake.toc automake.tp \
+         automake.tr automake.vr automake.vrs
 
 maintainer-clean-aminfo:
-       cd $(srcdir) && for i in $(INFO_DEPS); do \
+       cd $(srcdir) && \
+       for i in $(INFO_DEPS); do \
          rm -f $$i; \
          if test "`echo $$i-[0-9]*`" != "$$i-[0-9]*"; then \
            rm -f $$i-[0-9]*; \
          fi; \
        done
 
-install-pkgdataDATA: $(pkgdata_DATA)
-       @$(NORMAL_INSTALL)
-       $(mkinstalldirs) $(DESTDIR)$(pkgdatadir)
-       @list='$(pkgdata_DATA)'; for p in $$list; do \
-         if test -f $(srcdir)/$$p; then \
-           echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(pkgdatadir)/$$p"; \
-           $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(pkgdatadir)/$$p; \
-         else if test -f $$p; then \
-           echo " $(INSTALL_DATA) $$p $(DESTDIR)$(pkgdatadir)/$$p"; \
-           $(INSTALL_DATA) $$p $(DESTDIR)$(pkgdatadir)/$$p; \
-         fi; fi; \
-       done
-
-uninstall-pkgdataDATA:
-       @$(NORMAL_UNINSTALL)
-       list='$(pkgdata_DATA)'; for p in $$list; do \
-         rm -f $(DESTDIR)$(pkgdatadir)/$$p; \
-       done
-
-install-scriptDATA: $(script_DATA)
-       @$(NORMAL_INSTALL)
-       $(mkinstalldirs) $(DESTDIR)$(scriptdir)
-       @list='$(script_DATA)'; for p in $$list; do \
-         if test -f $(srcdir)/$$p; then \
-           echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(scriptdir)/$$p"; \
-           $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(scriptdir)/$$p; \
-         else if test -f $$p; then \
-           echo " $(INSTALL_DATA) $$p $(DESTDIR)$(scriptdir)/$$p"; \
-           $(INSTALL_DATA) $$p $(DESTDIR)$(scriptdir)/$$p; \
-         fi; fi; \
-       done
-
-uninstall-scriptDATA:
-       @$(NORMAL_UNINSTALL)
-       list='$(script_DATA)'; for p in $$list; do \
-         rm -f $(DESTDIR)$(scriptdir)/$$p; \
-       done
-
 # This directory's subdirectories are mostly independent; you can cd
 # into them and run `make' without going through this Makefile.
 # To change the values of `make' variables: instead of editing Makefiles,
 # (1) if the variable is set in `config.status', edit `config.status'
 #     (which will cause the Makefiles to be regenerated when you run `make');
 # (2) otherwise, pass the desired values on the `make' command line.
-
address@hidden@
-
-all-recursive install-data-recursive install-exec-recursive \
-installdirs-recursive install-recursive uninstall-recursive  \
-check-recursive installcheck-recursive info-recursive dvi-recursive:
+$(RECURSIVE_TARGETS):
        @set fnord $(MAKEFLAGS); amf=$$2; \
        dot_seen=no; \
        target=`echo $@ | sed s/-recursive//`; \
@@ -359,11 +273,16 @@ mostlyclean-recursive clean-recursive distclean-recursive 
\
 maintainer-clean-recursive:
        @set fnord $(MAKEFLAGS); amf=$$2; \
        dot_seen=no; \
-       rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
-         rev="$$subdir $$rev"; \
-         test "$$subdir" = "." && dot_seen=yes; \
+       case "$@" in \
+         distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+         *) list='$(SUBDIRS)' ;; \
+       esac; \
+       rev=''; for subdir in $$list; do \
+         if test "$$subdir" = "."; then :; else \
+           rev="$$subdir $$rev"; \
+         fi; \
        done; \
-       test "$$dot_seen" = "no" && rev=". $$rev"; \
+       rev="$$rev ."; \
        target=`echo $@ | sed s/-recursive//`; \
        for subdir in $$rev; do \
          echo "Making $$target in $$subdir"; \
@@ -382,93 +301,66 @@ tags-recursive:
 
 tags: TAGS
 
-ID: $(HEADERS) $(SOURCES) $(LISP)
-       list='$(SOURCES) $(HEADERS)'; \
-       unique=`for i in $$list; do echo $$i; done | \
-         awk '    { files[$$0] = 1; } \
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+       list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '    { files[$$0] = 1; } \
               END { for (i in files) print i; }'`; \
-       here=`pwd` && cd $(srcdir) \
-         && mkid -f$$here/ID $$unique $(LISP)
+       mkid -fID $$unique $(LISP)
 
-TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) $(LISP)
+TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
        tags=; \
        here=`pwd`; \
        list='$(SUBDIRS)'; for subdir in $$list; do \
-   if test "$$subdir" = .; then :; else \
+         if test "$$subdir" = .; then :; else \
            test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
-   fi; \
+         fi; \
        done; \
-       list='$(SOURCES) $(HEADERS)'; \
-       unique=`for i in $$list; do echo $$i; done | \
-         awk '    { files[$$0] = 1; } \
+       list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '    { files[$$0] = 1; } \
               END { for (i in files) print i; }'`; \
        test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
-         || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o 
$$here/TAGS)
-
-mostlyclean-tags:
+         || etags $(ETAGS_ARGS) $$tags  $$unique $(LISP)
 
-clean-tags:
+GTAGS:
+       here=`CDPATH=: && cd $(top_builddir) && pwd` \
+         && cd $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) $$here
 
 distclean-tags:
-       -rm -f TAGS ID
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
 
-maintainer-clean-tags:
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 
+top_distdir = .
+# Avoid unsightly `./'.
 distdir = $(PACKAGE)-$(VERSION)
-top_distdir = $(distdir)
 
-# This target untars the dist file and tries a VPATH configuration.  Then
-# it guarantees that the distribution is self-contained by making another
-# tarfile.
-distcheck: dist
-       -rm -rf $(distdir)
-       GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz
-       mkdir $(distdir)/=build
-       mkdir $(distdir)/=inst
-       dc_install_base=`cd $(distdir)/=inst && pwd`; \
-       cd $(distdir)/=build \
-         && ../configure --srcdir=.. --prefix=$$dc_install_base \
-         && $(MAKE) $(AM_MAKEFLAGS) \
-         && $(MAKE) $(AM_MAKEFLAGS) dvi \
-         && $(MAKE) $(AM_MAKEFLAGS) check \
-         && $(MAKE) $(AM_MAKEFLAGS) install \
-         && $(MAKE) $(AM_MAKEFLAGS) installcheck \
-         && $(MAKE) $(AM_MAKEFLAGS) dist
-       -rm -rf $(distdir)
-       @banner="$(distdir).tar.gz is ready for distribution"; \
-       dashes=`echo "$$banner" | sed s/./=/g`; \
-       echo "$$dashes"; \
-       echo "$$banner"; \
-       echo "$$dashes"
-dist: distdir
-       -chmod -R a+r $(distdir)
-       GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
-       -rm -rf $(distdir)
-dist-all: distdir
-       -chmod -R a+r $(distdir)
-       GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
-       -rm -rf $(distdir)
+GZIP_ENV = --best
+
 distdir: $(DISTFILES)
-       @if sed 15q $(srcdir)/NEWS | fgrep -e "$(VERSION)" > /dev/null; then :; 
else \
-         echo "NEWS not updated; not releasing" 1>&2; \
-         exit 1; \
-       fi
-       -rm -rf $(distdir)
+       -chmod -R a+w $(distdir) >/dev/null 2>&1; rm -rf $(distdir)
        mkdir $(distdir)
-       -chmod 777 $(distdir)
-       here=`cd $(top_builddir) && pwd`; \
-       top_distdir=`cd $(distdir) && pwd`; \
-       distdir=`cd $(distdir) && pwd`; \
-       cd $(top_srcdir) \
-         && $(AUTOMAKE) --include-deps --build-dir=$$here 
--srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnits Makefile
+       $(mkinstalldirs) $(distdir)/.
        @for file in $(DISTFILES); do \
-         d=$(srcdir); \
+         if test -f $$file; then d=.; else d=$(srcdir); fi; \
+         dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+         if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+           $(mkinstalldirs) "$(distdir)/$$dir"; \
+         fi; \
          if test -d $$d/$$file; then \
-           cp -pr $$/$$file $(distdir)/$$file; \
+           cp -pR $$d/$$file $(distdir) \
+           || exit 1; \
          else \
            test -f $(distdir)/$$file \
-           || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
-           || cp -p $$d/$$file $(distdir)/$$file || :; \
+           || cp -p $$d/$$file $(distdir)/$$file \
+           || exit 1; \
          fi; \
        done
        for subdir in $(SUBDIRS); do \
@@ -476,149 +368,248 @@ distdir: $(DISTFILES)
            test -d $(distdir)/$$subdir \
            || mkdir $(distdir)/$$subdir \
            || exit 1; \
-           chmod 777 $(distdir)/$$subdir; \
-           (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(distdir) 
distdir=../$(distdir)/$$subdir distdir) \
+           (cd $$subdir && \
+             $(MAKE) $(AM_MAKEFLAGS) \
+               top_distdir="$(top_distdir)" \
+               distdir=../$(distdir)/$$subdir \
+               distdir) \
              || exit 1; \
          fi; \
        done
-       $(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" 
distdir="$(distdir)" dist-info
-info-am: $(INFO_DEPS)
-info: info-recursive
-dvi-am: $(DVIS)
-dvi: dvi-recursive
+       $(MAKE) $(AM_MAKEFLAGS) \
+         top_distdir="${top_distdir}" distdir="$(distdir)" \
+         dist-info
+       -find "$(distdir)" -type d ! -perm -755 \
+               -exec chmod u+rwx,go+rx {} \; -o \
+         ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
+         ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
+         ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} 
\; \
+       || chmod -R a+r $(distdir)
+dist: distdir
+       $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+       -chmod -R a+w $(distdir) >/dev/null 2>&1; rm -rf $(distdir)
+
+dist-bzip2: distdir
+       $(AMTAR) chof - $(distdir) | bzip2 -9 -c >$(distdir).tar.bz2
+       -chmod -R a+w $(distdir) >/dev/null 2>&1; rm -rf $(distdir)
+
+# This target untars the dist file and tries a VPATH configuration.  Then
+# it guarantees that the distribution is self-contained by making another
+# tarfile.
+distcheck: dist
+       -chmod -R a+w $(distdir) > /dev/null 2>&1; rm -rf $(distdir)
+       GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf -
+       chmod -R a-w $(distdir); chmod a+w $(distdir)
+       mkdir $(distdir)/=build
+       mkdir $(distdir)/=inst
+       chmod a-w $(distdir)
+       dc_install_base=`CDPATH=: && cd $(distdir)/=inst && pwd` \
+         && cd $(distdir)/=build \
+         && ../configure --srcdir=.. --prefix=$$dc_install_base \
+         && $(MAKE) $(AM_MAKEFLAGS) \
+         && $(MAKE) $(AM_MAKEFLAGS) dvi \
+         && $(MAKE) $(AM_MAKEFLAGS) check \
+         && $(MAKE) $(AM_MAKEFLAGS) install \
+         && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+         && $(MAKE) $(AM_MAKEFLAGS) uninstall \
+         && (test `find $$dc_install_base -type f -print | wc -l` -le 1 \
+            || (echo "Error: files left after uninstall" 1>&2; \
+                exit 1) ) \
+         && $(MAKE) $(AM_MAKEFLAGS) dist \
+         && $(MAKE) $(AM_MAKEFLAGS) distclean \
+         && rm -f $(distdir).tar.gz \
+         && (test `find . -type f -print | wc -l` -eq 0 \
+            || (echo "Error: files left after distclean" 1>&2; \
+                exit 1) )
+       -chmod -R a+w $(distdir) > /dev/null 2>&1; rm -rf $(distdir)
+       @echo "$(distdir).tar.gz is ready for distribution" | \
+         sed 'h;s/./=/g;p;x;p;x'
 check-am: all-am
 check: check-recursive
-installcheck-am: installcheck-local
-installcheck: installcheck-recursive
-install-exec-am: install-binSCRIPTS
-install-exec: install-exec-recursive
+all-am: Makefile $(INFO_DEPS) $(SCRIPTS)
+installdirs: installdirs-recursive
+installdirs-am:
+       $(mkinstalldirs) $(DESTDIR)$(bindir) $(DESTDIR)$(infodir)
 
-install-data-am: install-info-am install-pkgdataDATA install-scriptDATA
-       @$(NORMAL_INSTALL)
-       $(MAKE) $(AM_MAKEFLAGS) install-data-hook
+install: install-recursive
+install-exec: install-exec-recursive
 install-data: install-data-recursive
+uninstall: uninstall-recursive
 
 install-am: all-am
        @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-install: install-recursive
-uninstall-am: uninstall-binSCRIPTS uninstall-info uninstall-pkgdataDATA \
-               uninstall-scriptDATA
-uninstall: uninstall-recursive
-all-am: Makefile $(INFO_DEPS) $(SCRIPTS) $(DATA)
-all-redirect: all-recursive
-install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
-installdirs: installdirs-recursive
-installdirs-am:
-       $(mkinstalldirs)  $(DESTDIR)$(bindir) $(DESTDIR)$(infodir) \
-               $(DESTDIR)$(pkgdatadir) $(DESTDIR)$(scriptdir)
-
 
+installcheck: installcheck-recursive
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
 mostlyclean-generic:
 
 clean-generic:
 
 distclean-generic:
-       -rm -f Makefile $(CONFIG_CLEAN_FILES)
-       -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+       -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
 
 maintainer-clean-generic:
-mostlyclean-am:  mostlyclean-vti mostlyclean-aminfo mostlyclean-tags \
-               mostlyclean-generic
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
 
-mostlyclean: mostlyclean-recursive
+clean-am: clean-generic mostlyclean-am
 
-clean-am:  clean-vti clean-aminfo clean-tags clean-generic \
-               mostlyclean-am
+dist-all: distdir
+       $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+       $(AMTAR) chof - $(distdir) | bzip2 -9 -c >$(distdir).tar.bz2
+       -chmod -R a+w $(distdir) >/dev/null 2>&1; rm -rf $(distdir)
+distclean: distclean-recursive
+       -rm -f config.status config.cache config.log
+distclean-am: clean-am distclean-generic distclean-tags
 
-clean: clean-recursive
+dvi: dvi-recursive
 
-distclean-am:  distclean-vti distclean-aminfo distclean-tags \
-               distclean-generic clean-am
+dvi-am: $(DVIS)
 
-distclean: distclean-recursive
-       -rm -f config.status
+info: info-recursive
 
-maintainer-clean-am:  maintainer-clean-vti maintainer-clean-aminfo \
-               maintainer-clean-tags maintainer-clean-generic \
-               distclean-am
-       @echo "This command is intended for maintainers to use;"
-       @echo "it deletes files that may require special tools to rebuild."
+info-am: $(INFO_DEPS)
 
-maintainer-clean: maintainer-clean-recursive
-       -rm -f config.status
-
-.PHONY: uninstall-binSCRIPTS install-binSCRIPTS mostlyclean-vti \
-distclean-vti clean-vti maintainer-clean-vti install-info-am \
-uninstall-info mostlyclean-aminfo distclean-aminfo clean-aminfo \
-maintainer-clean-aminfo uninstall-pkgdataDATA install-pkgdataDATA \
-uninstall-scriptDATA install-scriptDATA install-data-recursive \
-uninstall-data-recursive install-exec-recursive \
-uninstall-exec-recursive installdirs-recursive uninstalldirs-recursive \
-all-recursive check-recursive installcheck-recursive info-recursive \
-dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \
-maintainer-clean-recursive tags tags-recursive mostlyclean-tags \
-distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
-dvi-am dvi check check-am installcheck-local installcheck-am \
-installcheck install-exec-am install-exec install-data-am install-data \
-install-am install uninstall-am uninstall all-redirect all-am all \
-installdirs-am installdirs mostlyclean-generic distclean-generic \
-clean-generic maintainer-clean-generic clean mostlyclean distclean \
-maintainer-clean
-
-
-install-data-hook:
-       @for prog in $(script_DATA); do \
-         chmod +x $(scriptdir)/$$prog; \
-       done
+install-data-am: install-info-am
+
+install-exec-am: install-binSCRIPTS
+
+install-info: install-info-recursive
 
-installcheck-local:
-       for file in $(script_DATA); do \
-         $(PERL) -e "exit ! -x '$(pkgdatadir)/$$file';" || exit 1; \
+install-info-am: $(INFO_DEPS)
+       @$(NORMAL_INSTALL)
+       $(mkinstalldirs) $(DESTDIR)$(infodir)
+       @list='$(INFO_DEPS)'; \
+       for file in $$list; do \
+         d=$(srcdir); \
+         for ifile in `CDPATH=: && cd $$d && echo $$file $$file-[0-9] 
$$file-[0-9][0-9]`; do \
+           if test -f $$d/$$ifile; then \
+             echo " $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile"; 
\
+             $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile; \
+           else : ; fi; \
+         done; \
        done
+       @$(POST_INSTALL)
+       @if (install-info --version && \
+            install-info --version | fgrep -i -v debian) >/dev/null 2>&1; then 
\
+         list='$(INFO_DEPS)'; \
+         for file in $$list; do \
+           echo " install-info --info-dir=$(DESTDIR)$(infodir) 
$(DESTDIR)$(infodir)/$$file";\
+           install-info --info-dir=$(DESTDIR)$(infodir) 
$(DESTDIR)$(infodir)/$$file || :;\
+         done; \
+       else : ; fi
+install-man:
 
-################################################################
+installcheck-am:
 
-# Run the test suite using Perl 4.
-perl4-check: automake aclocal
-       @if $(SHELL) -c 'perl4.036 -v' > /dev/null 2>&1; then \
-         $(MAKE) PERL=perl4.036 check; \
-       else :; fi
+maintainer-clean: maintainer-clean-recursive
+
+maintainer-clean-am: distclean-am maintainer-clean-aminfo \
+       maintainer-clean-generic maintainer-clean-vti
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-aminfo mostlyclean-generic mostlyclean-vti
+
+uninstall-am: uninstall-binSCRIPTS uninstall-info-am
+
+uninstall-info: uninstall-info-recursive
+
+.PHONY: $(RECURSIVE_TARGETS) GTAGS all all-am check check-am clean \
+       clean-generic clean-recursive dist dist-all dist-bzip2 \
+       dist-info distcheck distclean distclean-generic \
+       distclean-recursive distclean-tags distdir dvi dvi-am \
+       dvi-recursive info info-am info-recursive install install-am \
+       install-binSCRIPTS install-data install-data-am \
+       install-data-recursive install-exec install-exec-am \
+       install-exec-recursive install-info install-info-am \
+       install-info-recursive install-man install-recursive \
+       install-strip installcheck installcheck-am installdirs \
+       installdirs-am installdirs-recursive maintainer-clean \
+       maintainer-clean-aminfo maintainer-clean-generic \
+       maintainer-clean-recursive maintainer-clean-vti mostlyclean \
+       mostlyclean-aminfo mostlyclean-generic mostlyclean-recursive \
+       mostlyclean-vti tags tags-recursive uninstall uninstall-am \
+       uninstall-binSCRIPTS uninstall-info-am uninstall-info-recursive \
+       uninstall-recursive
+
+
+################################################################
 
 # Some simple checks, and then ordinary check.  These are only really
 # guaranteed to work on my machine.
 maintainer-check: automake aclocal
-       @if test `diff $(srcdir)/automake.in automake | wc -l` -ne 24; then \
+       @if test `diff $(srcdir)/automake.in automake | wc -l` -ne 28; then \
          echo "found too many diffs between automake.in and automake"; 1>&2; \
          diff -c $(srcdir)/automake.in automake; \
          exit 1; \
        fi
-       $(PERL) -c -w automake
-       $(PERL) -c -w aclocal
-       @if test `fgrep '\$${' $(srcdir)/[a-z]*.am | fgrep -v '$$$$' | wc -l` 
-ne 0; then \
-         echo "found too many uses of '\$${'" 1>&2; \
+       perllibdir=$(srcdir)/lib $(PERL) -c -w automake
+       perllibdir=$(srcdir)/lib $(PERL) -c -w aclocal
+       @if fgrep '\$${' $(srcdir)/lib/am/[a-z]*.am | \
+              fgrep -v '$$$$'; then \
+         echo "Found too many uses of '\$${' in the lines above." 1>&2; \
          exit 1;                               \
        else :; fi
-       @if test `fgrep 'mkinstalldirs' $(srcdir)/[a-z]*.am | fgrep -v 
'$$(mkinstalldirs)' | wc -l` -ne 0; then \
-         echo "found incorrect use of mkinstalldirs" 1>&2; \
-         exit 1; \
+       @if egrep '\<rm ([^-]|\-[^f ]*\>)' \
+                 $(srcdir)/lib/am/[a-z]*.am $(srcdir)/tests/*.test | \
+             fgrep -v '##'; then \
+         echo "Suspicious 'rm' invocation." 1>&2; \
+         exit 1;                               \
        else :; fi
-       @if $(SHELL) -c 'perl4.036 -v' >/dev/null 2>&1; then \
-         perl4.036 -c -w automake; \
-         perl4.036 -c -w aclocal; \
+       @if fgrep -n 'mkinstalldirs' $(srcdir)/lib/am/[a-z]*.am | \
+             fgrep -v '$$(mkinstalldirs)'; then \
+         echo "Found incorrect use of mkinstalldirs in the lines above" 1>&2; \
+         exit 1; \
        else :; fi
-       @if grep undef $(srcdir)/automake.in > /dev/null 2>&1; then \
+       @if grep -n -w 'undef ' $(srcdir)/automake.in | \
+             fgrep -v 'undef $$/'; then \
          echo "Found undef in automake.in; use delete instead" 1>&2; \
          exit 1; \
        fi
-       @if fgrep 'split (/ /' $(srcdir)/automake.in > /dev/null 2>&1; then \
-         echo "Found bad split in automake.in" 1>&2; \
+       @if fgrep -n 'split (/ /' $(srcdir)/automake.in; then \
+         echo "Found bad split in the lines above." 1>&2; \
+         exit 1; \
+       fi
+       @if grep -n '^[^#]*` *cd ' $(srcdir)/automake.in \
+             $(srcdir)/lib/am/*.am $(srcdir)/m4/*.m4; then \
+         echo "Consider setting CDPATH in the lines above" 1>&2; \
+         exit 1; \
+       fi
+       @if grep -Hn '[^) ] *= address@hidden' $(srcdir)/automake.in; then \
+         echo "Using @_ in a scalar context in the lines above." 1>&2; \
+         exit 1; \
+       fi
+       @if grep '^[ \t]*local *(' $(srcdir)/automake.in; then \
+         echo "Don't use \`local' with parens: use several \`local' above." 
>&2; \
+         exit 1; \
+       fi
+       @locals=`grep -c '^[ \t]*local [^*]' $(srcdir)/automake.in`; \
+       case $$locals in \
+         [0] ) \
+           echo "Wow, congrats!  There are no \`local' now!." >&2; \
+           echo "Please update Makefile.am (maintainer-check)." >&2; \
+           exit 1; \
+         ;; \
+         1 ) ;; \
+         * ) \
+           echo "Too many \`local'!  Are you sure you need $$locals of them?" 
>&2; \
+           echo "Up to now 1 was enough." >&2; \
+           exit 1; \
+         ;; \
+       esac
+       @if grep '@AMDEP''_TRUE@' $(srcdir)/automake.in; then \
+         echo "Don't put AMDEP_TRUE substitution in automake.in" 1>&2; \
          exit 1; \
        fi
 
 # Tag before making distribution.  Also, don't make a distribution if
 # checks fail.  Also, make sure the NEWS file is up-to-date.
-cvs-dist: maintainer-check perl4-check distcheck
+cvs-dist: maintainer-check distcheck
        @if sed 1q $(srcdir)/NEWS | grep -e "$(VERSION)" > /dev/null; then :; 
else \
          echo "NEWS not updated; not releasing" 1>&2; \
          exit 1;                               \
@@ -639,9 +630,23 @@ path-check: distdir
        (cd $(distdir) && \
          find . -print | xargs pathchk -p); \
          status=$$?; \
-         rm -rf $(distdir); \
+         chmod -R a+w $(distdir) > /dev/null 2>&1; rm -rf $(distdir); \
          exit $$status
 
+fetch:
+       rm -rf Fetchdir > /dev/null 2>&1
+       mkdir Fetchdir
+       (cd Fetchdir && \
+       $(WGET) ftp://ftp.gnu.org/gnu/config/config.guess; \
+       $(WGET) ftp://ftp.gnu.org/gnu/config/config.sub; \
+       $(WGET) ftp://ftp.cs.wisc.edu/ghost/ansi2knr.c)
+       @stat=0; for file in $(FETCHFILES); do \
+         if diff $(srcdir)/lib/$$file Fetchdir/$$file > /dev/null 2>&1; then 
:; \
+         else \
+           stat=1; \
+           echo "install Fetchdir/$$file into srcdir and commit"; \
+         fi; \
+       done; exit $$stat
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/NEWS b/NEWS
index a2500a9..e0b47d7 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,27 @@
+New in 1.5.1a:
+* The distribution is tarred up with mode 755 now by the `dist*' targets.
+  This fixes a race condition where untrusted users could modify files
+  in the $(PACKAGE)-$(VERSION) distdir before packing if the toplevel
+  build directory was world-searchable.  This is CVE-2009-4029.
+
+New in 1.5:
+* Support for `configure.ac'.
+* Support for `else COND', `endif COND' and negated conditions `!COND'.
+* `make dist-all' is much faster.
+* Allows '@' AC_SUBSTs in macro names.
+* Faster AM_INIT_AUTOMAKE (requires update of `missing' script)
+* User-side dependency tracking.  Developers no longer need GNU make or gcc
+* Python support
+* Uses DIST_SUBDIRS in some situations when SUBDIRS is conditional
+* Most files are correctly handled if they appear in subdirs
+  For instance, a _DATA file can appear in a subdir
+* GNU tar is no longer required for `make dist'
+* Added support for `dist_' and `nodist_' prefixes
+* Added support for `nobase_' prefix
+* Compiled Java support
+* Support for per-executable and per-library compilation flags
+* Many bug fixes
+
 New in 1.4:
 * Added support for the Fortran 77 programming language.
 * Re-indexed the Automake Texinfo manual.
@@ -19,7 +43,7 @@ New in 1.3:
   Lex support in `missing', and new lex macro.  Update your missing script.
 * Built-in support for assembly
 * aclocal gives error if `AM_' macro not found
-* Passed YFLAGS, not YACCFLAGS, to yacc 
+* Passed YFLAGS, not YACCFLAGS, to yacc
 * AM_PROG_CC_STDC does not have to come before AC_PROG_CPP
 * Dependencies computed as a side effect of compilation
 * Preliminary support for Java
diff --git a/README b/README
index 513c47a..620b498 100644
--- a/README
+++ b/README
@@ -26,6 +26,6 @@ join.
 
 Automake has a page on the web.  See:
 
-       http://www.gnu.org/software/automake/
+       http://sources.redhat.com/automake/
 
 Mail suggestions and bug reports to address@hidden
diff --git a/README-alpha b/README-alpha
index 146f787..193a6dd 100644
--- a/README-alpha
+++ b/README-alpha
@@ -5,5 +5,5 @@ The documentation still needs more work.  Suggestions welcome.
 Patches even more welcome.
 
 Please send comments and problem reports about this test release to
address@hidden  This program will get better only if you report
-the problems you encounter.
address@hidden  This program will get better only if you report the
+problems you encounter.
diff --git a/THANKS b/THANKS
index f1eb16d..3252dbf 100644
--- a/THANKS
+++ b/THANKS
@@ -2,86 +2,157 @@ Automake was originally written by David J. MacKenzie 
<address@hidden>.
 It would not be what it is today without the invaluable help of these
 people:
 
-Akim Demaille          address@hidden
+Adam J. Richter                address@hidden
+Adrian Bunk            address@hidden
+Akim Demaille          address@hidden
+Alex Hornby            address@hidden
+Alexander Mai          address@hidden
 Alexander V. Lukyanov  address@hidden
-Alexandre Oliva                address@hidden
+Alexandre Duret-Lutz   address@hidden
+Alexey Mahotkin                address@hidden
 Andreas Schwab         address@hidden
 Andrew Cagney          address@hidden
+Andris Pavenis         address@hidden
 Anthony Green          address@hidden
 Assar Westerlund       address@hidden
+Axel Belinfante                address@hidden
 Bernard Urban          address@hidden
 Bill Currie            address@hidden
+Bill Davidson          address@hidden
 Bill Fenner            address@hidden
+Bob Proulx             address@hidden
+Brendan O'Dea          address@hidden
+Brian Ford             address@hidden
 Brian Jones            address@hidden
+Bruno Haible           address@hidden
 Chris Provenzano       address@hidden
+Christian Cornelssen   address@hidden
+danbp                  address@hidden
+Dave Brolley           address@hidden
+Dave Morrison          address@hidden
 David A. Swierczek     address@hidden
 David Zaroski          address@hidden
+Derek R. Price         address@hidden
 Dieter Baron           address@hidden
 Doug Evans             address@hidden
 Eleftherios Gkioulekas address@hidden
+Elrond                 address@hidden
 Erez Zadok             address@hidden
+Eric Magnien           address@hidden
 Erick Branderhorst     address@hidden
+Erik Lindahl           address@hidden
 François Pinard                address@hidden
 Fred Fish              address@hidden
+Ganesan Rajagopal      address@hidden
 Garrett D'Amore                address@hidden
 Garth Corral           address@hidden
 Gary V Vaughan         address@hidden
 Glenn Amerine          address@hidden
 Gord Matzigkeit                address@hidden
+Gordon Sadler          address@hidden
 Greg A. Woods          address@hidden
+Guido Draheim          address@hidden
 H.J. Lu                        address@hidden
 Harlan Stenn           address@hidden
 Henrik Frystyk Nielsen address@hidden
 Ian Lance Taylor       address@hidden
+Inoue                  address@hidden
+James Henstridge       address@hidden
 Janos Farkas           address@hidden
 Jason Molenda          address@hidden
 Jeff Bailey            address@hidden
 Jeff Garzik            address@hidden
+Jens Krüger            address@hidden
+Jerome Lovy            address@hidden
 Jerome Santini         address@hidden
 Jim Meyering           address@hidden
+Jochen Kuepper         address@hidden
 Joel N. Weber II       address@hidden
 Joerg-Martin Schwarz   address@hidden
 Johan Danielsson       address@hidden
+John Pierce            address@hidden
 John W. Coomes         address@hidden
 Josh MacDonald         address@hidden
 Joshua Cowan           address@hidden
+js pendry              address@hidden
 Juergen A. Erhard      address@hidden
 Karl Berry             address@hidden
 Karl Heuer             address@hidden
 Kevin Dalley           address@hidden
+Kevin Ryde             address@hidden
 Kevin Street           address@hidden
+Klaus Reichl           address@hidden
 L. Peter Deutsch       address@hidden
-Maciej W. Rozycki      address@hidden
+Larry Jones            address@hidden
+Lars Hecking           address@hidden
+Lars J. Aas            address@hidden
 Maciej Stachowiak      address@hidden
+Maciej W. Rozycki      address@hidden
+Manu Rouat             address@hidden
 Marcus G. Daniels      address@hidden
 Marius Vollmer         address@hidden
 Mark Eichin            address@hidden
+Mark Elbrecht          address@hidden
 Mark Galassi           address@hidden
 Markku Rossi           address@hidden
 Markus F.X.J. Oberhumer        address@hidden
 Matt Leach             address@hidden
 Matthew D. Langston    address@hidden
+Matthias Clasen                address@hidden
+Maxim Sinev            address@hidden
 Michael Brantley       address@hidden
+Michel de Ruiter       address@hidden
+Miles Bader            address@hidden
+Miodrag Vallat         address@hidden
+Morten Eriksen         address@hidden
 Motoyuki Kasahara      address@hidden
+Nicolas Joly           address@hidden
+Nicolas Thiery         address@hidden
+NISHIDA Keisuke                address@hidden
 Nelson H. F. Beebe     address@hidden
+Nicolas Joly           address@hidden
 Noah Friedman          address@hidden
 Nyul Laszlo            address@hidden
+OKUJI Yoshinori                address@hidden
+Olly Betts             address@hidden
+Paul Berrevoets                address@hidden
 Paul D. Smith          address@hidden
 Paul Eggert            address@hidden
+Paul Martinolich       address@hidden
+Pavel Roskin           address@hidden
 Per Bothner            address@hidden
 Per Cederqvist         address@hidden
+Per Oyvind Hvidsten    address@hidden
 Peter Mattis           address@hidden
+Peter Muir             address@hidden
 Petter Reinholdtsen    address@hidden
 Phil Nelson            address@hidden
+Rainer Orth            address@hidden
 Raja R Harinath                address@hidden
+Ralf Corsepius         address@hidden
 Ralph Schleicher       address@hidden
 Ramón García Fernández address@hidden
+Rich Wales             address@hidden
+Richard Boulton                address@hidden
 Rob Savoye             address@hidden
 Robert Bihlmeyer       address@hidden
+Robert Boehne          address@hidden
+Robert Collins         address@hidden
+Rusty Ballinger                address@hidden
 Seth Alves             address@hidden
+Shuhei Amakawa         <address@hidden>
+Shigio Yamaguchi       address@hidden
 Steve M. Robbins       address@hidden
+Sven Verdoolaege       address@hidden
 Tatu Ylonen            address@hidden
 The Crimson Binome     address@hidden
+thi                    address@hidden
+Thomas Gagne           address@hidden
 Thomas Morgan          address@hidden
+Thomas Tanner          address@hidden
 Tim Goodwin            address@hidden
+Tim Mooney             address@hidden
+Tim Van Holder         address@hidden
 Ulrich Drepper         address@hidden
+Vadim Zeitlin          address@hidden
+Werner Koch            address@hidden
diff --git a/TODO b/TODO
index e327c05..76fd5cb 100644
--- a/TODO
+++ b/TODO
@@ -1,40 +1,279 @@
+check should depend on all
+  from ben elliston
+
+refactor handle_source_transform and handle_single_transform_list
+we suffer combinatorial explosion here, but there's no need to
+we could transform source variables one at a time
+
+the new YFLAGS code doesn't correctly handle srcdir
+
+allow foo_NAME to rename an object (library or program)
+at build/install time
+
+remove _LTLIBRARIES and just use _LIBRARIES
+then use this for zip/jar as well
+
+consider `sub am_unique_error', which only prints a given error
+message once.  Use eg in lang_c_rewrite for ansi2knr error
+
+for 1.5
+investigate problems with conditionally defined libraries
+
+add an error if the user makefile.am violates our
+   namespace rules
+
+have 'make check' print tests which are skipped
+
+we need a document describing automake from the end user's point of view
+eg describe INSTALL_HEADER there, among other things
+
+* maintainer-clean
+
+Akim:
+> @@ -31,5 +31,9 @@
+>  DISTCLEAN   -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+>
+>  maintainer-clean-generic:
+> +## FIXME: shouldn't we really print these messages before running
+> +## the dependencies?
+> +    @echo "This command is intended for maintainers to use"
+> +    @echo "it deletes files that may require special tools to rebuild."
+>        -rm -f Makefile.in
+
+Tom:
+> I'd like to eventually fix the FIXME comment by having
+> maintainer-clean look like:
+>
+>     maintainer-clean:
+>        @echo ...
+>        $(MAKE) whatever
+>
+> We're left with the question of whether we should repeat them in every
+> subdir.
+
+*
+Alexandre Oliva:
+> Hmm...  Interesting.  It must have been a side effect of the enabling
+> of forced `relink' on GNU/Linux/x86.  Anyway, on platforms that
+> actually require relinking, this problem remains, and I see no way to
+> overcome it other than arranging for automake to install libraries
+> before executables, as you suggest.  This shouldn't be a big problem,
+> anyway.
+>
+> A bigger problem could show up if two libraries in the same directory,
+> one dependent on the other, are installed concurrently.  If relinking
+> is needed for the dependent library, we have a problem.  It appears to
+> me that user will have to live without `make -j install', in this
+> case.
+
+Alex Hornby
+> Here's an Automake patch and changelog entry allow make -j install on
+> such degenerate systems (and Linux with buggy libtool <g>)
+>
+> If you install to locations other that bin_ and lib_ then a larger fix
+> is necessary, but this should fix the 90% case.
+
+* think about how per-object flags should work.  in particular:
+  * how should they be specified?
+    using the object name is confusing when .lo/.obj in use
+    however, the object name provides a nice interaction with
+    per-exe flags
+  * how should they interact with per-executable flags?
+  [ this is probably a feature in search of a problem ]
+
+* cross-compilation support:
+  programs built and used by the build process need to be
+  built for CC_FOR_BUILD
+  introduce a new prefxi for this, e.g. `build_PROGRAMS'
+  [ we can do this in an automatic way I think.
+    unfortunately it isn't that useful until autoconf has support
+    for this sort of thing as well ]
+
+* distcheck should make sure that each file that uses _() is
+  listed in POTFILES.in
+  From Jim Meyering:
+    # Verify that all source files using _() are listed in po/POTFILES.in.
+    po-check:
+           grep -E -v '^(#|$$)' po/POTFILES.in | sort > address@hidden
+           grep -E -l '\b_\(' lib/*.c src/*.c | sort > address@hidden
+           diff -u address@hidden address@hidden
+           rm -f address@hidden address@hidden
+
+* one performance enhancement would be to have autoconf write
+  a single file containing all the macro assignments.
+  then read this file via `include'
+  unfortunately this can't be done because of conditionals
+  -- but it could be made to work if we also changed:
+    * automake to rewrite @FOO@ to $(FOO), and
+    * the implementation of conditionals to rely on some new
+      config.status magic
+
+* support prog_LIBS as override for LIBS
+
+* Scan configure.in using traces as autoheader does.
+  This will be much more reliable.
+
+* Test subdir-objects option with yacc, lex, ansi2knr
+  Our locking scheme won't prevent a parallel make from losing
+  if there are two `bar.o' files and the timing is just right
+  This only happens with parallel make and no-`-c -o' compiler,
+  so it probably isn't very important
+  `-c -o' when doing libtool
+  try to find a losing compiler and see if it really works.
+  (actually: hack config.cache and do it)
+
+* per-exe flags
+** We're using `$<' in explicit rules when using per-exe flags
+** per-exe flags don't work for CPPFLAGS/YFLAGS/LFLAGS.  Fix.
+** LIBOBJS shouldn't be used when there are per-exe flags (?)
+
+* Test nodist_SOURCES with lex, yacc, etc.
+
+* Support subdir-objects with fortran
+
+* Allow creation of Java .zip/.jar files in natural way
+  If you are building a compiled Java library, then the .zip/.jar
+  ought to be made automatically.
+
 * Run automake before libtool.  It will report an error but
   still won't put the file into the disty.  This is wrong.
   From Mark H Wilkinson <address@hidden>
 
+* CFLAGS only defined if C source seen
+  but really it should be a configure variable, shouldn't it?
+  There are other examples of this
+  [ moving to autoconf --trace ought to fix this ]
+
+* in gnu/gnits mode, give error if Makefile.am overrides a user
+  variable like CFLAGS.
+  [ this is low priority because the package author can always
+    circumvent our check by redefining in configure.in
+    plus it is probably better to encourage good behavior than to
+    punish bad ]
+
+* If we see `foo.o' in LIBOBJS, and we've seen AC_OBJEXT, then complain.
+  [ how will we know that?  it is better to handle this automatically
+    via an autoconf hook ]
+
+* examine possibility of using any character in a macro name
+  and rewriting names automatically.  this means we must rewrite
+  all references as well.
+  [ this is a 2.0-style feature ]
+
 * AM_CONFIG_HEADER might generate the wrong stamp file names
   when given multiple headers.  Write a test.
 
 * Currently don't correctly handle multiple inputs to a config header.
+  [ this should no matter in the future as acconfig.h and so on are
+    obsoleted by the AH series of macros.]
 
 * header stamp files still in wrong dirs.
   stamp-h.in must be in dir with h.in file
   stamp-h must be in dir with output file
 
+* conditionals and macros
+  Our current scheme cause combinatoric explosion.
+
+  In fact, to be honest, I no longer understand very well why we perform
+  such a closure.  I mean, as is, Automake transforms (this is
+  cond3.test)
+
+    | bin_PROGRAMS = targ
+    |
+    | if ONE
+    | SONE = one.c
+    | else
+    | SONE =
+    | endif
+    |
+    | if TWO
+    | STWO = two.c
+    | else
+    | STWO =
+    | endif
+    |
+    | if THREE
+    | STHREE = three.c
+    | else
+    | STHREE =
+    | endif
+    |
+    | targ_SOURCES = $(SONE) $(STWO) $(STHREE)
+
+  into
+
+    | @ONE_FALSE@@THREE_FALSE@@address@hidden = two.$(OBJEXT)
+    | @ONE_FALSE@@THREE_FALSE@@address@hidden =
+    | @ONE_FALSE@@THREE_TRUE@@address@hidden = two.$(OBJEXT) \
+    | @ONE_FALSE@@THREE_TRUE@@TWO_TRUE@ three.$(OBJEXT)
+    | @ONE_FALSE@@THREE_TRUE@@address@hidden = three.$(OBJEXT)
+    | @ONE_TRUE@@THREE_FALSE@@address@hidden = one.$(OBJEXT) \
+    | @ONE_TRUE@@THREE_FALSE@@TWO_TRUE@ two.$(OBJEXT)
+    | @ONE_TRUE@@THREE_FALSE@@address@hidden = one.$(OBJEXT)
+    | @ONE_TRUE@@THREE_TRUE@@address@hidden = one.$(OBJEXT) \
+    | @ONE_TRUE@@THREE_TRUE@@TWO_TRUE@ two.$(OBJEXT) three.$(OBJEXT)
+    | @ONE_TRUE@@THREE_TRUE@@address@hidden = one.$(OBJEXT) \
+    | @ONE_TRUE@@THREE_TRUE@@TWO_FALSE@ three.$(OBJEXT)
+
+  why don't we just output
+
+    | @address@hidden = one.$(OBJEXT)
+    | @address@hidden =
+    |
+    | @address@hidden = two.$(OBJEXT)
+    | @address@hidden =
+    |
+    | @address@hidden = three.$(OBJEXT)
+    | @address@hidden =
+    |
+    | am_targ_OBJECTS = $(am_SONE_OBJECTS) $(am_STWO_OBJECTS) 
$(am_STHREE_OBJECTS)
+
+  which means also, why do we look for the closure of PROGRAMS, instead
+  of just adding $(EXEEXT) to all its components and sub components
+  (i.e., inside sub vars such as $(SONE) above being a sub var of
+  targ_SOURCES)?
+
+
+  Aaaaaaaaaaah!  I think I know... Must be because of `+='.
+
+  Hm... No.  Indeed we transform
+
+    | FOO = foo
+    | if BAR
+    | FOO += BAR
+    | endif
+
+  into
+
+    | @address@hidden = foo bar
+    | @address@hidden = foo
+
+  but this seems good to me too?
+
+    | FOO = foo $(BAR_FOO)
+    | @address@hidden = bar
+    | @address@hidden =
+
+
 * foo=bar
   if cond
   foo += joe
   endif
-  ... this ought to work.  The fix is probably complicated
+  ... this ought to work.  The fix is probably complicated, but might
+  come for free when we rewrite the handling of conditionals.
 
 * `distcheck' and `dist' should depend on `all'
 
-* Document why putting @FOO@ in _SOURCES doesn't work.
-
 * Add code to generate foo-config script like gnome, gtk
 
-* right now automake sets `TAR' when automake is configured
-  this loses in some situations.
-  however, checking for it in every configure.in also seems lame.
-  probably should just give in on this; meanwhile people can
-  override TAR themselves.
-
 * `DEFS += foo' won't work.
   That's because DEFS is defined in header-vars.am, which is read
   after the user's Makefile.am.
   This will be a problem for any macro defined internally
-    [ fixing this will probabl fix the nasty `exeext redefines
+    [ fixing this will probably fix the nasty `exeext redefines
       foo_PROGRAMS' hack that is in there right now ]
+    [ we currently give an error when this occurs, so this is very low
+      priority ]
 
 * document user namespace for macro/target names
   adopt some conventions and use uniformly
@@ -52,113 +291,44 @@
   (maybe doesn't matter since people who even know about
   maintainer-clean already have a clue)
 
-* There are probably more bugs in variable_conditions_sub along
-  the lines of the one that caused cond4.test to fail.
-
-* give user more control over -I flags
-  in particular document a way to override the defaults
-
 * reintroduce AM_FUNC_FNMATCH which sets LIBOBJS
   Then have automake know about fnmatch.h.
     [ probably should wait for autoconf to get right functionality ]
 
-* Add a conditional for dependency tracking
-  (what to name it is the biggest problem here)
-  (because we want it to flag dist/no-dist -- not just deps)
-    [ this might not really be correctly doable.
-      instead we need a compile-time conditional for this
-      yuck ]
-
-* Allow per-object cflags:
-       bin_PROGRAMS = foo
-       foo_CFLAGS = -DFOO
-* At the same time, allow sources in subdirs:
-       foo_SOURCES = x/y.c
-  This requires `mkdir x' at build time
- [ both of these require per-file rules, and not pattern rules ]
- [ use user-written suffix rules to generate the per-file rules in
-   an automatic way -- this would be mucho cool ]
-
-* Allow for multiple translations of a texinfo file:
-       LL_info_TEXINFOS = ...
-  will put info files for language LL into $(infodir)/LL.
-
-* If you suppress an internal variable by specifying a variable
-  in a Makefile.am, but the variable is conditional, then automake
-  should generate the internal variable conditionally.
-  You have to scan the map of all conditions and fill in the holes here
-
-* Every program foo has FOOFLAGS right now.
-  It should also have AM_FOOFLAGS, which can be set in Makefile.am.
-DONE: but needs to be documented
-
-* Should be able to update files that would be installed with -a
-  (--force?)
-
 * "make diff" capability
   look at gcc's Makefile.in to see what to do
   or look at maint program
 
-* Karl wants to be able to set LIBS and LDFLAGS at build time, like CFLAGS
-  maybe we need something more general?
-
-* add $(srcdir)/ before some dependencies?
-
-* define LINK if a program is mentioned, even if no C sources appear
-
-* BUILT_SOURCES should not be distributed, even when they appear in
-  another _SOURCES line. [? or maybe just leave this up to the
-  to-be-defined generic distribution method ]
-  must completely revisit the entire BUILT_SOURCES idea
-
 * in --cygnus, clean-info not generated at top level
 
 * what if an element of a scanned variable looks like
        $(FOO).$(BAR)  ?
   or some other arbitrary thing?
   right now we try to cope, but not very well
+    [ this is only of theoretical interest for now ]
 
-* if `interlock' exists, that should be an error (?)
-  should also warn about using new ylwrap and not old one
-  only do this when looking for ylwrap
-
-** make sure every variable that is used is also defined
+* make sure every variable that is used is also defined
+    [ we don't really look at variable uses in detail.
+      2.0 thing ]
 
 * make sure `missing' defines are generated
-* if no AM_INIT_AUTOMAKE, then don't handle `missing' stuff.
-  Yuck!
+
 * missing should handle install -d and rmdir -p (for uninstall)
 
-* a couple ways to be smarter:
-  - notice when a .c file is a target somewhere, and auto-add it to
+* notice when a .c file is a target somewhere, and auto-add it to
     BUILT_SOURCES
-  - notice a target of the form `.x.y:' and assume it is a suffix rule
-
 
 * NORMAL_INSTALL / NORMAL_UNINSTALL -vs- recursive rules
   [ requires changes to the standard ]
 
-* cross-compilation support:
-  programs built and used by the build process need to be
-  built for CC_FOR_BUILD
-  introduce a new variable for this
-
-* if foo.y is a source, foo.h isn't auto-distributed?
-
 * copyrights on m4 files, aclocal output
 
-* is there a way to add a directory and then have "make" do all the
-  updating?  think.
-
-* put standards.texi into distribution
-
-
 * should not put texiname_TEXINFOS into distribution
   should rename this macro anyway, to foo_texi_DEPENDENCIES
 
 * *all* installed scripts should support --version, --help
 
-For now I guess I'll just have automake give an error if it encounters
+* For now I guess I'll just have automake give an error if it encounters
 non-C source in a libtool library specification.
 
 * must split $obj into two parts: one for libtool and one for
@@ -175,12 +345,7 @@ non-C source in a libtool library specification.
   strictness should only cover requirements
   You should be able to pick and choose options
 
-should clean up texinfos.am; one rule is repeated 3 times, but
-shouldn't be
-
-should always use perl -w
-
-rewrite in guile (RMS request)
+* rewrite in guile (RMS request)
 at the same time, consider adding a GUI
 could use the same parsing code for the GUI and the standalone version
 that means figuring out a better representation of internal state
@@ -192,8 +357,6 @@ still be able to have a Makefile.am in each directory 
somehow; this
 might make editing conceptually easier.
 
 * finish up TAGS work
-* `acinstall'
-* put parser.h into distribution if "yacc -d" is used
 
 * only remove libtool at top level?
 
@@ -248,22 +411,11 @@ Per> .class files from a list of .java source files.
 !! Must fix require_file stuff.  It is really gross, and I don't
    understand it any more.
 
-* error messages should print ``[info blah blah]'' command when a
-  certain part of the standards apply.  saw idea in message from
-  Craig Burley.  wouldn't it be really cool if compile-mode in Emacs
-  understood this convention, and you could click on such text to
-  go to the appropriate info page?  [ I think you can ]
-
 Jim's idea: should look for @setfilename and warn if filenames too long
 * guess split size
 
-** many requests for a way to omit a file from the distribution.
-   Should be done like `!foo' or `~foo' in _SOURCES, etc.
-   Such files should be removed explicitly after the copy step!
-   Doing this requires rewriting macros before generating Makefile.in.
-
 from joerg-martin schwarz:
- -- If Makefile.am contains $(CC), $(COMPILE), $(YLWRAP), .... 
+ -- If Makefile.am contains $(CC), $(COMPILE), $(YLWRAP), ....
     in an explicitly written rule,  you should emit the corresponding
     Makefile variables automatically.
 
@@ -292,19 +444,6 @@ should be able to determine what is built by looking at 
rules (and
 configure.in).  Then built man pages (eg) could automatically be
 omitted from the distribution.
 
-Idea from Joerg-Martin Schwarz: allow passing different -D flags to
-different compiles.  This can be done, but with the restriction that a
-.c cannot appear in 2 different "objects" (programs/libraries)
-compiled with different -D options (because -c and -o do not always
-work together and parallel makes must work).  This could be
-implemented by noticing whenever a ".o" target with no rules is being
-emitted, and adding the appropriate compilation rule as appropriate.
-This should work with targets from Makefile.am as well as from .P
-files, which means rewriting so that the Makefile.am contents aren't
-copied into the output immediately.
- [ this could be probably done more directly by examining the sources
-   as we scan Makefile.am ]
-
 Henrik Frystyk Nielsen says:
 Henrik> 4) Flags like --include-deps are lost when you make changes to
 Henrik> Makefile.am files and automake is run automatically. It would
@@ -345,18 +484,6 @@ Need way to say there are no suffixes in a Makefile 
(Franc,ois'
 Check to make sure various scripts are executable (IE when looking for
 them in a directory)
 
-Use recode in dist target when MAINT_CHARSET specified.  Read caveats
-in automake.in before doing this.  Note the same problem used to apply
-to the no-dependencies option; maybe it still should?  Note also that
-each Makefile.am must be rewritten at "make dist" time if
-MAINT_CHARSET and DIST_CHARSET are not identical.  NOTE: gettext must
-arrange for all .po files not to be recoded.  In the long term this
-might be a problem (consider when some systems use Unicode but the
-rest do not)
-  MAINT_CHARSET *must* be local to each Makefile.am, to enable
-       merged distributions.
-  DIST_CHARSET must be passed down to subdir makes during a "make dist"
-
 Handle dist-zoo.  Generally add more DOS support.  Maybe run "doschk"
 (why isn't this merged with "pathchk"?) when doing a dist.  Do
 whatever else François says here...
@@ -378,28 +505,28 @@ things to be removed.  This would be a lot nicer looking. 
 Note that
 the install targets probably should not be merged; it is sometimes
 useful to only install a small part.
 
-Clean up the output:
-* Order rules sensibly
-* Ensure every line has a purpose.  Omit unused stuff
-* Eliminate extraneous rules when possible (eg 'install-am' stuff)
-* Make sure vertical spacing is correct
+* Clean up the output:
+** Order rules sensibly
+** Ensure every line has a purpose.  Omit unused stuff
+** Eliminate extraneous rules when possible (eg 'install-am' stuff)
+** Make sure vertical spacing is correct
 Omit program transform vars from header if no program installed.  This
 is currently pretty hard to do.  (But with beautification code it
 would probably be easy)
 
-Lex, yacc support:
-* It would be nice to automatically support using bison's better features
+* Lex, yacc support:
+** It would be nice to automatically support using bison's better features
   to rename the output files.  This requires autoconf support
-* Consider supporting syntax from autoconf "derived:source", eg:
+** Consider supporting syntax from autoconf "derived:source", eg:
        y.tab.c:perly.y
   for yacc and lex source
-* what if you use flex and the option to avoid -lfl?
+** what if you use flex and the option to avoid -lfl?
   should support this?
 
-Multi-language support:
-* should have mapping of file extensions to languages
-* should automatically handle the linking issue (special-case C++)
-* must get compile rules for various languages; FORTRAN probably
+* Multi-language support:
+** should have mapping of file extensions to languages
+** should automatically handle the linking issue (special-case C++)
+** must get compile rules for various languages; FORTRAN probably
   most important unimplemented language
 This should be integrated in some way with Per's idea.
 Eg .f.o rules should be recognized & auto-handled in _SOURCES
@@ -536,14 +663,6 @@ Then automake can use -MD -MH -MT 'foo.o foo.lo' -MF 
.deps/...
 
 ================================================================
 
-Things to do for autoconf:
-
-* patch autoreconf to run automake and aclocal.  I've done this but it is
-  not really available.  It can't be made available until automake
-  is officially released
-
-================================================================
-
 Libraries:
 
 * Should support standalone library along with subdir library in same
@@ -614,19 +733,6 @@ could eliminate a common source of problems.
   [ the consensus on Gnits is that this isn't required.
     doubters can work around it anyway ]
 
-* make the auto-dep code crash if GNU make not in use?
-  (doesn't it already?)
-
-Looked at a program called 'ezmake', which seems to do something
-similar.  The only idea there that is possibly worth stealing is using
-globs in definitions.  Also has negations.  Eg in a directory with
-files a.c, b.c and c.c, the line:
-       foo_SOURCES = *.c ~c.c
-would be equivalent to:
-       foo_SOURCES = a.c b.c
-Is this worth implementing?
-  [ No... it is more reliable to spell everything out. ]
-
 Scan source directories and warn about missing files, eg .c/.h files
 that aren't mentioned?
   [ distcheck makes this less useful ]
@@ -634,3 +740,7 @@ that aren't mentioned?
 * quoting bugs
   - how to install file with a space in its name?
   [ don't bother with this -- make is just too losing ]
+
+Local Variables:
+mode: outline
+End:
diff --git a/acinstall b/acinstall
deleted file mode 100755
index edb8ddd..0000000
--- a/acinstall
+++ /dev/null
@@ -1,35 +0,0 @@
-#! /bin/sh
-
-# Install an aclocal-style M4 file.  A script is needed to do this
-# because we want to do serial-number checking; newer versions of
-# macro files should always be preferred.
-
-# Usage:
-#  acinstall file directory installprogram [install-args]...
-
-file="$1"
-dir="$2"
-shift
-shift
-
-localserial=`grep '^# serial ' $file | sed -e 's/^# serial 
\([0-9][0-9]*\).*$/\1/; q'`
-if test -z "$localserial"; then
-   echo "acinstall: no serial number in $file" 1>&2
-   exit 1
-fi
-
-# Maybe if the installed file has no serial number we should just
-# assume it is ancient.
-instserial=`grep '^# serial ' $dir/$file | sed -e 's/^# serial 
\([0-9][0-9]*\).*$/\1/; q'`
-if test -z "$instserial"; then
-   echo "acinstall: no serial number in $dir/$file" 1>&2
-   exit 1
-fi
-
-if test $localserial -lt $instserial; then
-   # Installed file is newer.
-   exit 0
-fi
-
-# Install the file.
-$* $file $dir/$file
diff --git a/aclocal.in b/aclocal.in
index 5ca383e..97c9eef 100644
--- a/aclocal.in
+++ b/aclocal.in
@@ -2,8 +2,8 @@
 # -*- perl -*-
 # @configure_input@
 
-# aclocal - create aclocal.m4 by scanning configure.in
-# Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
+# aclocal - create aclocal.m4 by scanning configure.ac
+# Copyright 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -25,7 +25,7 @@
 eval 'exec @PERL@ -S $0 ${1+"$@"}'
     if 0;
 
-# aclocal - scan configure.in and generate aclocal.m4.
+# aclocal - scan configure.ac and generate aclocal.m4.
 
 # Some constants.
 $VERSION = "@VERSION@";
@@ -39,6 +39,9 @@ $acdir = "@datadir@/aclocal";
 # Exit status.
 $exit_status = 0;
 
+# Name of the top autoconf input: `configure.ac' or `configure.in'.
+$configure_ac = '';
+
 # Text to output.
 $output = '';
 
@@ -58,41 +61,50 @@ $output_file = 'aclocal.m4';
 %file_contents = ();
 
 # How much to say.
-$verbosity = 0;
+$verbose = 0;
 
address@hidden =
+# Map from obsolete macros to hints for new macros.
+# If you change this, change the corresponding list in automake.in.
+# FIXME: should just put this into a single file.
+my %obsolete_macros =
     (
-     'AC_FEATURE_CTYPE',
-     'AC_FEATURE_ERRNO',
-     'AC_FEATURE_EXIT',
-     'AC_SYSTEM_HEADER',
-     'fp_C_PROTOTYPES',
-     'fp_FUNC_FNMATCH',
-     'fp_PROG_CC_STDC',
-     'fp_PROG_INSTALL',
-     'fp_WITH_DMALLOC',
-     'fp_WITH_REGEX',
-     'gm_PROG_LIBTOOL',
-     'jm_MAINTAINER_MODE',
-     'md_TYPE_PTRDIFF_T',
-     'ud_PATH_LISPDIR',
-     'ud_GNU_GETTEXT',
+     'AC_FEATURE_CTYPE'                => "use `AC_HEADER_STDC'",
+     'AC_FEATURE_ERRNO'                => "add `strerror' to 
`AC_REPLACE_FUNCS(...)'",
+     'AC_FEATURE_EXIT'         => '',
+     'AC_SYSTEM_HEADER'                => '',
+
+     # Note that we do not handle this one, because it is still run
+     # from AM_CONFIG_HEADER.  So we deal with it specially in
+     # &scan_autoconf_files.
+     # 'AC_CONFIG_HEADER'      => "use `AM_CONFIG_HEADER'",
+
+     'fp_C_PROTOTYPES'         => "use `AM_C_PROTOTYPES'",
+     'fp_PROG_CC_STDC'         => "use `AM_PROG_CC_STDC'",
+     'fp_PROG_INSTALL'         => "use `AC_PROG_INSTALL'",
+     'fp_WITH_DMALLOC'         => "use `AM_WITH_DMALLOC'",
+     'fp_WITH_REGEX'           => "use `AM_WITH_REGEX'",
+     'gm_PROG_LIBTOOL'         => "use `AM_PROG_LIBTOOL'",
+     'jm_MAINTAINER_MODE'      => "use `AM_MAINTAINER_MODE'",
+     'md_TYPE_PTRDIFF_T'       => "use `AM_TYPE_PTRDIFF_T'",
+     'ud_PATH_LISPDIR'         => "use `AM_PATH_LISPDIR'",
+     'ud_GNU_GETTEXT'          => "use `AM_GNU_GETTEXT'",
 
      # Now part of autoconf proper, under a different name.
-     'AM_FUNC_FNMATCH',
-     'AM_SANITY_CHECK_CC',
-     'AM_PROG_INSTALL',
-     'AM_EXEEXT',
-     'AM_CYGWIN32',
-     'AM_MINGW32',
+     'AM_FUNC_FNMATCH'         => "use `AC_FUNC_FNMATCH'",
+     'fp_FUNC_FNMATCH'         => "use `AC_FUNC_FNMATCH'",
+     'AM_SANITY_CHECK_CC'      => "automatically done by `AC_PROG_CC'",
+     'AM_PROG_INSTALL'         => "use `AC_PROG_INSTALL'",
+     'AM_EXEEXT'               => "use `AC_EXEEXT'",
+     'AM_CYGWIN32'             => "use `AC_CYGWIN'",
+     'AM_MINGW32'              => "use `AC_MINGW32'",
+     'AM_FUNC_MKTIME'          => "use `AC_FUNC_MKTIME'",
 
 # These aren't quite obsolete.
 #      'md_PATH_PROG',
-#      'ud_LC_MESSAGES',
-#      'ud_WITH_NLS'
      );
 
-$obsolete_rx = '(' . join ('|', @obsolete_macros) . ')';
+# Regexp to match the above macros.
+$obsolete_rx = '\b(' . join ('|', keys %obsolete_macros) . ')\b';
 
 # Matches a macro definition.
 $ac_defun_rx = "AC_DEFUN\\(\\[?([^],)\n]+)\\]?";
@@ -103,7 +115,7 @@ $ac_require_rx = "AC_REQUIRE\\(\\[?([^])]*)\\]?\\)";
 
 
 local (@dirlist) = &parse_arguments (@ARGV);
-&scan_m4_files ($acdir, @dirlist);
+&scan_m4_files (@dirlist);
 &scan_configure;
 if (! $exit_status)
 {
@@ -121,7 +133,9 @@ sub usage
     local ($status) = @_;
 
     print "Usage: aclocal [OPTIONS] ...\n\n";
-    print "Generate aclocal.m4 by scanning configure.in\n
+    print "\
+Generate `aclocal.m4' by scanning `configure.ac' or `configure.in'
+
   --acdir=DIR           directory holding config files
   --help                print this help, then exit
   -I DIR                add directory to search list for .m4 files
@@ -163,12 +177,12 @@ sub parse_arguments
        }
        elsif ($arglist[0] eq '--verbose')
        {
-           ++$verbosity;
+           ++$verbose;
        }
        elsif ($arglist[0] eq '--version')
        {
            print "aclocal (GNU $PACKAGE) $VERSION\n\n";
-           print "Copyright (C) 1999 Free Software Foundation, Inc.\n";
+           print "Copyright 1996, 1997, 1998, 1999, 2000, 2001 Free Software 
Foundation, Inc.\n";
            print "This is free software; see the source for copying 
conditions.  There is NO\n";
            print "warranty; not even for MERCHANTABILITY or FITNESS FOR A 
PARTICULAR PURPOSE.\n\n";
            print "Written by Tom Tromey <address@hidden>\n";
@@ -180,7 +194,7 @@ sub parse_arguments
        }
        else
        {
-           die "aclocal: unrecognized option -- \`$arglist[0]'\nTry \`aclocal 
--help' for more information.\n";
+           die "aclocal: unrecognized option -- `$arglist[0]'\nTry `aclocal 
--help' for more information.\n";
        }
 
        shift (@arglist);
@@ -192,6 +206,9 @@ sub parse_arguments
        exit 0;
     }
 
+    # Search our install directory last.
+    push (@dirlist, $acdir);
+
     return @dirlist;
 }
 
@@ -199,8 +216,18 @@ sub parse_arguments
 
 sub scan_configure
 {
-    open (CONFIGURE, "configure.in")
-       || die "aclocal: couldn't open \`configure.in': $!\n";
+    warn "aclocal: both `configure.ac' and `configure.in' present:"
+         . " ignoring `configure.in'\n"
+        if -f 'configure.ac' && -f 'configure.in';
+    $configure_ac = 'configure.in'
+        if -f 'configure.in';
+    $configure_ac = 'configure.ac'
+        if -f 'configure.ac';
+    die "aclocal: `configure.ac' or `configure.in' is required\n"
+        if !$configure_ac;
+
+    open (CONFIGURE, $configure_ac)
+       || die "aclocal: couldn't open `$configure_ac': $!\n";
 
     # Make sure we include acinclude.m4 if it exists.
     if (-f 'acinclude.m4')
@@ -216,18 +243,24 @@ sub scan_configure
 
        if (/$obsolete_rx/o)
        {
-           chop;
-           warn "aclocal: configure.in: $.: obsolete macro \`$_'\n";
+           local ($hint) = '';
+           if ($obsolete_macros{$1} ne '')
+           {
+               $hint = '; ' . $obsolete_macros{$1};
+           }
+           warn "aclocal: $configure_ac: $.: `$1' is obsolete$hint\n";
            $exit_status = 1;
            next;
        }
 
        # Search for things we know about.  The "search" sub is
-       # constructed dynamically by scan_m4_files.
-       if (! &search && /(^|\s+)(AM_[A-Z_]+)/)
+       # constructed dynamically by scan_m4_files.  The last
+       # parenthethical match makes sure we don't match things that
+       # look like macro assignments or AC_SUBSTs.
+       if (! &search && /(^|\s+)(AM_[A-Z0-9_]+)($|[^\]\)=A-Z0-9_])/)
        {
            # Macro not found, but AM_ prefix found.
-           warn "aclocal: configure.in: $.: macro \`$2' not found in 
library\n";
+           warn "aclocal: $configure_ac: $.: macro `$2' not found in 
library\n";
            $exit_status = 1;
        }
     }
@@ -248,7 +281,7 @@ sub check_acinclude
        if (! $macro_seen{$key})
        {
            # FIXME: should print line number of acinclude.m4.
-           warn "aclocal: macro \`$key' defined in acinclude.m4 but never 
used\n";
+           warn "aclocal: macro `$key' defined in acinclude.m4 but never 
used\n";
        }
     }
 }
@@ -270,8 +303,8 @@ sub scan_m4_files
     foreach $m4dir (@dirlist)
     {
        opendir (DIR, $m4dir)
-           || die "aclocal: couldn't open directory \`$m4dir': $!\n";
-       local ($file, $fullfile, $expr);
+           || die "aclocal: couldn't open directory `$m4dir': $!\n";
+       local ($file, $fullfile);
        foreach $file (sort grep (! /^\./, readdir (DIR)))
        {
            # Only examine .m4 files.
@@ -289,17 +322,17 @@ sub scan_m4_files
     # Construct a new function that does the searching.  We use a
     # function (instead of just evalling $search in the loop) so that
     # "die" is correctly and easily propagated if run.
-    local ($search, $expr, $key) = '';
-    foreach $key (reverse sort keys %map)
+    my $search = "sub search {\nmy \$found = 0;\n";
+    foreach my $key (reverse sort keys %map)
     {
        # EXPR is a regexp matching the name of the macro.
-       ($expr = $key) =~ s/(\W)/\\$1/g;
-       $search .= ("if (/" . $expr . "/) { & add_macro (" . $key
-                   . "); return 1; }\n");
+       (my $expr = $key) =~ s/(\W)/\\$1/g;
+       $search .= ('if (/\b' . $key . '\b/) { & add_macro (' . $key
+                   . '); $found = 1; }' . "\n");
     }
-    $search .= "return 0;\n";
-    eval 'sub search { ' . $search . '};';
-    die "internal error: address@hidden search is $search " if $@;
+    $search .= "return \$found;\n};\n";
+    eval $search;
+    die "internal error: address@hidden search is $search" if $@;
 }
 
 ################################################################
@@ -316,12 +349,12 @@ sub add_macro
 
     if (! defined $map{$macro})
     {
-       warn "aclocal: macro \`$macro' required but not defined\n";
+       warn "aclocal: macro `$macro' required but not defined\n";
        $exit_status = 1;
        return;
     }
 
-    print STDERR "saw macro $macro\n" if $verbosity;
+    print STDERR "aclocal: saw macro $macro\n" if $verbose;
     $macro_seen{$macro} = 1;
     &add_file ($map{$macro});
 }
@@ -346,11 +379,18 @@ sub add_file
            push (@rlist, $1);
        }
 
-       # This function constructed dynamically.
-       if (! &search && /(^|\s+)(AM_[A-Z_]+)/)
+       # Remove comments from current line.
+       s/\bdnl\b.*$//;
+       s/\#.*$//;
+
+       # The search function is constructed dynamically by
+       # scan_m4_files.  The last parenthethical match makes sure we
+       # don't match things that look like macro assignments or
+       # AC_SUBSTs.
+       if (! &search && /(^|\s+)(AM_[A-Z0-9_]+)($|[^\]\)=A-Z0-9_])/)
        {
            # Macro not found, but AM_ prefix found.
-           warn "aclocal: configure.in: $.: macro \`$2' not found in 
library\n";
+           warn "aclocal: $configure_ac: $.: macro `$2' not found in 
library\n";
            $exit_status = 1;
        }
     }
@@ -368,7 +408,7 @@ sub scan_file
     local ($file) = @_;
 
     open (FILE, $file)
-       || die "aclocal: couldn't open \`$file': $!\n";
+       || die "aclocal: couldn't open `$file': $!\n";
     local ($contents) = '';
     while (<FILE>)
     {
@@ -379,17 +419,18 @@ sub scan_file
 
        if (/$ac_defun_rx/)
        {
-           if (!defined $map{$1})
+           if (! defined $map{$1})
            {
                $map{$1} = $file;
            }
-           # Allow acinclude.m4 to override other macro files.
-           elsif ($map{$1} ne 'acinclude.m4' || $file eq 'acinclude.m4')
-           {
-               warn "aclocal: $file: $.: duplicated macro \`$1'\n";
-               $exit_status = 1;
-           }
-           print STDERR "Found macro $1 in $file: $.\n" if $verbosity;
+
+           # Note: we used to give an error here if we saw a
+           # duplicated macro.  However, this turns out to be
+           # extremely unpopular.  It causes actual problems which
+           # are hard to work around, especially when you must
+           # mix-and-match tool versions.
+
+           print STDERR "aclocal: found macro $1 in $file: $.\n" if $verbose;
        }
     }
     close (FILE);
@@ -404,21 +445,29 @@ sub write_aclocal
 {
     return if ! length ($output);
 
-    print STDERR "Writing $output_file\n" if $verbosity;
+    print STDERR "aclocal: writing $output_file\n" if $verbose;
 
     open (ACLOCAL, "> " . $output_file)
-       || die "aclocal: couldn't open \`$output_file' for writing: $!\n";
-    print ACLOCAL "dnl $output_file generated automatically by aclocal 
$VERSION\n";
+       || die "aclocal: couldn't open `$output_file' for writing: $!\n";
+
+    # In case we're running under MSWindows, don't write with CRLF.
+    # (This circumvents a bug in at least Cygwin bash where the shell
+    # parsing fails on lines ending with the continuation character '\'
+    # and CRLF.)
+    binmode ACLOCAL;
+
+    print ACLOCAL "# $output_file generated automatically by aclocal 
$VERSION\n";
     print ACLOCAL "\
-dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl This program is distributed in the hope that it will be useful,
-dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-dnl PARTICULAR PURPOSE.
+# Copyright 1996, 1997, 1998, 1999, 2000, 2001
+# Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
 
 ";
     print ACLOCAL $output;
diff --git a/aclocal.m4 b/aclocal.m4
index 9f8add8..086e39e 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1,70 +1,133 @@
-dnl aclocal.m4 generated automatically by aclocal 1.4
+# aclocal.m4 generated automatically by aclocal 1.5
 
-dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
+# Copyright 1996, 1997, 1998, 1999, 2000, 2001
+# Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
 
-dnl This program is distributed in the hope that it will be useful,
-dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-dnl PARTICULAR PURPOSE.
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
 
 # Do all the work for Automake.  This macro actually does too much --
 # some checks are only needed if your package does certain things.
 # But this isn't really a big deal.
 
-# serial 1
+# serial 5
 
-dnl Usage:
-dnl AM_INIT_AUTOMAKE(package,version, [no-define])
+# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
+# written in clear, in which case automake, when reading aclocal.m4,
+# will think it sees a *use*, and therefore will trigger all it's
+# C support machinery.  Also note that it means that autoscan, seeing
+# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
 
-AC_DEFUN(AM_INIT_AUTOMAKE,
-[AC_REQUIRE([AC_PROG_INSTALL])
-PACKAGE=[$1]
-AC_SUBST(PACKAGE)
-VERSION=[$2]
-AC_SUBST(VERSION)
-dnl test to see if srcdir already configured
-if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
-  AC_MSG_ERROR([source directory already configured; run "make distclean" 
there first])
+
+# We require 2.13 because we rely on SHELL being computed by configure.
+AC_PREREQ([2.13])
+
+# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED)
+# -----------------------------------------------------------
+# If MACRO-NAME is provided do IF-PROVIDED, else IF-NOT-PROVIDED.
+# The purpose of this macro is to provide the user with a means to
+# check macros which are provided without letting her know how the
+# information is coded.
+# If this macro is not defined by Autoconf, define it here.
+ifdef([AC_PROVIDE_IFELSE],
+      [],
+      [define([AC_PROVIDE_IFELSE],
+              [ifdef([AC_PROVIDE_$1],
+                     [$2], [$3])])])
+
+
+# AM_INIT_AUTOMAKE(PACKAGE,VERSION, [NO-DEFINE])
+# ----------------------------------------------
+AC_DEFUN([AM_INIT_AUTOMAKE],
+[AC_REQUIRE([AC_PROG_INSTALL])dnl
+# test to see if srcdir already configured
+if test "`CDPATH=:; cd $srcdir && pwd`" != "`pwd`" &&
+   test -f $srcdir/config.status; then
+  AC_MSG_ERROR([source directory already configured; run \"make distclean\" 
there first])
 fi
+
+# Define the identity of the package.
+PACKAGE=$1
+AC_SUBST(PACKAGE)dnl
+VERSION=$2
+AC_SUBST(VERSION)dnl
 ifelse([$3],,
-AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
-AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package]))
-AC_REQUIRE([AM_SANITY_CHECK])
-AC_REQUIRE([AC_ARG_PROGRAM])
-dnl FIXME This is truly gross.
-missing_dir=`cd $ac_aux_dir && pwd`
-AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
-AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
-AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
-AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
-AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
-AC_REQUIRE([AC_PROG_MAKE_SET])])
+[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
+AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])
+
+# Autoconf 2.50 wants to disallow AM_ names.  We explicitly allow
+# the ones we care about.
+ifdef([m4_pattern_allow],
+      [m4_pattern_allow([^AM_[A-Z]+FLAGS])])dnl
+
+# Autoconf 2.50 always computes EXEEXT.  However we need to be
+# compatible with 2.13, for now.  So we always define EXEEXT, but we
+# don't compute it.
+AC_SUBST(EXEEXT)
+# Similar for OBJEXT -- only we only use OBJEXT if the user actually
+# requests that it be used.  This is a bit dumb.
+: ${OBJEXT=o}
+AC_SUBST(OBJEXT)
+
+# Some tools Automake needs.
+AC_REQUIRE([AM_SANITY_CHECK])dnl
+AC_REQUIRE([AC_ARG_PROGRAM])dnl
+AM_MISSING_PROG(ACLOCAL, aclocal)
+AM_MISSING_PROG(AUTOCONF, autoconf)
+AM_MISSING_PROG(AUTOMAKE, automake)
+AM_MISSING_PROG(AUTOHEADER, autoheader)
+AM_MISSING_PROG(MAKEINFO, makeinfo)
+AM_MISSING_PROG(AMTAR, tar)
+AM_PROG_INSTALL_SH
+AM_PROG_INSTALL_STRIP
+# We need awk for the "check" target.  The system "awk" is bad on
+# some platforms.
+AC_REQUIRE([AC_PROG_AWK])dnl
+AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+AC_REQUIRE([AM_DEP_TRACK])dnl
+AC_REQUIRE([AM_SET_DEPDIR])dnl
+AC_PROVIDE_IFELSE([AC_PROG_][CC],
+                  [_AM_DEPENDENCIES(CC)],
+                  [define([AC_PROG_][CC],
+                          defn([AC_PROG_][CC])[_AM_DEPENDENCIES(CC)])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_][CXX],
+                  [_AM_DEPENDENCIES(CXX)],
+                  [define([AC_PROG_][CXX],
+                          defn([AC_PROG_][CXX])[_AM_DEPENDENCIES(CXX)])])dnl
+])
 
 #
 # Check to make sure that the build environment is sane.
 #
 
-AC_DEFUN(AM_SANITY_CHECK,
+# serial 3
+
+# AM_SANITY_CHECK
+# ---------------
+AC_DEFUN([AM_SANITY_CHECK],
 [AC_MSG_CHECKING([whether build environment is sane])
 # Just in case
 sleep 1
-echo timestamp > conftestfile
+echo timestamp > conftest.file
 # Do `set' in a subshell so we don't clobber the current shell's
 # arguments.  Must try -L first in case configure is actually a
 # symlink; some systems play weird games with the mod time of symlinks
 # (eg FreeBSD returns the mod time of the symlink's containing
 # directory).
 if (
-   set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
-   if test "[$]*" = "X"; then
+   set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
+   if test "$[*]" = "X"; then
       # -L didn't work.
-      set X `ls -t $srcdir/configure conftestfile`
+      set X `ls -t $srcdir/configure conftest.file`
    fi
-   if test "[$]*" != "X $srcdir/configure conftestfile" \
-      && test "[$]*" != "X conftestfile $srcdir/configure"; then
+   rm -f conftest.file
+   if test "$[*]" != "X $srcdir/configure conftest.file" \
+      && test "$[*]" != "X conftest.file $srcdir/configure"; then
 
       # If neither matched, then we have a broken ls.  This can happen
       # if, for instance, CONFIG_SHELL is bash and it inherits a
@@ -74,7 +137,7 @@ if (
 alias in your environment])
    fi
 
-   test "[$]2" = conftestfile
+   test "$[2]" = conftest.file
    )
 then
    # Ok.
@@ -83,22 +146,348 @@ else
    AC_MSG_ERROR([newly created file is older than distributed files!
 Check your system clock])
 fi
-rm -f conftest*
 AC_MSG_RESULT(yes)])
 
-dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
-dnl The program must properly implement --version.
-AC_DEFUN(AM_MISSING_PROG,
-[AC_MSG_CHECKING(for working $2)
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf.  Sigh.
-if ($2 --version) < /dev/null > /dev/null 2>&1; then
-   $1=$2
-   AC_MSG_RESULT(found)
+
+# serial 2
+
+# AM_MISSING_PROG(NAME, PROGRAM)
+# ------------------------------
+AC_DEFUN([AM_MISSING_PROG],
+[AC_REQUIRE([AM_MISSING_HAS_RUN])
+$1=${$1-"${am_missing_run}$2"}
+AC_SUBST($1)])
+
+
+# AM_MISSING_HAS_RUN
+# ------------------
+# Define MISSING if not defined so far and test if it supports --run.
+# If it does, set am_missing_run to use it, otherwise, to nothing.
+AC_DEFUN([AM_MISSING_HAS_RUN],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
+# Use eval to expand $SHELL
+if eval "$MISSING --run true"; then
+  am_missing_run="$MISSING --run "
 else
-   $1="$3/missing $2"
-   AC_MSG_RESULT(missing)
+  am_missing_run=
+  am_backtick='`'
+  AC_MSG_WARN([${am_backtick}missing' script is too old or missing])
 fi
-AC_SUBST($1)])
+])
+
+# AM_AUX_DIR_EXPAND
+
+# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
+# $ac_aux_dir to `$srcdir/foo'.  In other projects, it is set to
+# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
+#
+# Of course, Automake must honor this variable whenever it calls a
+# tool from the auxiliary directory.  The problem is that $srcdir (and
+# therefore $ac_aux_dir as well) can be either absolute or relative,
+# depending on how configure is run.  This is pretty annoying, since
+# it makes $ac_aux_dir quite unusable in subdirectories: in the top
+# source directory, any form will work fine, but in subdirectories a
+# relative path needs to be adjusted first.
+#
+# $ac_aux_dir/missing
+#    fails when called from a subdirectory if $ac_aux_dir is relative
+# $top_srcdir/$ac_aux_dir/missing
+#    fails if $ac_aux_dir is absolute,
+#    fails when called from a subdirectory in a VPATH build with
+#          a relative $ac_aux_dir
+#
+# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
+# are both prefixed by $srcdir.  In an in-source build this is usually
+# harmless because $srcdir is `.', but things will broke when you
+# start a VPATH build or use an absolute $srcdir.
+#
+# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
+# iff we strip the leading $srcdir from $ac_aux_dir.  That would be:
+#   am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
+# and then we would define $MISSING as
+#   MISSING="\${SHELL} $am_aux_dir/missing"
+# This will work as long as MISSING is not called from configure, because
+# unfortunately $(top_srcdir) has no meaning in configure.
+# However there are other variables, like CC, which are often used in
+# configure, and could therefore not use this "fixed" $ac_aux_dir.
+#
+# Another solution, used here, is to always expand $ac_aux_dir to an
+# absolute PATH.  The drawback is that using absolute paths prevent a
+# configured tree to be moved without reconfiguration.
+
+AC_DEFUN([AM_AUX_DIR_EXPAND], [
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`CDPATH=:; cd $ac_aux_dir && pwd`
+])
+
+# AM_PROG_INSTALL_SH
+# ------------------
+# Define $install_sh.
+AC_DEFUN([AM_PROG_INSTALL_SH],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+install_sh=${install_sh-"$am_aux_dir/install-sh"}
+AC_SUBST(install_sh)])
+
+# One issue with vendor `install' (even GNU) is that you can't
+# specify the program used to strip binaries.  This is especially
+# annoying in cross-compiling environments, where the build's strip
+# is unlikely to handle the host's binaries.
+# Fortunately install-sh will honor a STRIPPROG variable, so we
+# always use install-sh in `make install-strip', and initialize
+# STRIPPROG with the value of the STRIP variable (set by the user).
+AC_DEFUN([AM_PROG_INSTALL_STRIP],
+[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
+AC_SUBST([INSTALL_STRIP_PROGRAM])])
+
+# serial 4                                             -*- Autoconf -*-
+
+
+
+# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
+# written in clear, in which case automake, when reading aclocal.m4,
+# will think it sees a *use*, and therefore will trigger all it's
+# C support machinery.  Also note that it means that autoscan, seeing
+# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
+
+
+
+# _AM_DEPENDENCIES(NAME)
+# ---------------------
+# See how the compiler implements dependency checking.
+# NAME is "CC", "CXX" or "OBJC".
+# We try a few techniques and use that to set a single cache variable.
+#
+# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
+# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
+# dependency, and given that the user is not expected to run this macro,
+# just rely on AC_PROG_CC.
+AC_DEFUN([_AM_DEPENDENCIES],
+[AC_REQUIRE([AM_SET_DEPDIR])dnl
+AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
+AC_REQUIRE([AM_MAKE_INCLUDE])dnl
+AC_REQUIRE([AM_DEP_TRACK])dnl
+
+ifelse([$1], CC,   [depcc="$CC"   am_compiler_list=],
+       [$1], CXX,  [depcc="$CXX"  am_compiler_list=],
+       [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc']
+       [$1], GCJ,  [depcc="$GCJ"  am_compiler_list='gcc3 gcc'],
+                   [depcc="$$1"   am_compiler_list=])
+
+AC_CACHE_CHECK([dependency style of $depcc],
+               [am_cv_$1_dependencies_compiler_type],
+[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+  # We make a subdir and do the tests there.  Otherwise we can end up
+  # making bogus files that we don't know about and never remove.  For
+  # instance it was reported that on HP-UX the gcc test will end up
+  # making a dummy file named `D' -- because `-MD' means `put the output
+  # in D'.
+  mkdir conftest.dir
+  # Copy depcomp to subdir because otherwise we won't find it if we're
+  # using a relative directory.
+  cp "$am_depcomp" conftest.dir
+  cd conftest.dir
+
+  am_cv_$1_dependencies_compiler_type=none
+  if test "$am_compiler_list" = ""; then
+     am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
+  fi
+  for depmode in $am_compiler_list; do
+    # We need to recreate these files for each test, as the compiler may
+    # overwrite some of them when testing with obscure command lines.
+    # This happens at least with the AIX C compiler.
+    echo '#include "conftest.h"' > conftest.c
+    echo 'int i;' > conftest.h
+    echo "${am__include} ${am__quote}conftest.Po${am__quote}" > confmf
+
+    case $depmode in
+    nosideeffect)
+      # after this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested
+      if test "x$enable_dependency_tracking" = xyes; then
+       continue
+      else
+       break
+      fi
+      ;;
+    none) break ;;
+    esac
+    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle `-M -o', and we need to detect this.
+    if depmode=$depmode \
+       source=conftest.c object=conftest.o \
+       depfile=conftest.Po tmpdepfile=conftest.TPo \
+       $SHELL ./depcomp $depcc -c conftest.c -o conftest.o >/dev/null 2>&1 &&
+       grep conftest.h conftest.Po > /dev/null 2>&1 &&
+       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+      am_cv_$1_dependencies_compiler_type=$depmode
+      break
+    fi
+  done
+
+  cd ..
+  rm -rf conftest.dir
+else
+  am_cv_$1_dependencies_compiler_type=none
+fi
+])
+$1DEPMODE="depmode=$am_cv_$1_dependencies_compiler_type"
+AC_SUBST([$1DEPMODE])
+])
+
+
+# AM_SET_DEPDIR
+# -------------
+# Choose a directory name for dependency files.
+# This macro is AC_REQUIREd in _AM_DEPENDENCIES
+AC_DEFUN([AM_SET_DEPDIR],
+[rm -f .deps 2>/dev/null
+mkdir .deps 2>/dev/null
+if test -d .deps; then
+  DEPDIR=.deps
+else
+  # MS-DOS does not allow filenames that begin with a dot.
+  DEPDIR=_deps
+fi
+rmdir .deps 2>/dev/null
+AC_SUBST(DEPDIR)
+])
+
+
+# AM_DEP_TRACK
+# ------------
+AC_DEFUN([AM_DEP_TRACK],
+[AC_ARG_ENABLE(dependency-tracking,
+[  --disable-dependency-tracking Speeds up one-time builds
+  --enable-dependency-tracking  Do not reject slow dependency extractors])
+if test "x$enable_dependency_tracking" != xno; then
+  am_depcomp="$ac_aux_dir/depcomp"
+  AMDEPBACKSLASH='\'
+fi
+AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+pushdef([subst], defn([AC_SUBST]))
+subst(AMDEPBACKSLASH)
+popdef([subst])
+])
+
+# Generate code to set up dependency tracking.
+# This macro should only be invoked once -- use via AC_REQUIRE.
+# Usage:
+# AM_OUTPUT_DEPENDENCY_COMMANDS
+
+#
+# This code is only required when automatic dependency tracking
+# is enabled.  FIXME.  This creates each `.P' file that we will
+# need in order to bootstrap the dependency handling code.
+AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],[
+AC_OUTPUT_COMMANDS([
+test x"$AMDEP_TRUE" != x"" ||
+for mf in $CONFIG_FILES; do
+  case "$mf" in
+  Makefile) dirpart=.;;
+  */Makefile) dirpart=`echo "$mf" | sed -e 's|/[^/]*$||'`;;
+  *) continue;;
+  esac
+  grep '^DEP_FILES *= *[^ #]' < "$mf" > /dev/null || continue
+  # Extract the definition of DEP_FILES from the Makefile without
+  # running `make'.
+  DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"`
+  test -z "$DEPDIR" && continue
+  # When using ansi2knr, U may be empty or an underscore; expand it
+  U=`sed -n -e '/^U = / s///p' < "$mf"`
+  test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR"
+  # We invoke sed twice because it is the simplest approach to
+  # changing $(DEPDIR) to its actual value in the expansion.
+  for file in `sed -n -e '
+    /^DEP_FILES = .*\\\\$/ {
+      s/^DEP_FILES = //
+      :loop
+       s/\\\\$//
+       p
+       n
+       /\\\\$/ b loop
+      p
+    }
+    /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \
+       sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+    # Make sure the directory exists.
+    test -f "$dirpart/$file" && continue
+    fdir=`echo "$file" | sed -e 's|/[^/]*$||'`
+    $ac_aux_dir/mkinstalldirs "$dirpart/$fdir" > /dev/null 2>&1
+    # echo "creating $dirpart/$file"
+    echo '# dummy' > "$dirpart/$file"
+  done
+done
+], [AMDEP_TRUE="$AMDEP_TRUE"
+ac_aux_dir="$ac_aux_dir"])])
+
+# AM_MAKE_INCLUDE()
+# -----------------
+# Check to see how make treats includes.
+AC_DEFUN([AM_MAKE_INCLUDE],
+[am_make=${MAKE-make}
+cat > confinc << 'END'
+doit:
+       @echo done
+END
+# If we don't find an include directive, just comment out the code.
+AC_MSG_CHECKING([for style of include used by $am_make])
+am__include='#'
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# We grep out `Entering directory' and `Leaving directory'
+# messages which can occur if `w' ends up in MAKEFLAGS.
+# In particular we don't look at `^make:' because GNU make might
+# be invoked under some other name (usually "gmake"), in which
+# case it prints its new name instead of `make'.
+if test "`$am_make -s -f confmf 2> /dev/null | fgrep -v 'ing directory'`" = 
"done"; then
+   am__include=include
+   am__quote=
+   _am_result=GNU
+fi
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+   echo '.include "confinc"' > confmf
+   if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
+      am__include=.include
+      am__quote='"'
+      _am_result=BSD
+   fi
+fi
+AC_SUBST(am__include)
+AC_SUBST(am__quote)
+AC_MSG_RESULT($_am_result)
+rm -f confinc confmf
+])
+
+# serial 3
+
+# AM_CONDITIONAL(NAME, SHELL-CONDITION)
+# -------------------------------------
+# Define a conditional.
+#
+# FIXME: Once using 2.50, use this:
+# m4_match([$1], [^TRUE\|FALSE$], [AC_FATAL([$0: invalid condition: $1])])dnl
+AC_DEFUN([AM_CONDITIONAL],
+[ifelse([$1], [TRUE],
+        [errprint(__file__:__line__: [$0: invalid condition: $1
+])dnl
+m4exit(1)])dnl
+ifelse([$1], [FALSE],
+       [errprint(__file__:__line__: [$0: invalid condition: $1
+])dnl
+m4exit(1)])dnl
+AC_SUBST([$1_TRUE])
+AC_SUBST([$1_FALSE])
+if $2; then
+  $1_TRUE=
+  $1_FALSE='#'
+else
+  $1_TRUE='#'
+  $1_FALSE=
+fi])
 
diff --git a/ansi2knr.1 b/ansi2knr.1
deleted file mode 100644
index f9ee5a6..0000000
--- a/ansi2knr.1
+++ /dev/null
@@ -1,36 +0,0 @@
-.TH ANSI2KNR 1 "19 Jan 1996"
-.SH NAME
-ansi2knr \- convert ANSI C to Kernighan & Ritchie C
-.SH SYNOPSIS
-.I ansi2knr
-[--varargs] input_file [output_file]
-.SH DESCRIPTION
-If no output_file is supplied, output goes to stdout.
-.br
-There are no error messages.
-.sp
-.I ansi2knr
-recognizes function definitions by seeing a non-keyword identifier at the left
-margin, followed by a left parenthesis, with a right parenthesis as the last
-character on the line, and with a left brace as the first token on the
-following line (ignoring possible intervening comments).  It will recognize a
-multi-line header provided that no intervening line ends with a left or right
-brace or a semicolon.  These algorithms ignore whitespace and comments, except
-that the function name must be the first thing on the line.
-.sp
-The following constructs will confuse it:
-.br
-     - Any other construct that starts at the left margin and follows the
-above syntax (such as a macro or function call).
-.br
-     - Some macros that tinker with the syntax of the function header.
-.sp
-The --varargs switch is obsolete, and is recognized only for
-backwards compatibility.  The present version of
-.I ansi2knr
-will always attempt to convert a ... argument to va_alist and va_dcl.
-.SH AUTHOR
-L. Peter Deutsch <address@hidden> wrote the original ansi2knr and
-continues to maintain the current version; most of the code in the current
-version is his work.  ansi2knr also includes contributions by Francois
-Pinard <address@hidden> and Jim Avera <address@hidden>.
diff --git a/ansi2knr.c b/ansi2knr.c
deleted file mode 100644
index 4962434..0000000
--- a/ansi2knr.c
+++ /dev/null
@@ -1,609 +0,0 @@
-/* Copyright (C) 1989, 1997, 1998 Aladdin Enterprises.  All rights reserved. */
-
-/*$Id: ansi2knr.c,v 1.10 1998/12/02 12:42:23 tromey Exp $*/
-/* Convert ANSI C function definitions to K&R ("traditional C") syntax */
-
-/*
-ansi2knr is distributed in the hope that it will be useful, but WITHOUT ANY
-WARRANTY.  No author or distributor accepts responsibility to anyone for the
-consequences of using it or for whether it serves any particular purpose or
-works at all, unless he says so in writing.  Refer to the GNU General Public
-License (the "GPL") for full details.
-
-Everyone is granted permission to copy, modify and redistribute ansi2knr,
-but only under the conditions described in the GPL.  A copy of this license
-is supposed to have been given to you along with ansi2knr so you can know
-your rights and responsibilities.  It should be in a file named COPYLEFT,
-or, if there is no file named COPYLEFT, a file named COPYING.  Among other
-things, the copyright notice and this notice must be preserved on all
-copies.
-
-We explicitly state here what we believe is already implied by the GPL: if
-the ansi2knr program is distributed as a separate set of sources and a
-separate executable file which are aggregated on a storage medium together
-with another program, this in itself does not bring the other program under
-the GPL, nor does the mere fact that such a program or the procedures for
-constructing it invoke the ansi2knr executable bring any other part of the
-program under the GPL.
-*/
-
-/*
- * Usage:
-       ansi2knr [--filename FILENAME] [INPUT_FILE [OUTPUT_FILE]]
- * --filename provides the file name for the #line directive in the output,
- * overriding input_file (if present).
- * If no input_file is supplied, input is read from stdin.
- * If no output_file is supplied, output goes to stdout.
- * There are no error messages.
- *
- * ansi2knr recognizes function definitions by seeing a non-keyword
- * identifier at the left margin, followed by a left parenthesis,
- * with a right parenthesis as the last character on the line,
- * and with a left brace as the first token on the following line
- * (ignoring possible intervening comments), except that a line
- * consisting of only
- *     identifier1(identifier2)
- * will not be considered a function definition unless identifier2 is
- * the word "void".  ansi2knr will recognize a multi-line header provided
- * that no intervening line ends with a left or right brace or a semicolon.
- * These algorithms ignore whitespace and comments, except that
- * the function name must be the first thing on the line.
- * The following constructs will confuse it:
- *     - Any other construct that starts at the left margin and
- *         follows the above syntax (such as a macro or function call).
- *     - Some macros that tinker with the syntax of the function header.
- */
-
-/*
- * The original and principal author of ansi2knr is L. Peter Deutsch
- * <address@hidden>.  Other authors are noted in the change history
- * that follows (in reverse chronological order):
-       lpd 1998-11-09 added further hack to recognize identifier(void)
-               as being a procedure
-       lpd 1998-10-23 added hack to recognize lines consisting of
-               identifier1(identifier2) as *not* being procedures
-       lpd 1997-12-08 made input_file optional; only closes input and/or
-               output file if not stdin or stdout respectively; prints
-               usage message on stderr rather than stdout; adds
-               --filename switch (changes suggested by
-               <address@hidden>)
-       lpd 1996-01-21 added code to cope with not HAVE_CONFIG_H and with
-               compilers that don't understand void, as suggested by
-               Tom Lane
-       lpd 1996-01-15 changed to require that the first non-comment token
-               on the line following a function header be a left brace,
-               to reduce sensitivity to macros, as suggested by Tom Lane
-               <address@hidden>
-       lpd 1995-06-22 removed #ifndefs whose sole purpose was to define
-               undefined preprocessor symbols as 0; changed all #ifdefs
-               for configuration symbols to #ifs
-       lpd 1995-04-05 changed copyright notice to make it clear that
-               including ansi2knr in a program does not bring the entire
-               program under the GPL
-       lpd 1994-12-18 added conditionals for systems where ctype macros
-               don't handle 8-bit characters properly, suggested by
-               Francois Pinard <address@hidden>;
-               removed --varargs switch (this is now the default)
-       lpd 1994-10-10 removed CONFIG_BROKETS conditional
-       lpd 1994-07-16 added some conditionals to help GNU `configure',
-               suggested by Francois Pinard <address@hidden>;
-               properly erase prototype args in function parameters,
-               contributed by Jim Avera <address@hidden>;
-               correct error in writeblanks (it shouldn't erase EOLs)
-       lpd 1989-xx-xx original version
- */
-
-/* Most of the conditionals here are to make ansi2knr work with */
-/* or without the GNU configure machinery. */
-
-#if HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <ctype.h>
-
-#if HAVE_CONFIG_H
-
-/*
-   For properly autoconfiguring ansi2knr, use AC_CONFIG_HEADER(config.h).
-   This will define HAVE_CONFIG_H and so, activate the following lines.
- */
-
-# if STDC_HEADERS || HAVE_STRING_H
-#  include <string.h>
-# else
-#  include <strings.h>
-# endif
-
-#else /* not HAVE_CONFIG_H */
-
-/* Otherwise do it the hard way */
-
-# ifdef BSD
-#  include <strings.h>
-# else
-#  ifdef VMS
-    extern int strlen(), strncmp();
-#  else
-#   include <string.h>
-#  endif
-# endif
-
-#endif /* not HAVE_CONFIG_H */
-
-#if STDC_HEADERS
-# include <stdlib.h>
-#else
-/*
-   malloc and free should be declared in stdlib.h,
-   but if you've got a K&R compiler, they probably aren't.
- */
-# ifdef MSDOS
-#  include <malloc.h>
-# else
-#  ifdef VMS
-     extern char *malloc();
-     extern void free();
-#  else
-     extern char *malloc();
-     extern int free();
-#  endif
-# endif
-
-#endif
-
-/*
- * The ctype macros don't always handle 8-bit characters correctly.
- * Compensate for this here.
- */
-#ifdef isascii
-#  undef HAVE_ISASCII          /* just in case */
-#  define HAVE_ISASCII 1
-#else
-#endif
-#if STDC_HEADERS || !HAVE_ISASCII
-#  define is_ascii(c) 1
-#else
-#  define is_ascii(c) isascii(c)
-#endif
-
-#define is_space(c) (is_ascii(c) && isspace(c))
-#define is_alpha(c) (is_ascii(c) && isalpha(c))
-#define is_alnum(c) (is_ascii(c) && isalnum(c))
-
-/* Scanning macros */
-#define isidchar(ch) (is_alnum(ch) || (ch) == '_')
-#define isidfirstchar(ch) (is_alpha(ch) || (ch) == '_')
-
-/* Forward references */
-char *skipspace();
-int writeblanks();
-int test1();
-int convert1();
-
-/* The main program */
-int
-main(argc, argv)
-    int argc;
-    char *argv[];
-{      FILE *in = stdin;
-       FILE *out = stdout;
-       char *filename = 0;
-#define bufsize 5000                   /* arbitrary size */
-       char *buf;
-       char *line;
-       char *more;
-       char *usage =
-         "Usage: ansi2knr [--filename FILENAME] [INPUT_FILE [OUTPUT_FILE]]\n";
-       /*
-        * In previous versions, ansi2knr recognized a --varargs switch.
-        * If this switch was supplied, ansi2knr would attempt to convert
-        * a ... argument to va_alist and va_dcl; if this switch was not
-        * supplied, ansi2knr would simply drop any such arguments.
-        * Now, ansi2knr always does this conversion, and we only
-        * check for this switch for backward compatibility.
-        */
-       int convert_varargs = 1;
-
-       while ( argc > 1 && argv[1][0] == '-' ) {
-         if ( !strcmp(argv[1], "--varargs") ) {
-           convert_varargs = 1;
-           argc--;
-           argv++;
-           continue;
-         }
-         if ( !strcmp(argv[1], "--filename") && argc > 2 ) {
-           filename = argv[2];
-           argc -= 2;
-           argv += 2;
-           continue;
-         }
-         fprintf(stderr, "Unrecognized switch: %s\n", argv[1]);
-         fprintf(stderr, usage);
-         exit(1);
-       }
-       switch ( argc )
-          {
-       default:
-               fprintf(stderr, usage);
-               exit(0);
-       case 3:
-               out = fopen(argv[2], "w");
-               if ( out == NULL ) {
-                 fprintf(stderr, "Cannot open output file %s\n", argv[2]);
-                 exit(1);
-               }
-               /* falls through */
-       case 2:
-               in = fopen(argv[1], "r");
-               if ( in == NULL ) {
-                 fprintf(stderr, "Cannot open input file %s\n", argv[1]);
-                 exit(1);
-               }
-               if ( filename == 0 )
-                 filename = argv[1];
-               /* falls through */
-       case 1:
-               break;
-          }
-       if ( filename )
-         fprintf(out, "#line 1 \"%s\"\n", filename);
-       buf = malloc(bufsize);
-       line = buf;
-       while ( fgets(line, (unsigned)(buf + bufsize - line), in) != NULL )
-          {
-test:          line += strlen(line);
-               switch ( test1(buf) )
-                  {
-               case 2:                 /* a function header */
-                       convert1(buf, out, 1, convert_varargs);
-                       break;
-               case 1:                 /* a function */
-                       /* Check for a { at the start of the next line. */
-                       more = ++line;
-f:                     if ( line >= buf + (bufsize - 1) ) /* overflow check */
-                         goto wl;
-                       if ( fgets(line, (unsigned)(buf + bufsize - line), in) 
== NULL )
-                         goto wl;
-                       switch ( *skipspace(more, 1) )
-                         {
-                         case '{':
-                           /* Definitely a function header. */
-                           convert1(buf, out, 0, convert_varargs);
-                           fputs(more, out);
-                           break;
-                         case 0:
-                           /* The next line was blank or a comment: */
-                           /* keep scanning for a non-comment. */
-                           line += strlen(line);
-                           goto f;
-                         default:
-                           /* buf isn't a function header, but */
-                           /* more might be. */
-                           fputs(buf, out);
-                           strcpy(buf, more);
-                           line = buf;
-                           goto test;
-                         }
-                       break;
-               case -1:                /* maybe the start of a function */
-                       if ( line != buf + (bufsize - 1) ) /* overflow check */
-                         continue;
-                       /* falls through */
-               default:                /* not a function */
-wl:                    fputs(buf, out);
-                       break;
-                  }
-               line = buf;
-          }
-       if ( line != buf )
-         fputs(buf, out);
-       free(buf);
-       if ( out != stdout )
-         fclose(out);
-       if ( in != stdin )
-         fclose(in);
-       return 0;
-}
-
-/* Skip over space and comments, in either direction. */
-char *
-skipspace(p, dir)
-    register char *p;
-    register int dir;                  /* 1 for forward, -1 for backward */
-{      for ( ; ; )
-          {    while ( is_space(*p) )
-                 p += dir;
-               if ( !(*p == '/' && p[dir] == '*') )
-                 break;
-               p += dir;  p += dir;
-               while ( !(*p == '*' && p[dir] == '/') )
-                  {    if ( *p == 0 )
-                         return p;     /* multi-line comment?? */
-                       p += dir;
-                  }
-               p += dir;  p += dir;
-          }
-       return p;
-}
-
-/*
- * Write blanks over part of a string.
- * Don't overwrite end-of-line characters.
- */
-int
-writeblanks(start, end)
-    char *start;
-    char *end;
-{      char *p;
-       for ( p = start; p < end; p++ )
-         if ( *p != '\r' && *p != '\n' )
-           *p = ' ';
-       return 0;
-}
-
-/*
- * Test whether the string in buf is a function definition.
- * The string may contain and/or end with a newline.
- * Return as follows:
- *     0 - definitely not a function definition;
- *     1 - definitely a function definition;
- *     2 - definitely a function prototype (NOT USED);
- *     -1 - may be the beginning of a function definition,
- *             append another line and look again.
- * The reason we don't attempt to convert function prototypes is that
- * Ghostscript's declaration-generating macros look too much like
- * prototypes, and confuse the algorithms.
- */
-int
-test1(buf)
-    char *buf;
-{      register char *p = buf;
-       char *bend;
-       char *endfn;
-       int contin;
-
-       if ( !isidfirstchar(*p) )
-         return 0;             /* no name at left margin */
-       bend = skipspace(buf + strlen(buf) - 1, -1);
-       switch ( *bend )
-          {
-          case ';': contin = 0 /*2*/; break;
-          case ')': contin = 1; break;
-          case '{': return 0;          /* not a function */
-          case '}': return 0;          /* not a function */
-          default: contin = -1;
-          }
-       while ( isidchar(*p) )
-         p++;
-       endfn = p;
-       p = skipspace(p, 1);
-       if ( *p++ != '(' )
-         return 0;             /* not a function */
-       p = skipspace(p, 1);
-       if ( *p == ')' )
-         return 0;             /* no parameters */
-       /* Check that the apparent function name isn't a keyword. */
-       /* We only need to check for keywords that could be followed */
-       /* by a left parenthesis (which, unfortunately, is most of them). */
-          {    static char *words[] =
-                  {    "asm", "auto", "case", "char", "const", "double",
-                       "extern", "float", "for", "if", "int", "long",
-                       "register", "return", "short", "signed", "sizeof",
-                       "static", "switch", "typedef", "unsigned",
-                       "void", "volatile", "while", 0
-                  };
-               char **key = words;
-               char *kp;
-               int len = endfn - buf;
-
-               while ( (kp = *key) != 0 )
-                  {    if ( strlen(kp) == len && !strncmp(kp, buf, len) )
-                         return 0;     /* name is a keyword */
-                       key++;
-                  }
-          }
-          {
-              char *id = p;
-              int len;
-              /*
-               * Check for identifier1(identifier2) and not
-               * identifier1(void).
-               */
-
-              while ( isidchar(*p) )
-                  p++;
-              len = p - id;
-              p = skipspace(p, 1);
-              if ( *p == ')' && (len != 4 || strncmp(id, "void", 4)) )
-                  return 0;    /* not a function */
-          }
-       /*
-        * If the last significant character was a ), we need to count
-        * parentheses, because it might be part of a formal parameter
-        * that is a procedure.
-        */
-       if (contin > 0) {
-           int level = 0;
-
-           for (p = skipspace(buf, 1); *p; p = skipspace(p + 1, 1))
-               level += (*p == '(' ? 1 : *p == ')' ? -1 : 0);
-           if (level > 0)
-               contin = -1;
-       }
-       return contin;
-}
-
-/* Convert a recognized function definition or header to K&R syntax. */
-int
-convert1(buf, out, header, convert_varargs)
-    char *buf;
-    FILE *out;
-    int header;                        /* Boolean */
-    int convert_varargs;       /* Boolean */
-{      char *endfn;
-       register char *p;
-       /*
-        * The breaks table contains pointers to the beginning and end
-        * of each argument.
-        */
-       char **breaks;
-       unsigned num_breaks = 2;        /* for testing */
-       char **btop;
-       char **bp;
-       char **ap;
-       char *vararg = 0;
-
-       /* Pre-ANSI implementations don't agree on whether strchr */
-       /* is called strchr or index, so we open-code it here. */
-       for ( endfn = buf; *(endfn++) != '('; )
-         ;
-top:   p = endfn;
-       breaks = (char **)malloc(sizeof(char *) * num_breaks * 2);
-       if ( breaks == 0 )
-          {    /* Couldn't allocate break table, give up */
-               fprintf(stderr, "Unable to allocate break table!\n");
-               fputs(buf, out);
-               return -1;
-          }
-       btop = breaks + num_breaks * 2 - 2;
-       bp = breaks;
-       /* Parse the argument list */
-       do
-          {    int level = 0;
-               char *lp = NULL;
-               char *rp;
-               char *end = NULL;
-
-               if ( bp >= btop )
-                  {    /* Filled up break table. */
-                       /* Allocate a bigger one and start over. */
-                       free((char *)breaks);
-                       num_breaks <<= 1;
-                       goto top;
-                  }
-               *bp++ = p;
-               /* Find the end of the argument */
-               for ( ; end == NULL; p++ )
-                  {    switch(*p)
-                          {
-                          case ',':
-                               if ( !level ) end = p;
-                               break;
-                          case '(':
-                               if ( !level ) lp = p;
-                               level++;
-                               break;
-                          case ')':
-                               if ( --level < 0 ) end = p;
-                               else rp = p;
-                               break;
-                          case '/':
-                               p = skipspace(p, 1) - 1;
-                               break;
-                          default:
-                               ;
-                          }
-                  }
-               /* Erase any embedded prototype parameters. */
-               if ( lp )
-                 writeblanks(lp + 1, rp);
-               p--;                    /* back up over terminator */
-               /* Find the name being declared. */
-               /* This is complicated because of procedure and */
-               /* array modifiers. */
-               for ( ; ; )
-                  {    p = skipspace(p - 1, -1);
-                       switch ( *p )
-                          {
-                          case ']':    /* skip array dimension(s) */
-                          case ')':    /* skip procedure args OR name */
-                          {    int level = 1;
-                               while ( level )
-                                switch ( *--p )
-                                  {
-                                  case ']': case ')': level++; break;
-                                  case '[': case '(': level--; break;
-                                  case '/': p = skipspace(p, -1) + 1; break;
-                                  default: ;
-                                  }
-                          }
-                               if ( *p == '(' && *skipspace(p + 1, 1) == '*' )
-                                  {    /* We found the name being declared */
-                                       while ( !isidfirstchar(*p) )
-                                         p = skipspace(p, 1) + 1;
-                                       goto found;
-                                  }
-                               break;
-                          default:
-                               goto found;
-                          }
-                  }
-found:         if ( *p == '.' && p[-1] == '.' && p[-2] == '.' )
-                 {     if ( convert_varargs )
-                         {     *bp++ = "va_alist";
-                               vararg = p-2;
-                         }
-                       else
-                         {     p++;
-                               if ( bp == breaks + 1 ) /* sole argument */
-                                 writeblanks(breaks[0], p);
-                               else
-                                 writeblanks(bp[-1] - 1, p);
-                               bp--;
-                         }
-                  }
-               else
-                  {    while ( isidchar(*p) ) p--;
-                       *bp++ = p+1;
-                  }
-               p = end;
-          }
-       while ( *p++ == ',' );
-       *bp = p;
-       /* Make a special check for 'void' arglist */
-       if ( bp == breaks+2 )
-          {    p = skipspace(breaks[0], 1);
-               if ( !strncmp(p, "void", 4) )
-                  {    p = skipspace(p+4, 1);
-                       if ( p == breaks[2] - 1 )
-                          {    bp = breaks;    /* yup, pretend arglist is 
empty */
-                               writeblanks(breaks[0], p + 1);
-                          }
-                  }
-          }
-       /* Put out the function name and left parenthesis. */
-       p = buf;
-       while ( p != endfn ) putc(*p, out), p++;
-       /* Put out the declaration. */
-       if ( header )
-         {     fputs(");", out);
-               for ( p = breaks[0]; *p; p++ )
-                 if ( *p == '\r' || *p == '\n' )
-                   putc(*p, out);
-         }
-       else
-         {     for ( ap = breaks+1; ap < bp; ap += 2 )
-                 {     p = *ap;
-                       while ( isidchar(*p) )
-                         putc(*p, out), p++;
-                       if ( ap < bp - 1 )
-                         fputs(", ", out);
-                 }
-               fputs(")  ", out);
-               /* Put out the argument declarations */
-               for ( ap = breaks+2; ap <= bp; ap += 2 )
-                 (*ap)[-1] = ';';
-               if ( vararg != 0 )
-                 {     *vararg = 0;
-                       fputs(breaks[0], out);          /* any prior args */
-                       fputs("va_dcl", out);           /* the final arg */
-                       fputs(bp[0], out);
-                 }
-               else
-                 fputs(breaks[0], out);
-         }
-       free((char *)breaks);
-       return 0;
-}
diff --git a/automake.in b/automake.in
index ccb3ffc..df66708 100755
--- a/automake.in
+++ b/automake.in
@@ -1,4 +1,4 @@
address@hidden@
address@hidden@ -w
 # -*- perl -*-
 # @configure_input@
 
@@ -6,7 +6,8 @@ eval 'exec @PERL@ -S $0 ${1+"$@"}'
     if 0;
 
 # automake - create Makefile.in from Makefile.am
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999 Free Software Foundation, 
Inc.
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+# Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -26,344 +27,985 @@ eval 'exec @PERL@ -S $0 ${1+"$@"}'
 # Originally written by David Mackenzie <address@hidden>.
 # Perl reimplementation by Tom Tromey <address@hidden>.
 
+package Language;
+
+BEGIN
+{
+  my $prefix = "@prefix@";
+  my $perllibdir = $ENV{'perllibdir'} || "@datadir@/@PACKAGE@";
+  unshift @INC, "$perllibdir";
+}
+
+use Automake::Struct;
+struct (# Short name of the language (c, f77...).
+        'name' => "\$",
+        # Nice name of the language (C, Fortran 77...).
+        'Name' => "\$",
+
+       # List of configure variables which must be defined.
+       'config_vars' => '@',
+
+        'ansi'    => "\$",
+       # `pure' is `1' or `'.  A `pure' language is one where, if
+       # all the files in a directory are of that language, then we
+       # do not require the C compiler or any code to call it.
+       'pure'   => "\$",
+
+       'autodep' => "\$",
+
+       # Name of the compiling variable (COMPILE).
+        'compiler'  => "\$",
+        # Content of the compiling variable.
+        'compile'  => "\$",
+        # Flag to require compilation without linking (-c).
+        'compile_flag' => "\$",
+        'extensions'      => '@',
+        'flags' => "\$",
+       # Should the flag be defined as a configure variable.
+       # Defaults to true.  FIXME: this should go away once
+       # we move to autoconf tracing.
+       'define_flag' => "\$",
+
+       # The file to use when generating rules for this language.
+       # The default is 'depend2'.
+       'rule_file' => "\$",
+
+        # Name of the linking variable (LINK).
+        'linker' => "\$",
+        # Content of the linking variable.
+        'link' => "\$",
+
+        # Name of the linker variable (LD).
+        'lder' => "\$",
+        # Content of the linker variable ($(CC)).
+        'ld' => "\$",
+
+        # Flag to specify the output file (-o).
+        'output_flag' => "\$",
+        '_finish' => "\$",
+
+       # This is a subroutine which is called whenever we finally
+       # determine the context in which a source file will be
+       # compiled.
+       '_target_hook' => "\$");
+
+
+sub finish ($)
+{
+  my ($self) = @_;
+  if (defined $self->_finish)
+    {
+      &{$self->_finish} ();
+    }
+}
+
+sub target_hook ($$$$)
+{
+    my ($self) = @_;
+    if (defined $self->_target_hook)
+    {
+       &{$self->_target_hook} (@_);
+    }
+}
+
+package Automake;
+
+require 5.005;
+use strict 'vars', 'subs';
+use File::Basename;
+use IO::File;
+
+my $me = basename ($0);
+
+
+## ----------- ##
+## Constants.  ##
+## ----------- ##
 
 # Parameters set by configure.  Not to be changed.  NOTE: assign
 # VERSION as string so that eg version 0.30 will print correctly.
-$VERSION = "@VERSION@";
-$PACKAGE = "@PACKAGE@";
-$prefix = "@prefix@";
-$am_dir = "@datadir@/@PACKAGE@";
-$TAR = "@TAR@";
+my $VERSION = "@VERSION@";
+my $PACKAGE = "@PACKAGE@";
+my $prefix = "@prefix@";
+my $libdir = "@datadir@/@PACKAGE@";
 
 # String constants.
-$IGNORE_PATTERN = "^##([^#].*)?\$";
-$WHITE_PATTERN = "^[ \t]*\$";
-$COMMENT_PATTERN = "^#";
-$RULE_PATTERN = "^([\$a-zA-Z_.][-.a-zA-Z0-9_(){}/\$]*) *:([^=].*|)\$";
-$SUFFIX_RULE_PATTERN = "^\\.([a-zA-Z]+)\\.([a-zA-Z]+)\$";
-$MACRO_PATTERN = "^([A-Za-z][A-Za-z0-9_]*)[ \t]*([:+]?)=[ \t]*(.*)\$";
-$BOGUS_MACRO_PATTERN = "^([^ \t]*)[ \t]*([:+]?)=[ \t]*(.*)\$";
-$GNITS_VERSION_PATTERN = "[0-9]+\\.[0-9]+([a-z]|\\.[0-9]+)?";
-$IF_PATTERN = "^if[ \t]+\([A-Za-z][A-Za-z0-9_]*\)[ \t]*\(#.*\)?\$";
-$ELSE_PATTERN = "^else[ \t]*\(#.*\)?\$";
-$ENDIF_PATTERN = "^endif[ \t]*\(#.*\)?\$";
-$PATH_PATTERN='(\\w|/|\\.)+';
+my $IGNORE_PATTERN = '^\s*##([^#\n].*)?\n';
+my $WHITE_PATTERN = '^\s*$';
+my $COMMENT_PATTERN = '^#';
+my $TARGET_PATTERN='address@hidden(){}/address@hidden';
+# A rule has three parts: a list of targets, a list of dependencies,
+# and optionally actions.
+my $RULE_PATTERN =
+  "^($TARGET_PATTERN(?:(?:\\\\\n|\\s)+$TARGET_PATTERN)*) *:([^=].*|)\$";
+
+my $SUFFIX_RULE_PATTERN = '^\.([a-zA-Z0-9+]+)\.([a-zA-Z0-9+]+)$';
+# Only recognize leading spaces, not leading tabs.  If we recognize
+# leading tabs here then we need to make the reader smarter, because
+# otherwise it will think rules like `foo=bar; \' are errors.
+my $MACRO_PATTERN = 'address@hidden';
+my $ASSIGNMENT_PATTERN = '^ *([^ \t=:+]*)\s*([:+]?)=\s*(.*)$';
+# This pattern recognizes a Gnits version id and sets $1 if the
+# release is an alpha release.  We also allow a suffix which can be
+# used to extend the version number with a "fork" identifier.
+my $GNITS_VERSION_PATTERN = '\d+\.\d+([a-z]|\.\d+)?(-[A-Za-z0-9]+)?';
+my $IF_PATTERN =          '^if\s+(!?)\s*([A-Za-z][A-Za-z0-9_]*)\s*(?:#.*)?$';
+my $ELSE_PATTERN =   '^else(?:\s+(!?)\s*([A-Za-z][A-Za-z0-9_]*))?\s*(?:#.*)?$';
+my $ENDIF_PATTERN = '^endif(?:\s+(!?)\s*([A-Za-z][A-Za-z0-9_]*))?\s*(?:#.*)?$';
+my $PATH_PATTERN='(\w|[/.-])+';
 # This will pass through anything not of the prescribed form.
-$INCLUDE_PATTERN = "^include[ 
\t]+((\\\$\\\(top_srcdir\\\)/${PATH_PATTERN})|(\\\$\\\(srcdir\\\)/${PATH_PATTERN})|([^/\\\$]${PATH_PATTERN}))[
 \t]*(#.*)?\$";
+my $INCLUDE_PATTERN = ('^include\s+'
+                      . '((\$\(top_srcdir\)/' . $PATH_PATTERN . ')'
+                      . '|(\$\(srcdir\)/' . $PATH_PATTERN . ')'
+                      . '|([^/\$]' . $PATH_PATTERN. '))\s*(#.*)?$');
 
 # Some regular expressions.  One reason to put them here is that it
 # makes indentation work better in Emacs.
-$AC_CONFIG_AUX_DIR_PATTERN = "AC_CONFIG_AUX_DIR\\(([^)]+)\\)";
-$AM_INIT_AUTOMAKE_PATTERN = "AM_INIT_AUTOMAKE\\([^,]*,([^,)]+)[,)]";
-$AM_PACKAGE_VERSION_PATTERN = "^\\s*\\[?([^]\\s]+)\\]?\\s*\$";
+my $AC_CONFIG_AUX_DIR_PATTERN = 'AC_CONFIG_AUX_DIR\(([^)]+)\)';
+my $AM_INIT_AUTOMAKE_PATTERN = 'AM_INIT_AUTOMAKE\([^,]*,([^,)]+)[,)]';
+my $AM_PACKAGE_VERSION_PATTERN = '^\s*\[?([^]\s]+)\]?\s*$';
+
+# This handles substitution references like ${foo:.a=.b}.
+my $SUBST_REF_PATTERN = "^([^:]*):([^=]*)=(.*)\$";
+
 # Note that there is no AC_PATH_TOOL.  But we don't really care.
-$AC_CHECK_PATTERN = "AC_(CHECK|PATH)_(PROG|PROGS|TOOL)\\(\\[?(\\w+)";
-$AM_MISSING_PATTERN = "AM_MISSING_PROG\\(\\[?(\\w+)";
+my $AC_CHECK_PATTERN = 'AC_(CHECK|PATH)_(PROG|PROGS|TOOL)\(\[?(\w+)';
+my $AM_MISSING_PATTERN = 'AM_MISSING_PROG\(\[?(\w+)';
 # Just check for alphanumeric in AC_SUBST.  If you do AC_SUBST(5),
 # then too bad.
-$AC_SUBST_PATTERN = "AC_SUBST\\(\\[?(\\w+)";
-$AM_CONDITIONAL_PATTERN = "AM_CONDITIONAL\\((\\w+)";
+my $AC_SUBST_PATTERN = 'AC_SUBST\(\[?(\w+)';
+my $AM_CONDITIONAL_PATTERN = 'AM_CONDITIONAL\(\[?(\w+)';
+# Match `-d' as a command-line argument in a string.
+my $DASH_D_PATTERN = "(^|\\s)-d(\\s|\$)";
 
 # Constants to define the "strictness" level.
-$FOREIGN = 0;
-$GNU = 1;
-$GNITS = 2;
+my $FOREIGN = 0;
+my $GNU = 1;
+my $GNITS = 2;
+
+# Values for AC_CANONICAL_*
+my $AC_CANONICAL_HOST = 1;
+my $AC_CANONICAL_SYSTEM = 2;
+
+# Values indicating when something should be cleaned.  Right now we
+# only need to handle `mostly'- and `dist'-clean; add more as
+# required.
+my $MOSTLY_CLEAN = 0;
+my $DIST_CLEAN = 1;
 
+# Files installed by libtoolize.
+my @libtoolize_files = ('ltmain.sh', 'config.guess', 'config.sub');
+# ltconfig appears here for compatibility with old versions of libtool.
+my @libtoolize_sometimes = ('ltconfig', 'ltcf-c.sh', 'ltcf-cxx.sh',
+                           'ltcf-gcj.sh');
+
+# Commonly found files we look for and automatically include in
+# DISTFILES.
+my @common_files =
+  (
+   'README', 'THANKS', 'TODO', 'NEWS', 'COPYING', 'COPYING.LIB',
+   'INSTALL', 'ABOUT-NLS', 'ChangeLog', 'configure.ac',
+   'configure.in', 'configure', 'config.guess', 'config.sub',
+   'AUTHORS', 'BACKLOG', 'ABOUT-GNU', 'libversion.in',
+   'mdate-sh', 'mkinstalldirs', 'install-sh', 'texinfo.tex',
+   'ansi2knr.c', 'ansi2knr.1', 'elisp-comp',
+   # ltconfig appears here for compatibility with old versions
+   # of libtool.
+   'ylwrap', 'acinclude.m4', @libtoolize_files, @libtoolize_sometimes,
+   'missing', 'depcomp', 'compile', 'py-compile'
+  );
+
+# Commonly used files we auto-include, but only sometimes.
+my @common_sometimes =
+  (
+   'aclocal.m4', 'acconfig.h', 'config.h.top',
+   'config.h.bot', 'stamp-h.in', 'stamp-vti'
+  );
+
+# Copyright on generated Makefile.ins.
+my $gen_copyright = "\
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+# Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+";
+
+# These constants are returned by lang_*_rewrite functions.
+# LANG_SUBDIR means that the resulting object file should be in a
+# subdir if the source file is.  In this case the file name cannot
+# have `..' components.
+my $LANG_IGNORE = 0;
+my $LANG_PROCESS = 1;
+my $LANG_SUBDIR = 2;
+
+# Directories installed during 'install-exec' phase.
+my %exec_dir_p =
+  (
+   'bin'       => 1,
+   'sbin'      => 1,
+   'libexec'   => 1,
+   'data'      => 0,
+   'sysconf'   => 1,
+   'localstate'        => 1,
+   'lib'       => 1,
+   'info'      => 0,
+   'man'       => 0,
+   'include'   => 0,
+   'oldinclude'        => 0,
+   'pkgdata'   => 0,
+   'pkglib'    => 1,
+   'pkginclude'        => 0
+  );
+
+# Map from obsolete macros to hints for new macros.
+# If you change this, change the corresponding list in aclocal.in.
+# FIXME: should just put this into a single file.
+my %obsolete_macros =
+    (
+     'AC_FEATURE_CTYPE'                => "use `AC_HEADER_STDC'",
+     'AC_FEATURE_ERRNO'                => "add `strerror' to 
`AC_REPLACE_FUNCS(...)'",
+     'AC_FEATURE_EXIT'         => '',
+     'AC_SYSTEM_HEADER'                => '',
+
+     # Note that we do not handle this one, because it is still run
+     # from AM_CONFIG_HEADER.  So we deal with it specially in
+     # &scan_autoconf_files.
+     # 'AC_CONFIG_HEADER'      => "use `AM_CONFIG_HEADER'",
+
+     'fp_C_PROTOTYPES'         => "use `AM_C_PROTOTYPES'",
+     'fp_PROG_CC_STDC'         => "use `AM_PROG_CC_STDC'",
+     'fp_PROG_INSTALL'         => "use `AC_PROG_INSTALL'",
+     'fp_WITH_DMALLOC'         => "use `AM_WITH_DMALLOC'",
+     'fp_WITH_REGEX'           => "use `AM_WITH_REGEX'",
+     'gm_PROG_LIBTOOL'         => "use `AM_PROG_LIBTOOL'",
+     'jm_MAINTAINER_MODE'      => "use `AM_MAINTAINER_MODE'",
+     'md_TYPE_PTRDIFF_T'       => "use `AM_TYPE_PTRDIFF_T'",
+     'ud_PATH_LISPDIR'         => "use `AM_PATH_LISPDIR'",
+     'ud_GNU_GETTEXT'          => "use `AM_GNU_GETTEXT'",
+
+     # Now part of autoconf proper, under a different name.
+     'AM_FUNC_FNMATCH'         => "use `AC_FUNC_FNMATCH'",
+     'fp_FUNC_FNMATCH'         => "use `AC_FUNC_FNMATCH'",
+     'AM_SANITY_CHECK_CC'      => "automatically done by `AC_PROG_CC'",
+     'AM_PROG_INSTALL'         => "use `AC_PROG_INSTALL'",
+     'AM_EXEEXT'               => "use `AC_EXEEXT'",
+     'AM_CYGWIN32'             => "use `AC_CYGWIN'",
+     'AM_MINGW32'              => "use `AC_MINGW32'",
+     'AM_FUNC_MKTIME'          => "use `AC_FUNC_MKTIME'",
+
+# These aren't quite obsolete.
+#      'md_PATH_PROG',
+     );
+
+# Regexp to match the above macros.
+my $obsolete_rx = '\b(' . join ('|', keys %obsolete_macros) . ')\b';
 
 
-# Variables global to entire run.
+
+## ---------------------------------- ##
+## Variables related to the options.  ##
+## ---------------------------------- ##
 
 # TRUE if we should always generate Makefile.in.
-$force_generation = 1;
+my $force_generation = 1;
 
 # Strictness level as set on command line.
-$default_strictness = $GNU;
+my $default_strictness = $GNU;
 
 # Name of strictness level, as set on command line.
-$default_strictness_name = 'gnu';
-
-# This is TRUE if GNU make specific automatic dependency generation
-# code should be included in generated Makefile.in.
-$cmdline_use_dependencies = 1;
+my $default_strictness_name = 'gnu';
 
-# This is the name of a dependency makefile bit (usually for inclusion in a
-# SMakefile or similar); empty if not set.
-$generate_deps = '';
+# This is TRUE if automatic dependency generation code should be
+# included in generated Makefile.in.
+my $cmdline_use_dependencies = 1;
 
 # TRUE if in verbose mode.
-$verbose = 0;
+my $verbose = 0;
 
 # This holds our (eventual) exit status.  We don't actually exit until
 # we have processed all input files.
-$exit_status = 0;
+my $exit_status = 0;
 
 # From the Perl manual.
-$symlink_exists = (eval 'symlink ("", "");', $@ eq '');
+my $symlink_exists = (eval 'symlink ("", "");', $@ eq '');
 
 # TRUE if missing standard files should be installed.
-$add_missing = 0;
+my $add_missing = 0;
 
 # TRUE if we should copy missing files; otherwise symlink if possible.
-$copy_missing = 0;
+my $copy_missing = 0;
+
+# TRUE if we should always update files that we know about.
+my $force_missing = 0;
+
 
-# Files found by scanning configure.in for LIBOBJS.
-%libsources = ();
+## ---------------------------------------- ##
+## Variables filled during files scanning.  ##
+## ---------------------------------------- ##
 
-# True if AM_C_PROTOTYPES appears in configure.in.
-$am_c_prototypes = 0;
+# Name of the top autoconf input: `configure.ac' or `configure.in'.
+my $configure_ac = '';
+
+# Files found by scanning configure.ac for LIBOBJS.
+my %libsources = ();
+
+# True if AM_C_PROTOTYPES appears in configure.ac.
+my $am_c_prototypes = 0;
 
 # Names used in AC_CONFIG_HEADER call.  @config_fullnames holds the
 # name which appears in AC_CONFIG_HEADER, colon and all.
 # @config_names holds the file names.  @config_headers holds the '.in'
 # files.  Ordinarily these are similar, but they can be different if
 # the weird "NAME:FILE" syntax is used.
address@hidden = ();
address@hidden = ();
address@hidden = ();
-# Line number at which AC_CONFIG_HEADER appears in configure.in.
-$config_header_line = 0;
+my @config_fullnames = ();
+my @config_names = ();
+my @config_headers = ();
+# Line number at which AC_CONFIG_HEADER appears in configure.ac.
+my $config_header_line = 0;
 
 # Directory where output files go.  Actually, output files are
 # relative to this directory.
-$output_directory = '.';
-
-# Relative location of top build directory.
-$top_builddir = '';
-
-# Absolute location of top build directory.
-$build_directory = '';
-
-# Name of srcdir as given in build directory's Makefile.  For
-# dependencies only.
-$srcdir_name = '';
+my $output_directory = '.';
 
 # List of Makefile.am's to process, and their corresponding outputs.
address@hidden = ();
-%output_files = ();
+my @input_files = ();
+my %output_files = ();
+
+# Complete list of Makefile.am's that exist.
+my @configure_input_files = ();
 
 # List of files in AC_OUTPUT without Makefile.am, and their outputs.
address@hidden = ();
+my @other_input_files = ();
 # Line number at which AC_OUTPUT seen.
-$ac_output_line = 0;
+my $ac_output_line = 0;
 
 # List of directories to search for configure-required files.  This
 # can be set by AC_CONFIG_AUX_DIR.
address@hidden = ('.', '..', '../..');
-$config_aux_dir = '';
-
-# Whether AC_PROG_MAKE_SET has been seen in configure.in.
-$seen_make_set = 0;
+my @config_aux_path = ('.', '..', '../..');
+my $config_aux_dir = '';
+my $config_aux_dir_set_in_configure_in = 0;
 
-# Whether AM_GNU_GETTEXT has been seen in configure.in.
-$seen_gettext = 0;
+# Whether AM_GNU_GETTEXT has been seen in configure.ac.
+my $seen_gettext = 0;
 # Line number at which AM_GNU_GETTEXT seen.
-$ac_gettext_line = 0;
-
-# Whether ALL_LINGUAS has been seen.
-$seen_linguas = '';
-# The actual text.
-$all_linguas = '';
-# Line number at which it appears.
-$all_linguas_line = 0;
-
-# 1 if AC_PROG_INSTALL seen.
-$seen_prog_install = 0;
-
-# Whether AC_PATH_XTRA has been seen in configure.in.
-$seen_path_xtra = 0;
+my $ac_gettext_line = 0;
 
 # TRUE if AC_DECL_YYTEXT was seen.
-$seen_decl_yytext = 0;
+my $seen_decl_yytext = 0;
 
 # TRUE if we've seen AC_CANONICAL_(HOST|SYSTEM).  The presence of
 # AC_CHECK_TOOL also sets this.
-$seen_canonical = 0;
-
-# TRUE if we've seen AC_ARG_PROGRAM.
-$seen_arg_prog = 0;
+my $seen_canonical = 0;
 
-# TRUE if we've seen AM_PROG_LIBTOOL.
-$seen_libtool = 0;
-$libtool_line = 0;
-
-# Files installed by libtoolize.
address@hidden = ('ltconfig', 'ltmain.sh', 'config.guess', 'config.sub');
+# TRUE if we've seen AC_PROG_LIBTOOL.
+my $seen_libtool = 0;
+my $libtool_line = 0;
 
 # TRUE if we've seen AM_MAINTAINER_MODE.
-$seen_maint_mode = 0;
-
-# TRUE if we've seen PACKAGE and VERSION.
-$seen_package = 0;
-$seen_version = 0;
+my $seen_maint_mode = 0;
 
 # Actual version we've seen.
-$package_version = '';
+my $package_version = '';
 
 # Line number where we saw version definition.
-$package_version_line = 0;
+my $package_version_line = 0;
 
 # TRUE if we've seen AM_PATH_LISPDIR.
-$seen_lispdir = 0;
+my $seen_lispdir = 0;
 
-# TRUE if we've seen AC_EXEEXT.
-$seen_exeext = 0;
+# TRUE if we've seen AM_PATH_PYTHON.
+my $seen_pythondir = 0;
 
 # TRUE if we've seen AC_OBJEXT.
-$seen_objext = 0;
+my $seen_objext = 0;
 
 # TRUE if we've seen AC_ENABLE_MULTILIB.
-$seen_multilib = 0;
+my $seen_multilib = 0;
+
+# TRUE if we've seen AM_PROG_CC_C_O
+my $seen_cc_c_o = 0;
+
+# TRUE if we've seen AM_INIT_AUTOMAKE.
+my $seen_init_automake = 0;
 
 # Hash table of discovered configure substitutions.  Keys are names,
 # values are `FILE:LINE' strings which are used by error message
 # generation.
-%configure_vars = ();
+my %configure_vars = ();
 
 # This is used to keep track of which variable definitions we are
 # scanning.  It is only used in certain limited ways, but it has to be
 # global.  It is declared just for documentation purposes.
-%vars_scanned = ();
-
-# Charsets used by maintainer and in distribution.  MAINT_CHARSET is
-# handled in a funny way: if seen in the top-level Makefile.am, it is
-# used for every directory which does not specify a different value.
-# The rationale here is that some directories (eg gettext) might be
-# distributions of other packages, and thus require their own charset
-# info.  However, the DIST_CHARSET must be the same for the entire
-# package; it can only be set at top-level.
-# FIXME: this yields bugs when rebuilding.  What to do?  Always
-# read (and sometimes discard) top-level Makefile.am?
-$maint_charset = '';
-$dist_charset = 'utf8';                # recode doesn't support this yet.
-
-# Name of input file ("Makefile.in") and output file ("Makefile.am").
-# These have no directory components.
-$am_file_name = '';
-$in_file_name = '';
+my %vars_scanned = ();
 
 # TRUE if --cygnus seen.
-$cygnus_mode = 0;
-
-# Keys of this hash are names of dependency files to ignore.
-%omit_dependencies = ();
+my $cygnus_mode = 0;
 
 # Hash table of AM_CONDITIONAL variables seen in configure.
-%configure_cond = ();
+my %configure_cond = ();
 
-# Map from obsolete macros to hints for new macros.
-# FIXME complete the list so that there are no `0' hints.
-%obsolete_macros =
-    (
-     'AC_FEATURE_CTYPE', "use \`AC_HEADER_STDC'",
-     'AC_FEATURE_ERRNO', "add \`strerror' to \`AC_REPLACE_FUNCS(...)'",
-     'AC_FEATURE_EXIT', 0,
-     'AC_SYSTEM_HEADER', 0,
+# This maps extensions onto language names.
+my %extension_map = ();
+
+# List of the DIST_COMMON files we discovered while reading
+# configure.in
+my $configure_dist_common = '';
+
+# This maps languages names onto objects.
+my %languages = ();
+
+# List of targets we must always output.
+# FIXME: Complete, and remove falsely required targets.
+my %required_targets =
+  (
+   'all'          => 1,
+   'dvi'         => 1,
+   'info'        => 1,
+   'install-info' => 1,
+   'install'      => 1,
+   'install-data' => 1,
+   'install-exec' => 1,
+   'uninstall'    => 1,
+
+   # FIXME: Not required, temporary hacks.
+   # Well, actually they are sort of required: the -recursive
+   # targets will run them anyway...
+   'dvi-am'          => 1,
+   'info-am'         => 1,
+   'install-data-am' => 1,
+   'install-exec-am' => 1,
+   'installcheck-am' => 1,
+   'uninstall-am' => 1,
+
+   'install-man' => 1,
+  );
 
-     # Note that we do not handle this one, because it is still run
-     # from AM_CONFIG_HEADER.  So we deal with it specially in
-     # scan_configure.
-     # 'AC_CONFIG_HEADER', "use \`AM_CONFIG_HEADER'",
-
-     'fp_C_PROTOTYPES', "use \`AM_C_PROTOTYPES'",
-     'fp_PROG_CC_STDC', "use \`AM_PROG_CC_STDC'",
-     'fp_PROG_INSTALL', "use \`AC_PROG_INSTALL'",
-     'fp_WITH_DMALLOC', "use \`AM_WITH_DMALLOC'",
-     'fp_WITH_REGEX', "use \`AM_WITH_REGEX'",
-     'gm_PROG_LIBTOOL', "use \`AM_PROG_LIBTOOL'",
-     'jm_MAINTAINER_MODE', "use \`AM_MAINTAINER_MODE'",
-     'md_TYPE_PTRDIFF_T', "use \`AM_TYPE_PTRDIFF_T'",
-     'ud_PATH_LISPDIR', "use \`AM_PATH_LISPDIR'",
+
 
-     # Now part of autoconf proper, under a different name.
-     'AM_FUNC_FNMATCH', "use \`AC_FUNC_FNMATCH'",
-     'fp_FUNC_FNMATCH', "use \`AC_FUNC_FNMATCH'",
-     'AM_SANITY_CHECK_CC', "automatically done by \`AC_PROG_CC'",
-     'AM_PROG_INSTALL', "use \`AC_PROG_INSTALL'",
-     'AM_EXEEEXT', "use \`AC_EXEEXT'",
-     'AM_CYGWIN32', "use \`AC_CYGWIN32'",
-     'AM_MINGW32', "use \`AC_MINGW32'",
+################################################################
 
-# These aren't quite obsolete.
-#      'md_PATH_PROG',
-     );
+## ------------------------------------------ ##
+## Variables reset by &initialize_per_input.  ##
+## ------------------------------------------ ##
 
-# Regexp to match the above macros.
-$obsolete_rx = '(' . join ('|', keys %obsolete_macros) . ')';
+# Basename and relative dir of the input file.
+my $am_file_name;
+my $am_relative_dir;
 
-# This maps extensions onto language names.
-%extension_map = ();
+# Same but wrt Makefile.in.
+my $in_file_name;
+my $relative_dir;
 
-# This maps languages names onto properties.
-%language_map = ();
+# These two variables are used when generating each Makefile.in.
+# They hold the Makefile.in until it is ready to be printed.
+my $output_rules;
+my $output_vars;
+my $output_trailer;
+my $output_all;
+my $output_header;
 
-
+# Suffixes found during a run.
+my @suffixes;
 
-# Initialize global constants and our list of languages that are
-# internally supported.
-&initialize_global_constants;
-
-&register_language ('c', '', 1,
-                   'c');
-&register_language ('cxx', 'CXXLINK', 0,
-                   'c++', 'cc', 'cpp', 'cxx', 'C');
-&register_language ('objc', 'OBJCLINK', 0,
-                    'm');
-&register_language ('header', '', 0,
-                   'h', 'H', 'hxx', 'h++', 'hh', 'hpp', 'inc');
-&register_language ('yacc', '', 1,
-                   'y');
-&register_language ('yaccxx', 'CXXLINK', 0,
-                   'y++', 'yy', 'yxx');
-&register_language ('lex', '', 1,
-                   'l');
-&register_language ('lexxx', 'CXXLINK', 0,
-                   'l++', 'll', 'lxx');
-&register_language ('asm', '', 0,
-                   's', 'S');
-&register_language ('f77', 'F77LINK', 0,
-                   'f', 'for', 'f90');
-&register_language ('ppf77', 'F77LINK', 0,
-                   'F');
-&register_language ('ratfor', 'F77LINK', 0,
-                   'r');
+# Handling the variables.
+#
+# For a $VAR:
+# - $var_value{$VAR}{$COND} is its value associated to $COND,
+# - $var_line{$VAR} is where it has been defined,
+# - $var_comment{$VAR} are the comments associated to it.
+# - $var_type{$VAR} is how it has been defined (`', `+', or `:'),
+# - $var_is_am{$VAR} is true if the variable is owned by Automake.
+my %var_value;
+my %var_line;
+my %var_comment;
+my %var_type;
+my %var_is_am;
+
+# This holds a 1 if a particular variable was examined.
+my %content_seen;
+
+# This holds the names which are targets.  These also appear in
+# %contents.
+my %targets;
+
+# Same as %VAR_VALUE, but for targets.
+my %target_conditional;
+
+# This is the conditional stack.
+my @cond_stack;
+
+# This holds the set of included files.
+my @include_stack;
+
+# This holds a list of directories which we must create at `dist'
+# time.  This is used in some strange scenarios involving weird
+# AC_OUTPUT commands.
+my %dist_dirs;
+
+# List of dependencies for the obvious targets.
+my @all;
+my @check;
+my @check_tests;
+
+# Holds the dependencies of targets which dependencies are factored.
+# Typically, `.PHONY' will appear in plenty of *.am files, but must
+# be output once.  Arguably all pure dependencies could be subject
+# to this factorization, but it is not unpleasant to have paragraphs
+# in Makefile: keeping related stuff altogether.
+my %dependencies;
+
+# Holds the factored actions.  Tied to %DEPENDENCIES, i.e., filled
+# only when keys exists in %DEPENDENCIES.
+my %actions;
+
+# A list of files deleted by `maintainer-clean'.
+my @maintainer_clean_files;
+
+# Keys in this hash table are object files or other files in
+# subdirectories which need to be removed.  This only holds files
+# which are created by compilations.  The value in the hash indicates
+# when the file should be removed.
+my %compile_clean_files;
+
+# Value of `$(SOURCES)', used by tags.am.
+my @sources;
+# Sources which go in the distribution.
+my @dist_sources;
+
+# This hash maps object file names onto their corresponding source
+# file names.  This is used to ensure that each object is created
+# by a single source file.
+my %object_map;
+
+# This keeps track of the directories for which we've already
+# created `.dirstamp' code.
+my %directory_map;
+
+# All .P files.
+my %dep_files;
+
+# Strictness levels.
+my $strictness;
+my $strictness_name;
+
+# Options from AUTOMAKE_OPTIONS.
+my %options;
+
+# Whether or not dependencies are handled.  Can be further changed
+# in handle_options.
+my $use_dependencies;
+
+# This is a list of all targets to run during "make dist".
+my @dist_targets;
+
+# Keys in this hash are the basenames of files which must depend
+# on ansi2knr.
+my %de_ansi_files;
+
+# This maps the source extension of a suffix rule to its
+# corresponding output extension.
+my %suffix_rules;
+
+# This is the name of the redirect `all' target to use.
+my $all_target;
+
+# This keeps track of which extensions we've seen (that we care
+# about).
+my %extension_seen;
 
+# This is random scratch space for the language finish functions.
+# Don't randomly overwrite it; examine other uses of keys first.
+my %language_scratch;
 
-# Parse command line.
-&parse_arguments (@ARGV);
+# We keep track of which objects need special (per-executable)
+# handling on a per-language basis.
+my %lang_specific_files;
 
-# Do configure.in scan only once.
-&scan_configure;
+# This is set when `handle_dist' has finished.  Once this happens,
+# we should no longer push on dist_common.
+my $handle_dist_run;
 
-die "automake: no \`Makefile.am' found or specified\n"
-    if ! @input_files;
+# Used to store a set of linkers needed to generate the sources currently
+# under consideration.
+my %linkers_used;
 
-# If --generate-deps was given, we don't do anything else
-#
-if ($generate_deps)
+# True if we need `LINK' defined.  This is a hack.
+my $need_link;
+
+# This is the list of such variables to output.
+# FIXME: Might be useless actually.
+my @var_list;
+
+# Was get_object_extension run?
+# FIXME: This is a hack. a better switch should be found.
+my $get_object_extension_was_run;
+
+
+## --------------------------------- ##
+## Forward subroutine declarations.  ##
+## --------------------------------- ##
+sub register_language (%);
+sub file_contents_internal ($$%);
+
+
+# &initialize_per_input ()
+# ------------------------
+# (Re)-Initialize per-Makefile.am variables.
+sub initialize_per_input ()
 {
-    die "automake: Must specify --include-deps (or -i) when generating\n"
-       if $use_dependencies;
-    die "automake: Must provide --build-dir when generating\n"
-       if ! $build_directory;
-    die "automake: Must provide --srcdir-name when generating\n"
-       if ! $srcdir_name;
+    $am_file_name = '';
+    $am_relative_dir = '';
+
+    $in_file_name = '';
+    $relative_dir = '';
+
+    $output_rules = '';
+    $output_vars = '';
+    $output_trailer = '';
+    $output_all = '';
+    $output_header = '';
+
+    @suffixes = ();
+
+    %var_value = ();
+    %var_line = ();
+    %var_comment = ();
+    %var_type = ();
+    %var_is_am = ();
+
+    %content_seen = ();
+
+    %targets = ();
+
+    %target_conditional = ();
+
+    @cond_stack = ();
+
+    @include_stack = ();
+
+    $relative_dir = '';
+
+    $am_relative_dir = '';
+
+    %dist_dirs = ();
+
+    @all = ();
+    @check = ();
+    @check_tests = ();
+
+    %dependencies =
+      (
+       # Texinfoing.
+       'dvi'      => [],
+       'dvi-am'   => [],
+       'info'     => [],
+       'info-am'  => [],
+
+       # Installing/uninstalling.
+       'install-data-am'      => [],
+       'install-exec-am'      => [],
+       'uninstall-am'         => [],
+
+       'install-man'         => [],
+       'uninstall-man'       => [],
+
+       'install-info'         => [],
+       'install-info-am'      => [],
+       'uninstall-info'       => [],
+
+       'installcheck-am'      => [],
+
+       # Cleaning.
+       'clean-am'             => [],
+       'mostlyclean-am'       => [],
+       'maintainer-clean-am'  => [],
+       'distclean-am'         => [],
+       'clean'                => [],
+       'mostlyclean'          => [],
+       'maintainer-clean'     => [],
+       'distclean'            => [],
+
+       # Tarballing.
+       'dist-all'             => [],
+
+       # Phoning.
+       '.PHONY'               => []
+      );
+    %actions = ();
 
-    open (GDEP, ">$output_directory/.dep_segment")
-       || die "automake: Could not open `$output_directory/.dep_segment': 
$!\n";
+    @maintainer_clean_files = ();
+
+    @sources = ();
+    @dist_sources = ();
+
+    %object_map = ();
+
+    %directory_map = ();
+
+    %dep_files = ();
+
+    $strictness = $default_strictness;
+    $strictness_name = $default_strictness_name;
+
+    %options = ();
+
+    $use_dependencies = $cmdline_use_dependencies;
+
+    @dist_targets = ();
+
+    %de_ansi_files = ();
+
+    %suffix_rules = ();
+
+    $all_target = '';
+
+    %extension_seen = ();
+
+    %language_scratch = ();
+
+    %lang_specific_files = ();
 
-    &handle_dependencies;
-    print GDEP $output_rules;
+    $handle_dist_run = 0;
 
-    close(GDEP);
-    exit $exit_status;
+    $need_link = 0;
+
+    @var_list = ();
+
+    $get_object_extension_was_run = 0;
+
+    %compile_clean_files = ();
 }
 
+
+################################################################
+
+# Initialize our list of languages that are internally supported.
+
+# C.
+register_language ('name' => 'c',
+                  'Name' => 'C',
+                  'config_vars' => ['CC'],
+                  'ansi' => 1,
+                  'autodep' => '',
+                  'flags' => 'CFLAGS',
+                  'compiler' => 'COMPILE',
+                  'compile' => '$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) 
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)',
+                  'lder' => 'CCLD',
+                  'ld' => '$(CC)',
+                  'linker' => 'LINK',
+                  'link' => '$(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) 
$(LDFLAGS) -o $@',
+                  'compile_flag' => '-c',
+                  'extensions' => ['c'],
+                  '_finish' => \&lang_c_finish);
+
+# C++.
+register_language ('name' => 'cxx',
+                  'Name' => 'C++',
+                  'config_vars' => ['CXX'],
+                  'linker' => 'CXXLINK',
+                  'link' => '$(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) 
$(LDFLAGS) -o $@',
+                  'autodep' => 'CXX',
+                  'flags' => 'CXXFLAGS',
+                  'compile' => '$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) 
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)',
+                  'compiler' => 'CXXCOMPILE',
+                  'compile_flag' => '-c',
+                  'output_flag' => '-o',
+                  'lder' => 'CXXLD',
+                  'ld' => '$(CXX)',
+                  'pure' => 1,
+                  'extensions' => ['c++', 'cc', 'cpp', 'cxx', 'C']);
+
+# Objective C.
+register_language ('name' => 'objc',
+                  'Name' => 'Objective C',
+                  'config_vars' => ['OBJC'],
+                  'linker' => 'OBJCLINK',,
+                  'link' => '$(OBJCLD) $(AM_OBJCFLAGS) $(OBJCFLAGS) 
$(AM_LDFLAGS) $(LDFLAGS) -o $@',
+                  'autodep' => 'OBJC',
+                  'flags' => 'OBJCFLAGS',
+                  'compile' => '$(OBJC) $(DEFS) $(DEFAULT_INCLUDES) 
$(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_OBJCFLAGS) $(OBJCFLAGS)',
+                  'compiler' => 'OBJCCOMPILE',
+                  'compile_flag' => '-c',
+                  'output_flag' => '-o',
+                  'lder' => 'OBJCLD',
+                  'ld' => '$(OBJC)',
+                  'pure' => 1,
+                  'extensions' => ['m']);
+
+# Headers.
+register_language ('name' => 'header',
+                  'Name' => 'Header',
+                  'extensions' => ['h', 'H', 'hxx', 'h++', 'hh', 'hpp', 'inc'],
+                  # Nothing to do.
+                  '_finish' => sub { });
+
+# Yacc (C & C++).
+register_language ('name' => 'yacc',
+                  'Name' => 'Yacc',
+                  'config_vars' => ['YACC'],
+                  'flags' => 'YFLAGS',
+                  'define_flag' => 0,
+                  'compile' => '$(YACC) $(YFLAGS) $(AM_YFLAGS)',
+                  'compiler' => 'YACCCOMPILE',
+                  'extensions' => ['y'],
+                  'rule_file' => 'yacc',
+                  '_finish' => \&lang_yacc_finish,
+                  '_target_hook' => \&lang_yacc_target_hook);
+register_language ('name' => 'yaccxx',
+                  'Name' => 'Yacc (C++)',
+                  'config_vars' => ['YACC'],
+                  'rule_file' => 'yacc',
+                  'flags' => 'YFLAGS',
+                  'define_flag' => 0,
+                  'compiler' => 'YACCCOMPILE',
+                  'compile' => '$(YACC) $(YFLAGS) $(AM_YFLAGS)',
+                  'extensions' => ['y++', 'yy', 'yxx', 'ypp'],
+                  '_finish' => \&lang_yacc_finish,
+                  '_target_hook' => \&lang_yacc_target_hook);
+
+# Lex (C & C++).
+register_language ('name' => 'lex',
+                  'Name' => 'Lex',
+                  'config_vars' => ['LEX'],
+                  'rule_file' => 'lex',
+                  'flags' => 'LFLAGS',
+                  'define_flag' => 0,
+                  'compile' => '$(LEX) $(LFLAGS) $(AM_LFLAGS)',
+                  'compiler' => 'LEXCOMPILE',
+                  'extensions' => ['l'],
+                  '_finish' => \&lang_lex_finish);
+register_language ('name' => 'lexxx',
+                  'Name' => 'Lex (C++)',
+                  'config_vars' => ['LEX'],
+                  'rule_file' => 'lex',
+                  'flags' => 'LFLAGS',
+                  'define_flag' => 0,
+                  'compile' => '$(LEX) $(LFLAGS) $(AM_LFLAGS)',
+                  'compiler' => 'LEXCOMPILE',
+                  'extensions' => ['l++', 'll', 'lxx', 'lpp'],
+                  '_finish' => \&lang_lex_finish);
+
+# Assembler.
+register_language ('name' => 'asm',
+                  'Name' => 'Assembler',
+                  'config_vars' => ['AS', 'ASFLAGS'],
+
+                  'flags' => 'ASFLAGS',
+                  # Users can set AM_ASFLAGS to includes DEFS, INCLUDES,
+                  # or anything else required.  They can also set AS.
+                  'compile' => '$(AS) $(AM_ASFLAGS) $(ASFLAGS)',
+                  'compiler' => 'ASCOMPILE',
+                  'compile_flag' => '-c',
+                  'extensions' => ['s', 'S'],
+
+                  # With assembly we still use the C linker.
+                  '_finish' => \&lang_c_finish);
+
+# Fortran 77
+register_language ('name' => 'f77',
+                  'Name' => 'Fortran 77',
+                  'linker' => 'F77LINK',
+                  'link' => '$(F77LD) $(AM_FFLAGS) $(FFLAGS) $(AM_LDFLAGS) 
$(LDFLAGS) -o $@',
+                  'flags' => 'FFLAGS',
+                  'compile' => '$(F77) $(AM_FFLAGS) $(FFLAGS)',
+                  'compiler' => 'F77COMPILE',
+                  'compile_flag' => '-c',
+                  'output_flag' => '-o',
+                  'lder' => 'F77LD',
+                  'ld' => '$(F77)',
+                  'pure' => 1,
+                  'extensions' => ['f', 'for', 'f90']);
+
+# Preprocessed Fortran 77
+#
+# The current support for preprocessing Fortran 77 just involves
+# passing `$(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS)
+# $(CPPFLAGS)' as additional flags to the Fortran 77 compiler, since
+# this is how GNU Make does it; see the `GNU Make Manual, Edition 0.51
+# for `make' Version 3.76 Beta' (specifically, from info file
+# `(make)Catalogue of Rules').
+#
+# A better approach would be to write an Autoconf test
+# (i.e. AC_PROG_FPP) for a Fortran 77 preprocessor, because not all
+# Fortran 77 compilers know how to do preprocessing.  The Autoconf
+# macro AC_PROG_FPP should test the Fortran 77 compiler first for
+# preprocessing capabilities, and then fall back on cpp (if cpp were
+# available).
+register_language ('name' => 'ppf77',
+                  'Name' => 'Preprocessed Fortran 77',
+                  'config_vars' => ['F77'],
+                  'linker' => 'F77LINK',
+                  'link' => '$(F77LD) $(AM_FFLAGS) $(FFLAGS) $(AM_LDFLAGS) 
$(LDFLAGS) -o $@',
+                  'lder' => 'F77LD',
+                  'ld' => '$(F77)',
+                  'flags' => 'FFLAGS',
+                  'compiler' => 'PPF77COMPILE',
+                  'compile' => '$(F77) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) 
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FFLAGS) $(FFLAGS)',
+                  'compile_flag' => '-c',
+                  'output_flag' => '-o',
+                  'pure' => 1,
+                  'extensions' => ['F']);
+
+# Ratfor.
+register_language ('name' => 'ratfor',
+                  'Name' => 'Ratfor',
+                  'config_vars' => ['F77'],
+                  'linker' => 'F77LINK',
+                  'link' => '$(F77LD) $(AM_FFLAGS) $(FFLAGS) $(AM_LDFLAGS) 
$(LDFLAGS) -o $@',
+                  'lder' => 'F77LD',
+                  'ld' => '$(F77)',
+                  'flags' => 'RFLAGS',
+                  # FIXME also FFLAGS.
+                  'compile' => '$(F77) $(AM_FFLAGS) $(FFLAGS) $(AM_RFLAGS) 
$(RFLAGS)',
+                  'compiler' => 'RCOMPILE',
+                  'compile_flag' => '-c',
+                  'output_flag' => '-o',
+                  'pure' => 1,
+                  'extensions' => ['r']);
+
+# Java via gcj.
+register_language ('name' => 'java',
+                  'Name' => 'Java',
+                  'config_vars' => ['GCJ'],
+                  'linker' => 'GCJLINK',
+                  'link' => '$(GCJLD) $(AM_GCJFLAGS) $(GCJFLAGS) $(AM_LDFLAGS) 
$(LDFLAGS) -o $@',
+                  'autodep' => 'GCJ',
+                  'flags' => 'GCJFLAGS',
+                  'compile' => '$(GCJ) $(AM_GCJFLAGS) $(GCJFLAGS)',
+                  'compiler' => 'GCJCOMPILE',
+                  'compile_flag' => '-c',
+                  'output_flag' => '-o',
+                  'lder' => 'GCJLD',
+                  'ld' => '$(GCJ)',
+                  'pure' => 1,
+                  'extensions' => ['java', 'class', 'zip', 'jar']);
+
+################################################################
+
+# Parse command line.
+&parse_arguments;
+
+# Do configure.ac scan only once.
+&scan_autoconf_files;
+
+die "$me: no `Makefile.am' found or specified\n"
+    if ! @input_files;
+
 # Now do all the work on each file.
+# This guy must be local otherwise it's private to the loop.
+use vars '$am_file';
+local $am_file;
 foreach $am_file (@input_files)
 {
     if (! -f ($am_file . '.am'))
     {
-       &am_error ("\`" . $am_file . ".am' does not exist");
+       &am_error ("`" . $am_file . ".am' does not exist");
     }
     else
     {
@@ -371,156 +1013,135 @@ foreach $am_file (@input_files)
     }
 }
 
-&am_conf_error ("AC_PROG_INSTALL must be used in configure.in")
-    if (! $seen_prog_install);
-
 exit $exit_status;
 
+# FIXME: This should be `my'ed next to its subs.
+use vars '%require_file_found';
 
 ################################################################
 
-# Parse command line.
-sub parse_arguments
+# prog_error (@PRINT-ME)
+# ----------------------
+# Signal a programming error, display PRINT-ME, and exit 1.
+sub prog_error (@)
 {
-    local (@arglist) = @_;
+    print STDERR "$me: programming error: @_\n";
+    exit 1;
+}
 
-    # Start off as gnu.
-    &set_strictness ('gnu');
 
-    while (@arglist)
-    {
-       if ($arglist[0] eq "--version")
-       {
-           print "automake (GNU $PACKAGE) $VERSION\n\n";
-           print "Copyright (C) 1999 Free Software Foundation, Inc.\n";
-           print "This is free software; see the source for copying 
conditions.  There is NO\n";
-           print "warranty; not even for MERCHANTABILITY or FITNESS FOR A 
PARTICULAR PURPOSE.\n\n";
-           print "Written by Tom Tromey <address@hidden>\n";
+# @RES
+# uniq (@LIST)
+# ------------
+# Return LIST with no duplicates.
+sub uniq (@)
+{
+   my @res = ();
+   my %seen = ();
+   foreach my $item (@_)
+     {
+       if (! defined $seen{$item})
+        {
+          $seen{$item} = 1;
+          push (@res, $item);
+        }
+     }
+   return @res;
+}
 
-           exit 0;
-       }
-       elsif ($arglist[0] eq "--help")
-       {
-           &usage;
-       }
-       elsif ($arglist[0] =~ /^--amdir=(.+)$/)
-       {
-           $am_dir = $1;
-       }
-       elsif ($arglist[0] eq '--amdir')
-       {
-           &require_argument (@arglist);
-           shift (@arglist);
-           $am_dir = $arglist[0];
-       }
-       elsif ($arglist[0] =~ /^--build-dir=(.+)$/)
-       {
-           # Must end in /.
-           $build_directory = $1 . '/';
-       }
-       elsif ($arglist[0] eq '--build-dir')
-       {
-           &require_argument (@arglist);
-           shift (@arglist);
-           # Must end in /.
-           $build_directory = $arglist[0] . '/';
-       }
-       elsif ($arglist[0] =~ /^--srcdir-name=(.+)$/)
-       {
-           $srcdir_name = $1;
-       }
-       elsif ($arglist[0] eq '--srcdir-name')
-       {
-           &require_argument (@arglist);
-           shift (@arglist);
-           $srcdir_name = $arglist[0];
-       }
-       elsif ($arglist[0] eq '--gnu')
-       {
-           &set_strictness ('gnu');
-       }
-       elsif ($arglist[0] eq '--gnits')
-       {
-           &set_strictness ('gnits');
-       }
-       elsif ($arglist[0] eq '--cygnus')
-       {
-           $cygnus_mode = 1;
-       }
-       elsif ($arglist[0] eq '--foreign')
-       {
-           &set_strictness ('foreign');
-       }
-       elsif ($arglist[0] eq '--include-deps' || $arglist[0] eq '-i')
-       {
-           $cmdline_use_dependencies = 0;
-       }
-       elsif ($arglist[0] eq '--generate-deps')
-       {
-           $generate_deps = 1;
-       }
-       elsif ($arglist[0] eq '--no-force')
-       {
-           $force_generation = 0;
-       }
-       elsif ($arglist[0] =~ /^--output-dir=(.*)$/)
-       {
-           # Set output directory.
-           $output_directory = $1;
-       }
-       elsif ($arglist[0] eq '--output-dir' || $arglist[0] eq '-o')
-       {
-           &require_argument (@arglist);
-           shift (@arglist);
-           $output_directory = $arglist[0];
-       }
-       elsif ($arglist[0] eq '--add-missing' || $arglist[0] eq '-a')
-       {
-           $add_missing = 1;
-       }
-       elsif ($arglist[0] eq '--copy' || $arglist[0] eq '-c')
-       {
-           $copy_missing = 1;
-       }
-       elsif ($arglist[0] eq '--verbose' || $arglist[0] eq '-v')
-       {
-           $verbose = 1;
-       }
-       elsif ($arglist[0] eq '--')
-       {
-           # Stop option processing.
-           shift (@arglist);
-           push (@input_files, @arglist);
-           last;
-       }
-       elsif ($arglist[0] =~ /^-/)
+# subst ($TEXT)
+# -------------
+# Return a configure-style substitution using the indicated text.
+# We do this to avoid having the substitutions directly in automake.in;
+# when we do that they are sometimes removed and this causes confusion
+# and bugs.
+sub subst ($)
+{
+    my ($text) = @_;
+    return '@' . $text . '@';
+}
+
+################################################################
+
+
+# $BACKPATH
+# &backname ($REL-DIR)
+# --------------------
+# If I `cd $REL-DIR', then to come back, I should `cd $BACKPATH'.
+# For instance `src/foo' => `../..'.
+# Works with non strictly increasing paths, i.e., `src/../lib' => `..'.
+sub backname ($)
+{
+    my ($file) = @_;
+    my @res;
+    foreach (split (/\//, $file))
+    {
+       next if $_ eq '.' || $_ eq '';
+       if ($_ eq '..')
        {
-           die "automake: unrecognized option -- \`$arglist[0]'\nTry 
\`automake --help' for more information.\n";
+           pop @res;
        }
        else
        {
-           # Handle $local:$input syntax.  Note that we only examine
-           # the first ":" file to see if it is automake input; the
-           # rest are just taken verbatim.  We still keep all the
-           # files around for dependency checking, however.
-           local ($local, $input, @rest) = split (/:/, $arglist[0]);
-           if (! $input)
-           {
-               $input = $local;
-           }
-           else
-           {
-               # Strip .in; later on .am is tacked on.  That is how
-               # the automake input file is found.  Maybe not the
-               # best way, but it is easy to explain.  FIXME: should
-               # be error if .in is missing.
-               $input =~ s/\.in$//;
-           }
-           push (@input_files, $input);
-           $output_files{$input} = join (':', ($local, @rest));
+           push (@res, '..');
        }
+    }
+    return join ('/', @res) || '.';
+}
 
-       shift (@arglist);
+################################################################
+
+# Parse command line.
+sub parse_arguments ()
+{
+    # Start off as gnu.
+    &set_strictness ('gnu');
+
+    use Getopt::Long;
+    Getopt::Long::config ("bundling");
+    Getopt::Long::GetOptions
+      (
+       'version'       => \&version,
+       'help'          => \&usage,
+       'libdir:s'      => \$libdir,
+       'gnu'           => sub { &set_strictness ('gnu'); },
+       'gnits'                 => sub { &set_strictness ('gnits'); },
+       'cygnus'        => \$cygnus_mode,
+       'foreign'       => sub { &set_strictness ('foreign'); },
+       'include-deps'  => sub { $cmdline_use_dependencies = 1; },
+       'i|ignore-deps'         => sub { $cmdline_use_dependencies = 0; },
+       'no-force'      => sub { $force_generation = 0; },
+       'f|force-missing'=> \$force_missing,
+       'o|output-dir:s'        => \$output_directory,
+       'a|add-missing'         => \$add_missing,
+       'c|copy'        => \$copy_missing,
+       'v|verbose'     => \$verbose,
+       'Werror'         => sub { $SIG{"__WARN__"} = sub { die $_[0] } },
+       'Wno-error'      => sub { $SIG{"__WARN__"} = 'DEFAULT' }
+      )
+       or exit 1;
+
+    foreach my $arg (@ARGV)
+    {
+      # Handle $local:$input syntax.  Note that we only examine the
+      # first ":" file to see if it is automake input; the rest are
+      # just taken verbatim.  We still keep all the files around for
+      # dependency checking, however.
+      my ($local, $input, @rest) = split (/:/, $arg);
+      if (! $input)
+       {
+         $input = $local;
+       }
+      else
+       {
+         # Strip .in; later on .am is tacked on.  That is how the
+         # automake input file is found.  Maybe not the best way, but
+         # it is easy to explain.
+         $input =~ s/\.in$//
+           or die "$me: invalid input file name `$arg'\n.";
+       }
+      push (@input_files, $input);
+      $output_files{$input} = join (':', ($local, @rest));
     }
 
     # Take global strictness from whatever we currently have set.
@@ -528,47 +1149,55 @@ sub parse_arguments
     $default_strictness_name = $strictness_name;
 }
 
-# Ensure argument exists, or die.
-sub require_argument
-{
-    local ($arg, @arglist) = @_;
-    die "automake: no argument given for option \`$arg'\n"
-       if ! @arglist;
-}
-
 ################################################################
 
 # Generate a Makefile.in given the name of the corresponding Makefile and
 # the name of the file output by config.status.
 sub generate_makefile
 {
-    local ($output, $makefile) = @_;
+    my ($output, $makefile) = @_;
+
+    # Reset all the Makefile.am related variables.
+    &initialize_per_input;
 
-    ($am_file_name = $makefile) =~ s/^.*\///;
-    $in_file_name = $am_file_name . '.in';
-    $am_file_name .= '.am';
+    # Name of input file ("Makefile.am") and output file
+    # ("Makefile.in").  These have no directory components.
+    $am_file_name = basename ($makefile) . '.am';
+    $in_file_name = basename ($makefile) . '.in';
 
     # $OUTPUT is encoded.  If it contains a ":" then the first element
     # is the real output file, and all remaining elements are input
     # files.  We don't scan or otherwise deal with these input file,
-    # other than to mark them as dependencies.  See scan_configure for
-    # details.
-    local (@secondary_inputs);
+    # other than to mark them as dependencies.  See
+    # &scan_autoconf_files for details.
+    my (@secondary_inputs);
     ($output, @secondary_inputs) = split (/:/, $output);
 
-    &initialize_per_input;
-    $relative_dir = &dirname ($output);
-    $am_relative_dir = &dirname ($makefile);
+    $relative_dir = dirname ($output);
+    $am_relative_dir = dirname ($makefile);
+
+    &read_main_am_file ($makefile . '.am');
+    if (&handle_options)
+    {
+       # Fatal error.  Just return, so we can continue with next file.
+       return;
+    }
+
+    # There are a few install-related variables that you should not define.
+    foreach my $var ('PRE_INSTALL', 'POST_INSTALL', 'NORMAL_INSTALL')
+    {
+       if (&variable_defined ($var) && !$var_is_am{$var})
+       {
+           &am_line_error ($var, "`$var' should not be defined");
+       }
+    }
+
+    &handle_libtool;
 
     # At the toplevel directory, we might need config.guess, config.sub
     # or libtool scripts (ltconfig and ltmain.sh).
     if ($relative_dir eq '.')
     {
-       # libtool requires some files.
-       &require_conf_file_with_conf_line ($libtool_line, $FOREIGN,
-                                          @libtoolize_files)
-           if $seen_libtool;
-
         # AC_CANONICAL_HOST and AC_CANONICAL_SYSTEM need config.guess and
         # config.sub.
         &require_config_file ($FOREIGN, 'config.guess', 'config.sub')
@@ -583,17 +1212,13 @@ sub generate_makefile
        # the generated makefile.
        &push_dist_common ($in_file_name, $am_file_name);
     }
+
     push (@sources, '$(SOURCES)')
        if &variable_defined ('SOURCES');
-    push (@objects, '$(OBJECTS)')
-       if &variable_defined ('OBJECTS');
 
-    &read_main_am_file ($makefile . '.am');
-    if (&handle_options)
-    {
-       # Fatal error.  Just return, so we can continue with next file.
-       return;
-    }
+    # Must do this after reading .am file.  See read_main_am_file to
+    # understand weird tricks we play there with variables.
+    &define_variable ('subdir', $relative_dir);
 
     # Check first, because we might modify some state.
     &check_cygnus;
@@ -607,19 +1232,24 @@ sub generate_makefile
     &handle_programs;
     &handle_scripts;
 
-    &handle_built_sources;
-
+    # This must run first so that the ANSI2KNR definition is generated
+    # before it is used by the _.c rules.  We have to do this because
+    # a variable which is used in a dependency must be defined before
+    # the target, or else make won't properly see it.
+    &handle_compile;
     # This must be run after all the sources are scanned.
-    &finish_languages;
+    &handle_languages;
 
-    # Re-init SOURCES and OBJECTS.  FIXME: other code shouldn't depend
-    # on this (but currently does).
-    $contents{'SOURCES'} = join (' ', @sources);
-    $contents{'OBJECTS'} = join (' ', @objects);
+    # Re-init SOURCES.  FIXME: other code shouldn't depend on this
+    # (but currently does).
+    macro_define ('SOURCES', 1, '', 'TRUE',
+                    join (' ', @sources), 'internal');
+    &define_pretty_variable ('DIST_SOURCES', '', @dist_sources);
 
     &handle_multilib;
     &handle_texinfo;
     &handle_emacs_lisp;
+    &handle_python;
     &handle_java;
     &handle_man_pages;
     &handle_data;
@@ -627,14 +1257,25 @@ sub generate_makefile
     &handle_subdirs;
     &handle_tags;
     &handle_minor_options;
-    &handle_dist ($makefile);
-    &handle_dependencies;
     &handle_tests;
+
+    # This must come after most other rules.
+    &handle_dist ($makefile);
+
     &handle_footer;
-    &handle_merge_targets ($output);
+    &do_check_merge_target;
+    &handle_all ($output);
+
+    # FIXME: Gross!
+    if (&variable_defined('lib_LTLIBRARIES') &&
+       &variable_defined('bin_PROGRAMS'))
+    {
+       $output_rules .= "install-binPROGRAMS: install-libLTLIBRARIES\n\n";
+    }
+
     &handle_installdirs;
     &handle_clean;
-    &handle_phony;
+    &handle_factored_dependencies;
 
     &check_typos;
 
@@ -643,13 +1284,13 @@ sub generate_makefile
        mkdir ($output_directory . '/' . $am_relative_dir, 0755);
     }
 
-    local ($out_file) = $output_directory . '/' . $makefile . ".in";
+    my ($out_file) = $output_directory . '/' . $makefile . ".in";
     if (! $force_generation && -e $out_file)
     {
-       local ($am_time) = (stat ($makefile . '.am'))[9];
-       local ($in_time) = (stat ($out_file))[9];
+       my ($am_time) = (stat ($makefile . '.am'))[9];
+       my ($in_time) = (stat ($out_file))[9];
        # FIXME: should cache these times.
-       local ($conf_time) = (stat ('configure.in'))[9];
+       my ($conf_time) = (stat ($configure_ac))[9];
        # FIXME: how to do unsigned comparison?
        if ($am_time < $in_time || $am_time < $conf_time)
        {
@@ -658,31 +1299,105 @@ sub generate_makefile
        }
        if (-f 'aclocal.m4')
        {
-           local ($acl_time) = (stat _)[9];
+           my ($acl_time) = (stat _)[9];
            return if ($am_time < $acl_time);
        }
     }
 
-    if (! open (GM_FILE, "> " . $out_file))
+    my $gm_file = new IO::File "> $out_file";
+    if (! $gm_file)
     {
-       warn "automake: ${am_file}.in: cannot write: $!\n";
+       warn "$me: ${am_file}.in: cannot write: $!\n";
        $exit_status = 1;
        return;
     }
-    print "automake: creating ", $makefile, ".in\n" if $verbose;
+    print "$me: creating ", $makefile, ".in\n" if $verbose;
 
-    print GM_FILE $output_vars;
-    # We make sure that `all:' is the first target.
-    print GM_FILE $output_all;
-    print GM_FILE $output_header;
-    print GM_FILE $output_rules;
-    print GM_FILE $output_trailer;
+    # In case we're running under MSWindows, don't write with CRLF
+    # (as it causes problems for the dependency-file extraction in
+    # AM_OUTPUT_DEPENDENCY_COMMANDS).
+    binmode $gm_file;
 
-    close (GM_FILE);
+    print $gm_file $output_vars;
+    # We make sure that `all:' is the first target.
+    print $gm_file $output_all;
+    print $gm_file $output_header;
+    print $gm_file $output_rules;
+    print $gm_file $output_trailer;
+
+    if (! $gm_file->close)
+      {
+       warn "$me: $am_file.in: cannot close: $!\n";
+       $exit_status = 1;
+       return;
+      }
 }
 
 ################################################################
 
+# A helper which handles the logic of requiring a version number in
+# AUTOMAKE_OPTIONS.  Return 1 on error, 0 on success.
+sub version_check ($$$$)
+{
+    my ($rmajor, $rminor, $ralpha, $rfork) = ($1, $2, $3, $4);
+
+    &prog_error ("version is incorrect: $VERSION")
+       if $VERSION !~ /(\d+)\.(\d+)([a-z]?)-?([A-Za-z0-9]+)?/;
+
+    my ($tmajor, $tminor, $talpha, $tfork) = ($1, $2, $3, $4);
+
+    $rfork ||= '';
+    $tfork ||= '';
+
+    my $rminorminor = 0;
+    my $tminorminor = 0;
+
+    # Some versions were labelled like `1.4-p3a'.  This is the same as
+    # an alpha release labelled `1.4.3a'.  However, a version like
+    # `1.4g' is the same as `1.4.99g'.  Yes, this sucks.  Moral:
+    # always listen to the users.
+    if ($rfork =~ /p([0-9]+)([a-z]?)/)
+    {
+       $rminorminor = $1;
+       # `1.4a-p3b' never existed.  But we'll accept it anyway.
+       $ralpha = $ralpha || $2 || '';
+       $rfork = '';
+    }
+    if ($tfork =~ /p([0-9]+)([a-z]?)/)
+    {
+       $tminorminor = $1;
+       # `1.4a-p3b' never existed.  But we'll accept it anyway.
+       $talpha = $talpha || $2 || '';
+       $tfork = '';
+    }
+
+    $rminorminor = 99 if $ralpha ne '' && $rminorminor == 0;
+    $tminorminor = 99 if $talpha ne '' && $tminorminor == 0;
+
+    # 2.0 is better than 1.0.
+    # 1.2 is better than 1.1.
+    # 1.2a is better than 1.2.
+    # If we require 3.4n-foo then we require something
+    # >= 3.4n, with the `foo' fork identifier.
+    # The $r* variables are what the user specified.
+    # The $t* variables denote automake itself.
+    if ($rmajor > $tmajor
+       || ($rmajor == $tmajor && $rminor > $tminor)
+       || ($rminor == $tminor && $rminor == $tminor
+           && $rminorminor > $tminorminor)
+       || ($rminor == $tminor && $rminor == $tminor
+           && $rminorminor == $tminorminor
+           && $ralpha gt $talpha)
+       || ($rfork ne '' && $rfork ne $tfork))
+    {
+       &am_line_error ('AUTOMAKE_OPTIONS',
+                       "require version $_, but have $VERSION");
+       return 1;
+    }
+
+    return 0;
+}
+
 # Handle AUTOMAKE_OPTIONS variable.  Return 1 on error, 0 otherwise.
 sub handle_options
 {
@@ -699,7 +1414,7 @@ sub handle_options
            {
                $cygnus_mode = 1;
            }
-           elsif (/ansi2knr/)
+           elsif (/^(.*\/)?ansi2knr$/)
            {
                # An option like "../lib/ansi2knr" is allowed.  With
                # no path prefix, we assume the required programs are
@@ -709,9 +1424,11 @@ sub handle_options
            }
            elsif ($_ eq 'no-installman' || $_ eq 'no-installinfo'
                   || $_ eq 'dist-shar' || $_ eq 'dist-zip'
-                  || $_ eq 'dist-tarZ' || $_ eq 'dejagnu'
-                  || $_ eq 'no-texinfo.tex'
-                  || $_ eq 'readme-alpha' || $_ eq 'check-news')
+                  || $_ eq 'dist-tarZ' || $_ eq 'dist-bzip2'
+                  || $_ eq 'dejagnu' || $_ eq 'no-texinfo.tex'
+                  || $_ eq 'readme-alpha' || $_ eq 'check-news'
+                  || $_ eq 'subdir-objects' || $_ eq 'nostdinc'
+                  || $_ eq 'no-exeext')
            {
                # Explicitly recognize these.
            }
@@ -719,37 +1436,18 @@ sub handle_options
            {
                $use_dependencies = 0;
            }
-           elsif (/([0-9]+)\.([0-9]+)([a-z])?/)
+           elsif (/(\d+)\.(\d+)([a-z]?)(-[A-Za-z0-9]+)?/)
            {
                # Got a version number.
-
-               local ($rmajor, $rminor, $ralpha) = ($1, $2, $3);
-
-               if ($VERSION !~ /([0-9]+)\.([0-9]+)([a-z])?/)
-               {
-                   print STDERR
-                       "automake: programming error: version is incorrect\n";
-                   exit 1;
-               }
-               local ($tmajor, $tminor, $talpha) = ($1, $2, $3);
-
-               # 2.0 is better than 1.0.
-               # 1.2 is better than 1.1.
-               # 1.2a is better than 1.2.
-               if ($rmajor > $tmajor
-                   || ($rmajor == $tmajor && $rminor > $tminor)
-                   || ($rminor == $tminor && $rminor == $tminor
-                       && $ralpha gt $talpha))
+               if (version_check ($1, $2, $3, $4))
                {
-                   &am_line_error ('AUTOMAKE_OPTIONS',
-                                   "require version $_, only have $VERSION");
                    return 1;
                }
            }
            else
            {
                &am_line_error ('AUTOMAKE_OPTIONS',
-                               "option \`" . $_ . "\' not recognized");
+                               "option `" . $_ . "\' not recognized");
            }
        }
     }
@@ -763,261 +1461,253 @@ sub handle_options
     return 0;
 }
 
+
+# get_object_extension ($OUT)
+# ---------------------------
 # Return object extension.  Just once, put some code into the output.
-# Argument is the name of the output file
+# OUT is the name of the output file
 sub get_object_extension
 {
-    local ($out) = @_;
+    my ($out) = @_;
 
     # Maybe require libtool library object files.
-    local ($extension) = '.o';
-    $extension = '.$(OBJEXT)' if $seen_objext;
+    my $extension = '.$(OBJEXT)';
     $extension = '.lo' if ($out =~ /\.la$/);
 
-    if (! $included_generic_compile)
+    # Check for automatic de-ANSI-fication.
+    $extension = '$U' . $extension
+      if defined $options{'ansi2knr'};
+
+    $get_object_extension_was_run = 1;
+
+    return $extension;
+}
+
+
+# Call finish function for each language that was used.
+sub handle_languages
+{
+    if ($use_dependencies)
     {
-       # Boilerplate.
-       local ($xform) = '';
-       if (&variable_defined ('CONFIG_HEADER'))
+       # Include auto-dep code.  Don't include it if DEP_FILES would
+       # be empty.
+       if (&saw_sources_p (0) && keys %dep_files)
        {
-           local ($one_hdr);
-           foreach $one_hdr (split (' ', &variable_value ('CONFIG_HEADER')))
-           {
-               local ($var);
-               ($var = &dirname ($one_hdr)) =~ s/(\W)/\\$1/g;
-               $xform .= ' ' if $xform;
-               $xform .= '-I' . $var;
-           }
-       }
-       $xform = 's/address@hidden@/' . $xform . '/go;';
-       $output_vars .= &file_contents_with_transform ($xform,
-                                                      'comp-vars');
+           # Set location of depcomp.
+           &define_variable ('depcomp', "\$(SHELL) $config_aux_dir/depcomp");
 
-       $xform = (($use_dependencies
-                  ? 's/^NOTDEPEND.*$//;'
-                  : 's/^NOTDEPEND//;')
-                 . ($seen_objext ? 's/^OBJEXT//;' : 's/^OBJEXT.*$//;'));
-       $output_rules .= &file_contents_with_transform ($xform, 'compile');
+           &require_config_file ($FOREIGN, 'depcomp');
 
-       &push_phony_cleaners ('compile');
+           my @deplist = sort keys %dep_files;
 
-       # If using X, include some extra variable definitions.  NOTE
-       # we don't want to force these into CFLAGS or anything,
-       # because not all programs will necessarily use X.
-       if ($seen_path_xtra)
-       {
-           local ($var);
-           foreach $var ('X_CFLAGS', 'X_LIBS', 'X_EXTRA_LIBS', 'X_PRE_LIBS')
-           {
-               &define_configure_variable ($var);
-           }
-       }
+           # We define this as a conditional variable because BSD
+           # make can't handle backslashes for continuing comments on
+           # the following line.
+           &define_pretty_variable ('DEP_FILES', 'AMDEP_TRUE', @deplist);
 
-       push (@suffixes, '.c', '.o', '.S', '.s');
-       push (@suffixes, '.obj') if $seen_objext;
-       push (@clean, 'compile');
+           # Generate each `include' individually.  Irix 6 make will
+           # not properly include several files resulting from a
+           # variable expansion; generating many separate includes
+           # seems safest.
+           $output_rules .= "\n";
+           foreach my $iter (@deplist)
+           {
+               $output_rules .= (subst ('AMDEP_TRUE')
+                                 . subst ('am__include')
+                                 . ' '
+                                 . subst ('am__quote')
+                                 . $iter
+                                 . subst ('am__quote')
+                                 . "\n");
+           }
 
-       $included_generic_compile = 1;
+           $output_rules .= &file_contents ('depend');
+       }
     }
+    else
+    {
+       &define_variable ('depcomp', '');
+    }
+
+    my %done;
 
-    if ($seen_libtool && ! $included_libtool_compile)
+    # Is the c linker needed?
+    my $needs_c = 0;
+    foreach my $ext (sort keys %extension_seen)
     {
-       # Output the libtool compilation rules.
-       $output_rules .=
-           &file_contents_with_transform
-               ($use_dependencies ? 's/^NOTDEPEND.*$//;' : 's/^NOTDEPEND//;',
-                'libtool');
+       next unless $extension_map{$ext};
 
-       &push_phony_cleaners ('libtool');
+       my $lang = $languages{$extension_map{$ext}};
 
-       push (@suffixes, '.lo');
-       push (@clean, 'libtool');
+       my $rule_file = $lang->rule_file || 'depend2';
 
-       $included_libtool_compile = 1;
-    }
+       # Get information on $LANG.
+       my $pfx = $lang->autodep;
+       my $fpfx = ($pfx eq '') ? 'CC' : $pfx;
 
-    # Check for automatic de-ANSI-fication.
-    if (defined $options{'ansi2knr'})
-    {
-       $extension = '$U' . $extension;
-       if (! $included_knr_compile)
+       my $AMDEP = (($use_dependencies && $lang->autodep ne 'no')
+                    ? 'AMDEP' : 'FALSE');
+
+       my %transform = ('EXT'     => $ext,
+                        'PFX'     => $pfx,
+                        'FPFX'    => $fpfx,
+                        'LIBTOOL' => $seen_libtool,
+                        'AMDEP'   => $AMDEP,
+                        '-c'      => $lang->compile_flag || '',
+                        'MORE-THAN-ONE'
+                                  => (count_files_for_language ($lang->name) > 
1));
+
+       # Generate the appropriate rules for this extension.
+       if (($use_dependencies && $lang->autodep ne 'no')
+           || defined $lang->compile)
        {
-           if (! $am_c_prototypes)
-           {
-               &am_line_error ('AUTOMAKE_OPTIONS',
-                               "option \`ansi2knr' in use but 
\`AM_C_PROTOTYPES' not in configure.in");
-               &keyed_aclocal_warning ('AM_C_PROTOTYPES');
-               # Only give this error once.
-               $am_c_prototypes = 1;
-           }
+           # Some C compilers don't support -c -o.  Use it only if really
+           # needed.
+           my $output_flag = $lang->output_flag || '';
+           $output_flag = '-o'
+             if (! $output_flag
+                 && $lang->flags eq 'CFLAGS'
+                 && defined $options{'subdir-objects'});
 
-           # Only require ansi2knr files if they should appear in
-           # this directory.
-           if ($options{'ansi2knr'} eq 'ansi2knr')
-           {
-               &require_file_with_line ('AUTOMAKE_OPTIONS', $FOREIGN,
-                                        'ansi2knr.c', 'ansi2knr.1');
-               $output_rules .= &file_contents ('kr-extra');
-               push (@clean, 'krextra');
-               &push_phony_cleaners ('krextra');
-           }
+           # FIXME: this is a temporary hack to compute a possible
+           # derived extension.  This is not used by depend2.am.
+           (my $der_ext = $ext) =~ tr/yl/cc/;
 
-           # Generate rules to build ansi2knr.  If it is in some
-           # other directory, then generate dependencies but have the
-           # rule just run elsewhere.
-           $objext = $seen_objext ? ".$(OBJEXT)" : ".o";
-           $output_rules .= ($options{'ansi2knr'} . ': '
-                             . $options{'ansi2knr'} . $objext . "\n");
-           if ($options{'ansi2knr'} eq 'ansi2knr')
-           {
-               $output_rules .= ("\t\$(LINK) ansi2knr" . $objext
-                                 . " \$(LIBS)\n"
-                                 . "ansi2knr" . $objext
-                                 . ": \$(CONFIG_HEADER)\n\n");
-           }
-           else
-           {
-               $output_rules .= ("\tcd " . &dirname ($options{'ansi2knr'})
-                                 . " && \$(MAKE) \$(AM_MAKEFLAGS) "
-                                 . "ansi2knr\n\n");
-               # This is required for non-GNU makes.
-               $output_rules .= ($options{'ansi2knr'} . $objext . ":\n");
-               $output_rules .= ("\tcd " . &dirname ($options{'ansi2knr'})
-                                 . " && \$(MAKE) \$(AM_MAKEFLAGS)"
-                                 . " ansi2knr" . $objext . "\n\n");
-           }
+           # Another yacc/lex hack.
+           my $destfile = '$*.' . $der_ext;
 
-           # Make sure ansi2knr can be found: if no path specified,
-           # specify "./".
-           if ($options{'ansi2knr'} eq 'ansi2knr')
-           {
-               # Substitution from AM_C_PROTOTYPES.  This makes it be
-               # built only when necessary.
-               &define_configure_variable ('ANSI2KNR');
-               # ansi2knr needs to be built before subdirs, so unshift it.
-               unshift (@all, '$(ANSI2KNR)');
-           }
-           else
-           {
-               # Found in another directory.
-               &define_variable ("ANSI2KNR", $options{'ansi2knr'});
-           }
+           $output_rules .=
+             file_contents ($rule_file,
+                            %transform,
+                            'GENERIC'   => 1,
 
-           $output_rules .= &file_contents ('clean-kr');
+                            'DERIVED-EXT' => $der_ext,
 
-           push (@clean, 'kr');
-           &push_phony_cleaners ('kr');
+                            'BASE'      => '$*',
+                            'SOURCE'    => '$<',
+                            'OBJ'       => '$@',
+                            'OBJOBJ'    => '$@',
+                            'LTOBJ'     => '$@',
 
-           $included_knr_compile = 1;
+                            'COMPILE'   => '$(' . $lang->compiler . ')',
+                            'LTCOMPILE' => '$(LT' . $lang->compiler . ')',
+                            '-o'        => $output_flag);
        }
-    }
 
-    return $extension;
-}
-
-# Call finish function for each language that was used.
-sub finish_languages
-{
-    local ($ext, $name, $lang, %done);
-    local ($non_c) = 1;
-    foreach $ext (sort keys %extension_seen)
-    {
-       $lang = $extension_map{$ext};
-       next if defined $done{$lang};
-       $done{$lang} = 1;
-       $non_c = 0 if $lang !~ /(objc|cxx|f77|ratfor)$/;
+       # Now include code for each specially handled object with this
+       # language.
+       my %seen_files = ();
+       foreach my $file (@{$lang_specific_files{$lang->name}})
+       {
+           my ($derived, $source, $obj, $myext) = split (' ', $file);
 
-       # Compute the function name of the finisher and then call it.
-       $name = 'lang_' . $lang . '_finish';
-       do $name ();
-    }
+           # We might see a given object twice, for instance if it is
+           # used under different conditions.
+           next if defined $seen_files{$obj};
+           $seen_files{$obj} = 1;
 
-    # If the project is entirely C++ or entirely Fortran 77, don't
-    # bother with the C stuff.  But if anything else creeps in, then use
-    # it.
-    if (! $non_c || scalar keys %suffix_rules > 0)
-    {
-       local ($ltcompile, $ltlink) = &libtool_compiler;
+           my $flags = $lang->flags || '';
+           my $val = "${derived}_${flags}";
 
-       &define_configure_variable ('CFLAGS');
-       &define_variable ('COMPILE',
-                         '$(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) 
$(AM_CFLAGS) $(CFLAGS)');
-       &define_variable ('LTCOMPILE',
-                         $ltcompile .
-                         '$(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) 
$(AM_CFLAGS) $(CFLAGS)')
-           if ($seen_libtool);
-       &define_variable ('CCLD', '$(CC)');
-       &define_variable ('LINK', $ltlink . '$(CCLD) $(AM_CFLAGS) $(CFLAGS) 
$(LDFLAGS) -o $@');
-    }
-}
+           &prog_error ("found $lang->name in handle_languages, but compiler 
not defined")
+               unless defined $lang->compile;
 
-# Output a rule to build from a YACC source.  The output from YACC is
-# compiled with C or C++, depending on the extension of the YACC file.
-sub output_yacc_build_rule
-{
-    local ($yacc_suffix, $use_ylwrap, $c_suffix) = @_;
+           (my $obj_compile = $lang->compile) =~ s/\(AM_$flags/\($val/;
+           my $obj_ltcompile = '$(LIBTOOL) --mode=compile ' . $obj_compile;
 
-    local ($suffix);
-    ($suffix = $yacc_suffix) =~ tr/y/c/;
-    push (@suffixes, $yacc_suffix, $suffix);
+           # We _need_ `-o' for per object rules.
+           my $output_flag = $lang->output_flag || '-o';
 
-    # Generate rule for c/c++.
-    $output_rules .= "$yacc_suffix$suffix:\n\t";
+           # Generate a transform which will turn suffix targets in
+           # depend2.am into real targets for the particular objects we
+           # are building.
+           $output_rules .=
+             file_contents ($rule_file,
+                            (%transform,
+                             'GENERIC'   => 0,
 
-    if ($use_ylwrap)
-    {
-       $output_rules .= ('$(SHELL) $(YLWRAP)'
-                         . ' "$(YACC)" $< y.tab.c $*' . $suffix
-                         . ' y.tab.h $*.h -- $(AM_YFLAGS) $(YFLAGS)');
-    }
-    else
-    {
-       $output_rules .= ('$(YACC) $(AM_YFLAGS) $(YFLAGS) $< && mv y.tab.c $*'
-                         . $suffix . "\n"
-                         . "\tif test -f y.tab.h; then \\\n"
-                         . "\tif cmp -s y.tab.h \$*.h; then rm -f y.tab.h; 
else mv y.tab.h \$*.h; fi; \\\n"
-                         . "\telse :; fi");
-    }
-    $output_rules .= "\n";
-}
+                             'BASE'      => $obj,
+                             'SOURCE'    => $source,
+                             # Use $myext and not `.o' here, in case
+                             # we are actually building a new source
+                             # file -- e.g. via yacc.
+                             'OBJ'       => "$obj$myext",
+                             'OBJOBJ'    => "$obj.obj",
+                             'LTOBJ'     => "$obj.lo",
 
-sub output_lex_build_rule
-{
-    local ($lex_suffix, $use_ylwrap) = @_;
-    local ($c_suffix);
+                             'COMPILE'   => $obj_compile,
+                             'LTCOMPILE' => $obj_ltcompile,
+                             '-o'        => $output_flag));
+       }
 
-    ($c_suffix = $lex_suffix) =~ tr/l/c/;
-    push (@suffixes, $lex_suffix);
-    &define_configure_variable ('LEX_OUTPUT_ROOT');
-    &define_configure_variable ('LEXLIB');
-    $output_rules .= "$lex_suffix$c_suffix:\n\t";
+       # The rest of the loop is done once per language.
+       next if defined $done{$lang};
+       $done{$lang} = 1;
 
-    if ($use_ylwrap)
-    {
-        # Is the $@ correct here?  If so, why not use it in the ylwrap
-        # build rule for yacc above?
-       $output_rules .= '$(SHELL) $(YLWRAP)'
-           . ' "$(LEX)" $< $(LEX_OUTPUT_ROOT).c $@ -- $(AM_LFLAGS) $(LFLAGS)';
-    }
-    else
-    {
-       $output_rules .= '$(LEX) $(AM_LFLAGS) $(LFLAGS) $< && mv 
$(LEX_OUTPUT_ROOT).c $@';
-    }
-    $output_rules .= "\n";
+       # Load the language dependent Makefile chunks.
+       my %lang = map { uc ($_) => 0 } keys %languages;
+       $lang{uc ($lang->name)} = 1;
+       $output_rules .= file_contents ('lang-compile', %transform, %lang);
+
+       # If the source to a program consists entirely of code from a
+       # `pure' language, for instance C++ for Fortran 77, then we
+       # don't need the C compiler code.  However if we run into
+       # something unusual then we do generate the C code.  There are
+       # probably corner cases here that do not work properly.
+       # People linking Java code to Fortran code deserve pain.
+       $needs_c ||= ! $lang->pure;
+
+       define_compiler_variable ($lang)
+         if ($lang->compile);
+
+       define_linker_variable ($lang)
+         if ($lang->link);
+
+       foreach my $var (@{$lang->config_vars})
+         {
+           am_error ($lang->Name
+                     . " source seen but `$var' not defined in"
+                     . " `$configure_ac'")
+             if !exists $configure_vars{$var};
+         }
+
+       # The compiler's flag must be a configure variable.
+       define_configure_variable ($lang->flags)
+           if defined $lang->flags && $lang->define_flag;
+
+       # Call the finisher.
+       $lang->finish;
+    }
+
+    # If the project is entirely C++ or entirely Fortran 77 (i.e., 1
+    # suffix rule was learned), don't bother with the C stuff.  But if
+    # anything else creeps in, then use it.
+    $needs_c = 1
+      if $need_link || scalar keys %suffix_rules > 1;
+
+    if ($needs_c)
+      {
+       if (! defined $done{$languages{'c'}})
+         {
+           &define_configure_variable ($languages{'c'}->flags);
+           &define_compiler_variable ($languages{'c'});
+         }
+       define_linker_variable ($languages{'c'});
+      }
 }
 
-
 # Check to make sure a source defined in LIBOBJS is not explicitly
 # mentioned.  This is a separate function (as opposed to being inlined
 # in handle_source_transform) because it isn't always appropriate to
 # do this check.
 sub check_libobjs_sources
 {
-    local ($one_file, $unxformed) = @_;
+    my ($one_file, $unxformed) = @_;
 
-    local ($prefix, $file, @files);
-    foreach $prefix ('', 'EXTRA_')
+    foreach my $prefix ('', 'EXTRA_', 'dist_', 'nodist_',
+                       'dist_EXTRA_', 'nodist_EXTRA_')
     {
+        my @files;
        if (&variable_defined ($prefix . $one_file . '_SOURCES'))
        {
            @files = &variable_value_as_list (($prefix
@@ -1033,105 +1723,302 @@ sub check_libobjs_sources
            next;
        }
 
-       foreach $file (@files)
+       foreach my $file (@files)
        {
            if (defined $libsources{$file})
            {
                &am_line_error ($prefix . $one_file . '_SOURCES',
-                               "automatically discovered file \`$file' should 
not be explicitly mentioned");
+                               "automatically discovered file `$file' should 
not be explicitly mentioned");
            }
        }
     }
 }
 
+
+# @OBJECTS
+# handle_single_transform_list ($VAR, $DERIVED, $OBJ, @FILES)
+# -----------------------------------------------------------
 # Does much of the actual work for handle_source_transform.
 # Arguments are:
-#   object extension (e.g., `$U.lo')
-#   list of source files to transform
-# Result is a list
-#   first element is name of linker to use (empty string for default linker)
-#   remaining elements are names of objects
-sub handle_single_transform_list
-{
-    local ($obj, @files) = @_;
-    local (@result) = ();
-    local ($nonansi_obj) = $obj;
-    $nonansi_obj =~ s/_//g;
-    local (%linkers_used) = ();
-    if (@files > 0)
-    {
-       # Turn sources into objects.
-       foreach (@files)
-       {
-           # Skip things that look like configure substitutions.
-           next if /address@hidden@$/;
+#   $DERIVED is the name of resulting executable or library
+#   $OBJ is the object extension (e.g., `$U.lo')
+#   @FILES is the list of source files to transform
+# Result is a list of the names of objects
+# %linkers_used will be updated with any linkers needed
+sub handle_single_transform_list ($$$@)
+{
+    my ($var, $derived, $obj, @files) = @_;
+    my @result = ();
+    my $nonansi_obj = $obj;
+    $nonansi_obj =~ s/\$U//g;
+
+    # Turn sources into objects.  We use a while loop like this
+    # because we might add to @files in the loop.
+    while (scalar @files > 0)
+    {
+       $_ = shift @files;
+
+        # Configure substitutions in _SOURCES variables are errors.
+        if (/address@hidden@$/)
+        {
+            &am_line_error ($var, "$var includes configure substitution `$_'");
+            next;
+        }
 
-           # We don't support source files in a subdirectory.  The
-           # reason is that we'd want to put the .o into a similar
-           # subdirectory, but this means finding a good way to make
-           # the directory.  Later.
-           if (/\//)
+        # If the source file is in a subdirectory then the `.o' is put
+        # into the current directory, unless the subdir-objects option
+        # is in effect.
+
+        # Split file name into base and extension.
+        next if ! /^(?:(.*)\/)?([^\/]*)\.(.*)$/;
+        my $full = $_;
+        my $directory = $1 || '';
+        my $base = $2;
+        my $extension = $3;
+
+        # We must generate a rule for the object if it requires its own flags.
+        my $renamed = 0;
+        my ($linker, $object);
+
+       # This records whether we've seen a derived source file (eg,
+       # yacc output).
+       my $derived_source = 0;
+
+       # This holds the `aggregate context' of the file we are
+       # currently examining.  If the file is compiled with
+       # per-object flags, then it will be the name of the object.
+       # Otherwise it will be `AM'.  This is used by the target hook
+       # language function.
+       my $aggregate = 'AM';
+
+        $extension = &derive_suffix ($extension);
+        my $lang;
+        if ($extension_map{$extension} &&
+            ($lang = $languages{$extension_map{$extension}}))
+       {
+            # Found the language, so see what it says.
+            &saw_extension ($extension);
+
+            # Note: computed subr call.  The language rewrite function
+            # should return one of the $LANG_* constants.  It could
+            # also return a list whose first value is such a constant
+            # and whose second value is a new source extension which
+            # should be applied.  This means this particular language
+            # generates another source file which we must then process
+            # further.
+            my $subr = 'lang_' . $lang->name . '_rewrite';
+            my ($r, $source_extension)
+               = & $subr ($directory, $base, $extension);
+            # Skip this entry if we were asked not to process it.
+            next if $r == $LANG_IGNORE;
+
+            # Now extract linker and other info.
+            $linker = $lang->linker;
+
+            my $this_obj_ext;
+           if (defined $source_extension)
            {
-               &am_error
-                   ("not supported: source file `$_' is in subdirectory");
-               next;
+               $this_obj_ext = '.' . $source_extension;
+               $derived_source = 1;
+           }
+           elsif ($lang->ansi)
+           {
+               $this_obj_ext = $obj;
+           }
+           else
+           {
+               $this_obj_ext = $nonansi_obj;
            }
+           $object = $base . $this_obj_ext;
 
-           # Split file name into base and extension.
-           local ($base, $extension, $linker, $object);
-           next if ! /^(.*)\.(.*)$/;
-           $base = $1;
-           $extension = $2;
+            if (defined $lang->flags
+                && &variable_defined ($derived . '_' . $lang->flags))
+            {
+                # We have a per-executable flag in effect for this
+                # object.  In this case we rewrite the object's
+                # name to ensure it is unique.  We also require
+                # the `compile' program to deal with compilers
+                # where `-c -o' does not work.
+
+                # We choose the name `DERIVED_OBJECT' to ensure
+                # (1) uniqueness, and (2) continuity between
+                # invocations.  However, this will result in a
+                # name that is too long for losing systems, in
+                # some situations.  So we provide _SHORTNAME to
+                # override.
+
+                my $dname = $derived;
+                if (&variable_defined ($derived . '_SHORTNAME'))
+                {
+                    # FIXME: should use the same conditional as
+                    # the _SOURCES variable.  But this is really
+                    # silly overkill -- nobody should have
+                    # conditional shortnames.
+                    $dname = &variable_value ($derived . '_SHORTNAME');
+                }
+                $object = $dname . '-' . $object;
+
+                &require_config_file ($FOREIGN, 'compile')
+                    if $lang->name eq 'c';
+
+                &prog_error ("$lang->name flags defined without compiler")
+                   if ! defined $lang->compile;
+
+                $renamed = 1;
+            }
 
-           local ($lang) = $extension_map{$extension};
-           if ($lang)
-           {
-               &saw_extension ($extension);
-               # Found the language, so see what it says.
-               local ($subr) = 'lang_' . $lang . '_rewrite';
-               # Note: computed subr call.
-               local ($r) = do $subr ($base, $extension);
-               # Skip this entry if we were asked not to process it.
-               next if ! $r;
-
-               # Now extract linker and other info.
-               $linker = $language_map{$lang . '-linker'};
-
-               if ($language_map{$lang . '-ansi-p'})
+            # If rewrite said it was ok, put the object into a
+            # subdir.
+            if ($r == $LANG_SUBDIR && $directory ne '')
+            {
+                $object = $directory . '/' . $object;
+            }
+
+            # If doing dependency tracking, then we can't print
+            # the rule.  If we have a subdir object, we need to
+            # generate an explicit rule.  Actually, in any case
+            # where the object is not in `.' we need a special
+            # rule.  The per-object rules in this case are
+            # generated later, by handle_languages.
+            if ($renamed || $directory ne '')
+            {
+                my $obj_sans_ext = substr ($object, 0,
+                                          - length ($this_obj_ext));
+               my $val = ("$full $obj_sans_ext "
+                          # Only use $this_obj_ext in the derived
+                          # source case because in the other case we
+                          # *don't* want $(OBJEXT) to appear here.
+                          . ($derived_source ? $this_obj_ext : '.o'));
+
+               # If we renamed the object then we want to use the
+               # per-executable flag name.  But if this is simply a
+               # subdir build then we still want to use the AM_ flag
+               # name.
+               if ($renamed)
                {
-                   $object = $base . $obj;
+                   $val = "$derived $val";
+                   $aggregate = $derived;
                }
                else
                {
-                   $object = $base . $nonansi_obj;
+                   $val = "AM $val";
                }
-           }
-           elsif ($extension =~ /^$source_suffix_pattern$/) 
-           {
-               # We just rewrite it.  Maybe we should do more.
-               $object = $base . '.' . $suffix_rules{$extension};
-               $linker = '';
-           }
-           else
-           {
-               # No error message here.  Used to have one, but it was
-               # very unpopular.
-               next;
-           }
 
-           $linkers_used{$linker} = 1;
+               # Each item on this list is a string consisting of
+               # four space-separated values: the derived flag prefix
+               # (eg, for `foo_CFLAGS', it is `foo'), the name of the
+               # source file, the base name of the output file, and
+               # the extension for the object file.
+                push (@{$lang_specific_files{$lang->name}}, $val);
+            }
+        }
+        elsif ($extension eq 'o')
+        {
+            # This is probably the result of a direct suffix rule.
+            # In this case we just accept the rewrite.  FIXME:
+            # this fails if we want libtool objects.
+            $object = $base . '.' . $extension;
+            $linker = '';
+        }
+        else
+        {
+            # No error message here.  Used to have one, but it was
+            # very unpopular.
+           # FIXME: we could potentially do more processing here,
+           # perhaps treating the new extension as though it were a
+           # new source extension (as above).  This would require
+           # more restructuring than is appropriate right now.
+            next;
+        }
 
-           push (@result, $object);
+        if (defined $object_map{$object})
+        {
+            if ($object_map{$object} ne $full)
+            {
+                &am_error ("object `$object' created by `$full' and 
`$object_map{$object}'");
+            }
+        }
+
+       # Let the language do some special magic if required.
+       $lang->target_hook ($aggregate, $object, $full);
 
-           # Transform .o or $o file into .P file (for automatic
-           # dependency code).
-           $dep_files{'.deps/' . $base . '.P'} = 1;
+       if ($derived_source)
+       {
+           &prog_error ("$lang->name has automatic dependency tracking")
+               if $lang->autodep ne 'no';
+           # Make sure this new source file is handled next.  That will
+           # make it appear to be at the right place in the list.
+           unshift (@files, $object);
+           # FIXME: nodist.
+           &push_dist_common ($object);
+           next;
        }
+
+        $linkers_used{$linker} = 1;
+
+        push (@result, $object);
+
+        if (! defined $object_map{$object})
+        {
+            my @dep_list = ();
+            $object_map{$object} = $full;
+
+            # If file is in subdirectory, we need explicit
+            # dependency.
+            if ($directory ne '' || $renamed)
+            {
+                push (@dep_list, $full);
+            }
+
+            # If resulting object is in subdir, we need to make
+            # sure the subdir exists at build time.
+            if ($object =~ /\//)
+            {
+                # FIXME: check that $DIRECTORY is somewhere in the
+                # project
+
+                # We don't allow `..' in object file names for
+                # *any* source, not just Java.  For Java it just
+                # doesn't make sense, but in general it is
+                # a problem because we can't pick a good name for
+                # the .deps entry.
+                if ($object =~ /(\/|^)\.\.\//)
+                {
+                    &am_error ("`$full' contains `..' component but should 
not");
+                }
+
+               # Make sure object is removed by `make mostlyclean'.
+               $compile_clean_files{$object} = $MOSTLY_CLEAN;
+
+                push (@dep_list, &require_build_directory ($directory));
+
+                # If we're generating dependencies, we also want
+                # to make sure that the appropriate subdir of the
+                # .deps directory is created.
+               push (@dep_list, &require_build_directory ('$(DEPDIR)/' . 
$directory))
+                   if ($use_dependencies);
+            }
+
+            &pretty_print_rule ($object . ':', "\t", @dep_list)
+                if scalar @dep_list > 0;
+        }
+
+        # Transform .o or $o file into .P file (for automatic
+        # dependency code).
+        if ($lang && $lang->autodep ne 'no')
+        {
+            my $depfile = $object;
+            $depfile =~ s/\.([^.]*)$/.P$1/;
+            $depfile =~ s/\$\(OBJEXT\)$/o/;
+            $dep_files{'$(DEPDIR)/' . $depfile} = 1;
+        }
     }
 
-    return (&resolve_linker (%linkers_used), @result);
+    return @result;
 }
 
+
+
 # Handle SOURCE->OBJECT transform for one program or library.
 # Arguments are:
 #   canonical (transformed) name of object to build
@@ -1143,9 +2030,9 @@ sub handle_source_transform
 {
     # one_file is canonical name.  unxformed is given name.  obj is
     # object extension.
-    local ($one_file, $unxformed, $obj) = @_;
+    my ($one_file, $unxformed, $obj) = @_;
 
-    local ($linker) = '';
+    my ($linker) = '';
 
     if (&variable_defined ($one_file . "_OBJECTS"))
     {
@@ -1155,135 +2042,118 @@ sub handle_source_transform
        return;
     }
 
-    local (@files, @result, $prefix, $temp);
-    foreach $prefix ('', 'EXTRA_')
-    {
-       @files = ();
-       local ($var) = $prefix . $one_file . "_SOURCES";
-       if (&variable_defined ($var))
-       {
-           push (@sources, '$(' . $prefix . $one_file . "_SOURCES)");
-           push (@objects, '$(' . $prefix . $one_file . "_OBJECTS)")
-               unless $prefix eq 'EXTRA_';
-           local (@conds) = &variable_conditions ($var);
-           if (! @conds)
-           {
-               @files = &variable_value_as_list ($var, '');
-           }
-           else
-           {
-               local ($cond);
-               foreach $cond (@conds)
-               {
-                   @files = &variable_value_as_list ($var, $cond);
-                   ($temp, @result) = &handle_single_transform_list ($obj,
-                                                                     @files);
-                   $linker = $temp if $linker eq '';
-
-                   # Define _OBJECTS conditionally.
-                   &define_pretty_variable ($one_file . '_OBJECTS', $cond,
-                                            @result)
-                       unless $prefix eq 'EXTRA_';
-               }
-
-               next;
-           }
-       }
-       elsif ($prefix eq '')
-       {
-           &define_variable ($one_file . "_SOURCES", $unxformed . ".c");
-           push (@sources, $unxformed . '.c');
-           push (@objects, $unxformed . $obj);
-           push (@files, $unxformed . '.c');
-       }
-
-       ($temp, @result) = &handle_single_transform_list ($obj, @files);
-       $linker = $temp if $linker eq '';
+    my %used_pfx = ();
+    my $needlinker;
+    %linkers_used = ();
+    foreach my $prefix ('', 'EXTRA_', 'dist_', 'nodist_',
+                       'dist_EXTRA_', 'nodist_EXTRA_')
+    {
+       my $var = $prefix . $one_file . "_SOURCES";
+       next
+         if !variable_defined ($var);
+
+       # We are going to define _OBJECTS variables using the prefix.
+       # Then we glom them all together.  So we can't use the null
+       # prefix here as we need it later.
+       my $xpfx = ($prefix eq '') ? 'am_' : $prefix;
+
+       # Keep track of which prefixes we saw.
+       $used_pfx{$xpfx} = 1
+         unless $prefix =~ /EXTRA_/;
+
+       push (@sources, '$(' . $prefix . $one_file . "_SOURCES)");
+       push (@dist_sources, '$(' . $prefix . $one_file . "_SOURCES)")
+         unless $prefix =~ /^nodist_/;
+       foreach my $cond (variable_conditions ($var))
+         {
+           my @files = &variable_value_as_list ($var, $cond);
+           my (@result) =
+             &handle_single_transform_list ($var, $one_file, $obj,
+                                            @files);
+           # If there are no files to compile, don't require a linker (yet).
+           $needlinker ||= "true" if @result;
+
+           # Define _OBJECTS conditionally.
+           &define_pretty_variable ($xpfx . $one_file . '_OBJECTS',
+                                    $cond, @result)
+             unless $prefix =~ /EXTRA_/;
+         }
+    }
+    if ($needlinker)
+    {
+       $linker ||= &resolve_linker (%linkers_used);
+    }
+
+    my @keys = sort keys %used_pfx;
+    if (scalar @keys == 0)
+    {
+       &define_variable ($one_file . "_SOURCES", $unxformed . ".c");
+       push (@sources, $unxformed . '.c');
+       push (@dist_sources, $unxformed . '.c');
+
+       %linkers_used = ();
+       my (@result) =
+         &handle_single_transform_list ($one_file . '_SOURCES',
+                                        $one_file, $obj,
+                                        "$unxformed.c");
+       $linker ||= &resolve_linker (%linkers_used);
        &define_pretty_variable ($one_file . "_OBJECTS", '', @result)
-           unless $prefix eq 'EXTRA_';
+    }
+    else
+    {
+       grep ($_ = '$(' . $_ . $one_file . '_OBJECTS)', @keys);
+       &define_pretty_variable ($one_file . '_OBJECTS', '', @keys);
     }
 
-    return $linker;
-}
-
-# Handle the BUILT_SOURCES variable.
-sub handle_built_sources
-{
-    return unless &variable_defined ('BUILT_SOURCES');
-
-    local (@sources) = &variable_value_as_list ('BUILT_SOURCES', 'all');
-    local ($s);
-    foreach $s (@sources)
+    # If we want to use `LINK' we must make sure it is defined.
+    if ($linker eq '')
     {
-       if (/address@hidden@$/)
-       {
-           # FIXME: is this really the right thing to do?
-           &am_line_error ('BUILT_SOURCES',
-                           "\`BUILT_SOURCES' should not contain a configure 
substitution");
-           last;
-       }
+       $need_link = 1;
     }
 
-    # We don't care about the return value of this function.  We just
-    # want to make sure to update %dep_files with the contents of
-    # BUILT_SOURCES.
-    &handle_single_transform_list (".o", @sources);
+    return $linker;
 }
 
+
+# handle_lib_objects ($XNAME, $VAR)
+# ---------------------------------
 # Special-case @ALLOCA@ and @LIBOBJS@ in _LDADD or _LIBADD variables.
 # Also, generate _DEPENDENCIES variable if appropriate.
 # Arguments are:
 #   transformed name of object being built, or empty string if no object
 #   name of _LDADD/_LIBADD-type variable to examine
-#   boolean (lex_seen) which is true if a lex source file was seen in this
-#     object.  valid only for LDADDs, not LIBADDs.
 # Returns 1 if LIBOBJS seen, 0 otherwise.
 sub handle_lib_objects
 {
-    local ($xname, $var, $lex_seen) = @_;
-    local ($ret);
+    my ($xname, $var) = @_;
 
-    die "automake: programming error 1 in handle_lib_objects\n"
+    &prog_error ("handle_lib_objects: $var undefined")
        if ! &variable_defined ($var);
 
-    die "automake: programming error 2 in handle_lib_objects\n"
-       if $lex_seen && $var =~ /LIBADD/;
-
-    local (@conds) = &variable_conditions ($var);
-    if (! @conds)
-    {
-       $ret = &handle_lib_objects_cond ($xname, $var, $lex_seen, '');
-    }
-    else
-    {
-       local ($cond);
-       $ret = 0;
-       foreach $cond (@conds)
-       {
-           if (&handle_lib_objects_cond ($xname, $var, $lex_seen, $cond))
-           {
-               $ret = 1;
-           }
-       }
-    }
-
+    my $ret = 0;
+    foreach my $cond (&variable_conditions ($var))
+      {
+       if (&handle_lib_objects_cond ($xname, $var, $cond))
+         {
+           $ret = 1;
+         }
+      }
     return $ret;
 }
 
 # Subroutine of handle_lib_objects: handle a particular condition.
 sub handle_lib_objects_cond
 {
-    local ($xname, $var, $lex_seen, $cond) = @_;
+    my ($xname, $var, $cond) = @_;
 
     # We recognize certain things that are commonly put in LIBADD or
     # LDADD.
-    local ($lsearch);
-    local (@dep_list) = ();
+    my @dep_list = ();
 
-    local ($seen_libobjs) = 0;
-    local ($flagvar) = 0;
+    my $seen_libobjs = 0;
+    my $flagvar = 0;
 
-    foreach $lsearch (&variable_value_as_list ($var, $cond))
+    foreach my $lsearch (&variable_value_as_list ($var, $cond))
     {
        # Skip -lfoo and -Ldir; these are explicitly allowed.
        next if $lsearch =~ /^-[lL]/;
@@ -1291,13 +2161,15 @@ sub handle_lib_objects_cond
        {
            if ($var =~ /^(.*)LDADD$/)
            {
-               &am_line_error ($var, "linker flags such as \`$lsearch' belong 
in \`${1}LDFLAGS");
+               # Skip -dlopen and -dlpreopen; these are explicitly allowed.
+               next if $lsearch =~ /^-dl(pre)?open$/;
+               &am_line_error ($var, "linker flags such as `$lsearch' belong 
in `${1}LDFLAGS");
            }
            else
            {
                # Only get this error once.
                $flagvar = 1;
-               &am_line_error ($var, "you cannot use linker flags such as 
\`$lsearch' in \`$var'");
+               &am_line_error ($var, "linker flags such as `$lsearch' belong 
in `${1}LDFLAGS");
            }
        }
 
@@ -1314,15 +2186,18 @@ sub handle_lib_objects_cond
        # means adding entries to dep_files.
        if ($lsearch =~ /^\@(LT)address@hidden/)
        {
+           my $lt = $1 ? $1 : '';
+           my $myobjext = ($1 ? 'l' : '') . 'o';
+
            push (@dep_list, $lsearch);
            $seen_libobjs = 1;
-           if (! keys %libsources)
+           if (! keys %libsources
+               && ! &variable_defined ($lt . 'LIBOBJS'))
            {
-               &am_line_error ($var, "address@hidden" . "LIBOBJS\@ seen but 
never set in \`configure.in'");
+               &am_line_error ($var, "address@hidden" . "LIBOBJS\@ seen but 
never set in `$configure_ac'");
            }
 
-           local ($iter, $rewrite);
-           foreach $iter (keys %libsources)
+           foreach my $iter (keys %libsources)
            {
                if ($iter =~ /\.([cly])$/)
                {
@@ -1336,19 +2211,32 @@ sub handle_lib_objects_cond
                }
                elsif ($iter ne 'alloca.c')
                {
-                   ($rewrite = $iter) =~ s/\.c$/.P/;
-                   $dep_files{'.deps/' . $rewrite} = 1;
-                   &require_file_with_line ($var, $FOREIGN, $iter);
+                   my $rewrite = $iter;
+                   $rewrite =~ s/\.c$/.P$myobjext/;
+                   $dep_files{'$(DEPDIR)/' . $rewrite} = 1;
+                   ($rewrite = $iter) =~ s/(\W)/\\$1/g;
+                   $rewrite = "^" . $rewrite . "\$";
+                   # Only require the file if it is not a built source.
+                   if (! &variable_defined ('BUILT_SOURCES')
+                       || ! grep (/$rewrite/,
+                                  &variable_value_as_list ('BUILT_SOURCES',
+                                                           'all')))
+                   {
+                       &require_file_with_line ($var, $FOREIGN, $iter);
+                   }
                }
            }
        }
        elsif ($lsearch =~ /^\@(LT)address@hidden/)
        {
+           my $lt = $1 ? $1 : '';
+           my $myobjext = ($1 ? 'l' : '') . 'o';
+
            push (@dep_list, $lsearch);
            &am_line_error ($var,
-                           "address@hidden" . "ALLOCA\@ seen but 
\`AC_FUNC_ALLOCA' not in \`configure.in'")
+                           "address@hidden" . "ALLOCA\@ seen but 
`AC_FUNC_ALLOCA' not in `$configure_ac'")
                if ! defined $libsources{'alloca.c'};
-           $dep_files{'.deps/alloca.P'} = 1;
+           $dep_files{'$(DEPDIR)/alloca.P' . $myobjext} = 1;
            &require_file_with_line ($var, $FOREIGN, 'alloca.c');
            &saw_extension ('c');
        }
@@ -1362,72 +2250,164 @@ sub handle_lib_objects_cond
     return $seen_libobjs;
 }
 
+# Canonicalize the input parameter
+sub canonicalize
+{
+    my ($string) = @_;
+    $string =~ tr/A-Za-z0-9_\@/_/c;
+    return $string;
+}
+
 # Canonicalize a name, and check to make sure the non-canonical name
 # is never used.  Returns canonical name.  Arguments are name and a
 # list of suffixes to check for.
 sub check_canonical_spelling
 {
-    local ($name, @suffixes) = @_;
-    local ($xname, $xt);
+    my ($name, @suffixes) = @_;
 
-    ($xname = $name) =~ tr/A-Za-z0-9_/_/c;
+    my $xname = &canonicalize ($name);
     if ($xname ne $name)
     {
-       local ($xt);
-       foreach $xt (@suffixes)
+       foreach my $xt (@suffixes)
        {
-           &am_line_error ($name . $xt,
-                           "invalid variable \`" . $name . $xt
-                           . "'; should be \`" . $xname . $xt . "'")
-               if &variable_defined ($name . $xt);
+           &am_line_error ("$name$xt",
+                           "invalid variable `$name$xt'; "
+                           . "should be `$xname$xt'")
+               if &variable_defined ("$name$xt");
        }
     }
 
     return $xname;
 }
 
+
+# handle_compile ()
+# -----------------
+# Set up the compile suite.
+sub handle_compile ()
+{
+    return
+      unless $get_object_extension_was_run;
+
+    # Boilerplate.
+    my $default_includes = '';
+    if (! defined $options{'nostdinc'})
+      {
+       $default_includes = ' -I. -I$(srcdir)';
+
+       if (&variable_defined ('CONFIG_HEADER'))
+         {
+           foreach my $hdr (split (' ', &variable_value ('CONFIG_HEADER')))
+             {
+               $default_includes .= ' -I' . dirname ($hdr);
+             }
+         }
+      }
+
+    my (@mostly_rms, @dist_rms);
+    foreach my $item (sort keys %compile_clean_files)
+    {
+       if ($compile_clean_files{$item} == $MOSTLY_CLEAN)
+       {
+           push (@mostly_rms, "\t-rm -f $item");
+       }
+       elsif ($compile_clean_files{$item} == $DIST_CLEAN)
+       {
+           push (@dist_rms, "\t-rm -f $item");
+       }
+       else
+       {
+           &prog_error ("invalid entry in \%compile_clean_files");
+       }
+    }
+
+    my ($coms, $vars, $rules) =
+      &file_contents_internal (1, "$libdir/am/compile.am",
+                              ('DEFAULT_INCLUDES' => $default_includes,
+                               'MOSTLYRMS' => join ("\n", @mostly_rms),
+                               'DISTRMS' => join ("\n", @dist_rms)));
+    $output_vars .= $vars;
+    $output_rules .= "$coms$rules";
+
+    # Check for automatic de-ANSI-fication.
+    if (defined $options{'ansi2knr'})
+      {
+       if (! $am_c_prototypes)
+         {
+           &am_line_error ('AUTOMAKE_OPTIONS',
+                           "option `ansi2knr' in use but `AM_C_PROTOTYPES' not 
in `$configure_ac'");
+           &keyed_aclocal_warning ('AM_C_PROTOTYPES');
+           # Only give this error once.
+           $am_c_prototypes = 1;
+         }
+
+       # topdir is where ansi2knr should be.
+       if ($options{'ansi2knr'} eq 'ansi2knr')
+         {
+           # Only require ansi2knr files if they should appear in
+           # this directory.
+           &require_file_with_line ('AUTOMAKE_OPTIONS', $FOREIGN,
+                                    'ansi2knr.c', 'ansi2knr.1');
+
+           # ansi2knr needs to be built before subdirs, so unshift it.
+           unshift (@all, '$(ANSI2KNR)');
+         }
+
+       my $ansi2knr_dir = '';
+       $ansi2knr_dir = dirname ($options{'ansi2knr'})
+         if $options{'ansi2knr'} ne 'ansi2knr';
+
+       $output_rules .= &file_contents ('ansi2knr',
+                                        ('ANSI2KNR-DIR' => $ansi2knr_dir));
+
+    }
+}
+
+# handle_libtool ()
+# -----------------
+# Handle libtool rules.
+sub handle_libtool
+{
+    return unless $seen_libtool;
+
+    # libtool requires some files, but only at top level.
+    &require_conf_file_with_conf_line ($libtool_line, $FOREIGN,
+                                      @libtoolize_files)
+       if $relative_dir eq '.';
+
+    # Output the libtool compilation rules.
+    $output_rules .= &file_contents ('libtool');
+}
+
+# handle_programs ()
+# ------------------
 # Handle C programs.
 sub handle_programs
 {
-    local (@proglist) = &am_install_var ('-clean',
-                                        'progs', 'PROGRAMS',
-                                        'bin', 'sbin', 'libexec', 'pkglib',
-                                        'noinst', 'check');
+    my @proglist = &am_install_var ('progs', 'PROGRAMS',
+                                   'bin', 'sbin', 'libexec', 'pkglib',
+                                   'noinst', 'check');
     return if ! @proglist;
 
-    # If a program is installed, this is required.  We only want this
-    # error to appear once.
-    &am_conf_error ("AC_ARG_PROGRAM must be used in configure.in")
-       unless $seen_arg_prog;
-    $seen_arg_prog = 1;
-
-    local ($one_file, $xname, $munge);
-
-    local ($seen_libobjs) = 0;
-    foreach $one_file (@proglist)
+    my $seen_libobjs = 0;
+    foreach my $one_file (@proglist)
     {
-       local ($obj) = &get_object_extension ($one_file);
+       my $obj = &get_object_extension ($one_file);
 
        # Canonicalize names and check for misspellings.
-       $xname = &check_canonical_spelling ($one_file, '_LDADD', '_LDFLAGS',
-                                           '_SOURCES', '_OBJECTS',
-                                           '_DEPENDENCIES');
+       my $xname = &check_canonical_spelling ($one_file, '_LDADD', '_LDFLAGS',
+                                              '_SOURCES', '_OBJECTS',
+                                              '_DEPENDENCIES');
 
-       # FIXME: Using a trick to figure out if any lex sources appear
-       # in our program; should use some cleaner method.
-       local ($lex_num) = scalar (keys %lex_sources);
-       local ($linker) = &handle_source_transform ($xname, $one_file, $obj);
-       local ($lex_file_seen) = (scalar (keys %lex_sources) > $lex_num);
+       my $linker = &handle_source_transform ($xname, $one_file, $obj);
 
-       local ($xt) = '';
+       my $xt = '';
        if (&variable_defined ($xname . "_LDADD"))
        {
-           if (&handle_lib_objects ($xname, $xname . '_LDADD',
-                                    $lex_file_seen))
+           if (&handle_lib_objects ($xname, $xname . '_LDADD'))
            {
                $seen_libobjs = 1;
            }
-           $lex_file_seen = 0;
            $xt = '_LDADD';
        }
        else
@@ -1439,11 +2419,10 @@ sub handle_programs
            # generate _DEPENDENCIES when appropriate.
            if (&variable_defined ('LDADD'))
            {
-               if (&handle_lib_objects ($xname, 'LDADD', $lex_file_seen))
+               if (&handle_lib_objects ($xname, 'LDADD'))
                {
                    $seen_libobjs = 1;
                }
-               $lex_file_seen = 0;
            }
            elsif (! &variable_defined ($xname . '_DEPENDENCIES'))
            {
@@ -1455,7 +2434,7 @@ sub handle_programs
        if (&variable_defined ($xname . '_LIBADD'))
        {
            &am_line_error ($xname . '_LIBADD',
-                           "use \`" . $xname . "_LDADD', not \`"
+                           "use `" . $xname . "_LDADD', not `"
                            . $xname . "_LIBADD'");
        }
 
@@ -1466,7 +2445,7 @@ sub handle_programs
        }
 
        # Determine program to use for link.
-       local ($xlink);
+       my $xlink;
        if (&variable_defined ($xname . '_LINK'))
        {
            $xlink = $xname . '_LINK';
@@ -1476,36 +2455,33 @@ sub handle_programs
            $xlink = $linker ? $linker : 'LINK';
        }
 
-       local ($xexe);
-       if ($seen_exeext && $one_file !~ /\./)
-       {
-           $xexe = 's/address@hidden@/\$(EXEEXT)/g;';
-       }
-       else
-       {
-           $xexe = 's/address@hidden@//g;';
-       }
+       # If the resulting program lies into a subdirectory,
+       # make sure this directory will exist.
+       my $dirstamp = &require_build_directory_maybe ($one_file);
+
+       # Don't add $(EXEEXT) if user already did.
+       my $extension = ($one_file !~ /\$\(EXEEXT\)$/
+                        ? "\$(EXEEXT)"
+                        : '');
 
-       $output_rules .=
-           &file_contents_with_transform
-               ('s/address@hidden@/' . $one_file . '/go;'
-                . 's/address@hidden@/' . $xname . '/go;'
-                . 's/address@hidden@/' . $xlink . '/go;'
-                . $xexe,
-                'program');
+       $output_rules .= &file_contents ('program',
+                                        ('PROGRAM'  => $one_file,
+                                         'XPROGRAM' => $xname,
+                                         'XLINK'    => $xlink,
+                                         'DIRSTAMP' => $dirstamp,
+                                         'EXEEXT'   => $extension));
     }
 
-    if (&variable_defined ('LDADD') && &handle_lib_objects ('', 'LDADD', 0))
+    if (&variable_defined ('LDADD') && &handle_lib_objects ('', 'LDADD'))
     {
        $seen_libobjs = 1;
     }
 
     if ($seen_libobjs)
     {
-       foreach $one_file (@proglist)
+       foreach my $one_file (@proglist)
        {
-           # Canonicalize names.
-           ($xname = $one_file) =~ tr/A-Za-z0-9_/_/c;
+           my $xname = &canonicalize ($one_file);
 
            if (&variable_defined ($xname . '_LDADD'))
            {
@@ -1520,24 +2496,24 @@ sub handle_programs
 }
 
 
+# handle_libraries ()
+# -------------------
 # Handle libraries.
 sub handle_libraries
 {
-    local (@liblist) = &am_install_var ('-clean',
-                                       'libs', 'LIBRARIES',
-                                       'lib', 'pkglib', 'noinst', 'check');
+    my @liblist = &am_install_var ('libs', 'LIBRARIES',
+                                  'lib', 'pkglib', 'noinst', 'check');
     return if ! @liblist;
 
-    local (%valid) = &am_primary_prefixes ('LIBRARIES', 'lib', 'pkglib',
-                                          'noinst', 'check');
+    my %valid = &am_primary_prefixes ('LIBRARIES', 0, 'lib', 'pkglib',
+                                     'noinst', 'check');
     if (! defined $configure_vars{'RANLIB'})
     {
-       local ($key);
-       foreach $key (keys %valid)
+       foreach my $key (keys %valid)
        {
            if (&variable_defined ($key . '_LIBRARIES'))
            {
-               &am_line_error ($key . '_LIBRARIES', "library used but 
\`RANLIB' not defined in \`configure.in'");
+               &am_line_error ($key . '_LIBRARIES', "library used but `RANLIB' 
not defined in `$configure_ac'");
                # Only get this error once.  If this is ever printed,
                # we have a bug.
                $configure_vars{'RANLIB'} = 'BUG';
@@ -1546,29 +2522,32 @@ sub handle_libraries
        }
     }
 
-    local ($onelib);
-    local ($munge);
-    local ($xlib);
-    local ($seen_libobjs) = 0;
-    foreach $onelib (@liblist)
+    my $seen_libobjs = 0;
+    foreach my $onelib (@liblist)
     {
        # Check that the library fits the standard naming convention.
-       if ($onelib !~ /^lib.*\.a$/)
+       if (basename ($onelib) !~ /^lib.*\.a/)
        {
            # FIXME should put line number here.  That means mapping
            # from library name back to variable name.
-           &am_error ("\`$onelib' is not a standard library name");
+           &am_error ("`$onelib' is not a standard library name");
        }
 
-       local ($obj) = &get_object_extension ($onelib);
+       my $obj = &get_object_extension ($onelib);
 
        # Canonicalize names and check for misspellings.
-       $xlib = &check_canonical_spelling ($onelib, '_LIBADD', '_SOURCES',
-                                          '_OBJECTS', '_DEPENDENCIES');
+       my $xlib = &check_canonical_spelling ($onelib, '_LIBADD', '_SOURCES',
+                                             '_OBJECTS', '_DEPENDENCIES',
+                                             '_AR');
+
+       if (! &variable_defined ($xlib . '_AR'))
+       {
+           &define_variable ($xlib . '_AR', '$(AR) cru');
+       }
 
        if (&variable_defined ($xlib . '_LIBADD'))
        {
-           if (&handle_lib_objects ($xlib, $xlib . '_LIBADD', 0))
+           if (&handle_lib_objects ($xlib, $xlib . '_LIBADD'))
            {
                $seen_libobjs = 1;
            }
@@ -1583,7 +2562,7 @@ sub handle_libraries
        if (&variable_defined ($xlib . '_LDADD'))
        {
            &am_line_error ($xlib . '_LDADD',
-                           "use \`" . $xlib . "_LIBADD', not \`"
+                           "use `" . $xlib . "_LIBADD', not `"
                            . $xlib . "_LDADD'");
        }
 
@@ -1592,50 +2571,50 @@ sub handle_libraries
 
        &handle_source_transform ($xlib, $onelib, $obj);
 
-       $output_rules .=
-           &file_contents_with_transform ('s/address@hidden@/' . $onelib . 
'/go;'
-                                          . 's/address@hidden@/'
-                                          . $xlib . '/go;',
-                                          'library');
+       # If the resulting library lies into a subdirectory,
+       # make sure this directory will exist.
+       my $dirstamp = &require_build_directory_maybe ($onelib);
+
+       $output_rules .= &file_contents ('library',
+                                        ('LIBRARY'  => $onelib,
+                                         'XLIBRARY' => $xlib,
+                                         'DIRSTAMP' => $dirstamp));
     }
 
     if ($seen_libobjs)
     {
-       foreach $onelib (@liblist)
+       foreach my $onelib (@liblist)
        {
-           # Canonicalize names.
-           ($xlib = $onelib) =~ tr/A-Za-z0-9_/_/c;
+           my $xlib = &canonicalize ($onelib);
            if (&variable_defined ($xlib . '_LIBADD'))
            {
                &check_libobjs_sources ($xlib, $xlib . '_LIBADD');
            }
        }
     }
-
-    &define_variable ('AR', 'ar');
-    &define_configure_variable ('RANLIB');
 }
 
+
+# handle_ltlibraries ()
+# ---------------------
 # Handle shared libraries.
 sub handle_ltlibraries
 {
-    local (@liblist) = &am_install_var ('-clean',
-                                       'ltlib', 'LTLIBRARIES',
-                                       'noinst', 'lib', 'pkglib');
+    my @liblist = &am_install_var ('ltlib', 'LTLIBRARIES',
+                                  'noinst', 'lib', 'pkglib', 'check');
     return if ! @liblist;
 
-    local (%instdirs);
-    local (%valid) = &am_primary_prefixes ('LTLIBRARIES', 'lib', 'pkglib',
-                                          'noinst');
+    my %instdirs;
+    my %valid = &am_primary_prefixes ('LTLIBRARIES', 0, 'lib', 'pkglib',
+                                     'noinst', 'check');
 
-    local ($key);
-    foreach $key (keys %valid)
+    foreach my $key (keys %valid)
     {
        if (&variable_defined ($key . '_LTLIBRARIES'))
        {
            if (!$seen_libtool)
            {
-               &am_line_error ($key . '_LTLIBRARIES', "library used but 
\`LIBTOOL' not defined in \`configure.in'");
+               &am_line_error ($key . '_LTLIBRARIES', "library used but 
`LIBTOOL' not defined in `$configure_ac'");
                # Only get this error once.  If this is ever printed,
                # we have a bug.
                $configure_vars{'LIBTOOL'} = 'BUG';
@@ -1647,7 +2626,7 @@ sub handle_ltlibraries
            {
                if ($instdirs{$_})
                {
-                   &am_error ("\`$_' is already going to be installed in 
\`$instdirs{$_}'");
+                   &am_error ("`$_' is already going to be installed in 
`$instdirs{$_}'");
                }
                else
                {
@@ -1657,18 +2636,15 @@ sub handle_ltlibraries
        }
     }
 
-    local ($onelib);
-    local ($munge);
-    local ($xlib);
-    local ($seen_libobjs) = 0;
-    foreach $onelib (@liblist)
+    my $seen_libobjs = 0;
+    foreach my $onelib (@liblist)
     {
-       local ($obj) = &get_object_extension ($onelib);
+       my $obj = &get_object_extension ($onelib);
 
        # Canonicalize names and check for misspellings.
-       $xlib = &check_canonical_spelling ($onelib, '_LIBADD', '_LDFLAGS',
-                                          '_SOURCES', '_OBJECTS',
-                                          '_DEPENDENCIES');
+       my $xlib = &check_canonical_spelling ($onelib, '_LIBADD', '_LDFLAGS',
+                                             '_SOURCES', '_OBJECTS',
+                                             '_DEPENDENCIES');
 
        if (! &variable_defined ($xlib . '_LDFLAGS'))
        {
@@ -1677,23 +2653,28 @@ sub handle_ltlibraries
        }
 
        # Check that the library fits the standard naming convention.
-       $libname_rx = "^lib.*\.la";
-       if (&variable_value ($xlib . '_LDFLAGS') =~ /-module/) 
+       my $libname_rx = "^lib.*\.la";
+       if ((&variable_defined ($xlib . '_LDFLAGS')
+            && grep (/-module/, &variable_value_as_list ($xlib . '_LDFLAGS',
+                                                         'all')))
+           || (&variable_defined ('LDFLAGS')
+               && grep (/-module/, &variable_value_as_list ('LDFLAGS',
+                                                            'all'))))
        {
                # Relax name checking for libtool modules.
                $libname_rx = "\.la";
        }
-       if ($onelib !~ /$libname_rx$/)
+       if (basename ($onelib) !~ /$libname_rx$/)
        {
            # FIXME this should only be a warning for foreign packages
            # FIXME should put line number here.  That means mapping
            # from library name back to variable name.
-           &am_error ("\`$onelib' is not a standard libtool library name");
+           &am_error ("`$onelib' is not a standard libtool library name");
        }
 
        if (&variable_defined ($xlib . '_LIBADD'))
        {
-           if (&handle_lib_objects ($xlib, $xlib . '_LIBADD', 0))
+           if (&handle_lib_objects ($xlib, $xlib . '_LIBADD'))
            {
                $seen_libobjs = 1;
            }
@@ -1708,17 +2689,17 @@ sub handle_ltlibraries
        if (&variable_defined ($xlib . '_LDADD'))
        {
            &am_line_error ($xlib . '_LDADD',
-                           "use \`" . $xlib . "_LIBADD', not \`"
+                           "use `" . $xlib . "_LIBADD', not `"
                            . $xlib . "_LDADD'");
        }
 
        # Make sure we at look at this.
        &examine_variable ($xlib . '_DEPENDENCIES');
 
-       local ($linker) = &handle_source_transform ($xlib, $onelib, $obj);
+       my $linker = &handle_source_transform ($xlib, $onelib, $obj);
 
        # Determine program to use for link.
-       local ($xlink);
+       my $xlink;
        if (&variable_defined ($xlib . '_LINK'))
        {
            $xlink = $xlib . '_LINK';
@@ -1728,38 +2709,40 @@ sub handle_ltlibraries
            $xlink = $linker ? $linker : 'LINK';
        }
 
-       local ($rpath);
-       if ($instdirs{$onelib} eq 'EXTRA' || $instdirs{$onelib} eq 'noinst')
+       my $rpath;
+       if ($instdirs{$onelib} eq 'EXTRA'
+           || $instdirs{$onelib} eq 'noinst'
+           || $instdirs{$onelib} eq 'check')
        {
            # It's an EXTRA_ library, so we can't specify -rpath,
            # because we don't know where the library will end up.
            # The user probably knows, but generally speaking automake
            # doesn't -- and in fact configure could decide
            # dynamically between two different locations.
-           $rpath = 's/address@hidden@//go;';
+           $rpath = '';
        }
        else
        {
-           $rpath = ('s/address@hidden@/-rpath \$(' . $instdirs{$onelib}
-                     . 'dir)/go;');
+           $rpath = ('-rpath $(' . $instdirs{$onelib} . 'dir)');
        }
 
-       $output_rules .=
-           &file_contents_with_transform ('s/address@hidden@/'
-                                          . $onelib . '/go;'
-                                          . 's/address@hidden@/'
-                                          . $xlib . '/go;'
-                                          . $rpath
-                                          . 's/address@hidden@/' . $xlink . 
'/go;',
-                                          'ltlibrary');
+       # If the resulting library lies into a subdirectory,
+       # make sure this directory will exist.
+       my $dirstamp = &require_build_directory_maybe ($onelib);
+
+       $output_rules .= &file_contents ('ltlibrary',
+                                        ('LTLIBRARY'  => $onelib,
+                                         'XLTLIBRARY' => $xlib,
+                                         'RPATH'      => $rpath,
+                                         'XLINK'      => $xlink,
+                                         'DIRSTAMP'   => $dirstamp));
     }
 
     if ($seen_libobjs)
     {
-       foreach $onelib (@liblist)
+       foreach my $onelib (@liblist)
        {
-           # Canonicalize names.
-           ($xlib = $onelib) =~ tr/A-Za-z0-9_/_/c;
+           my $xlib = &canonicalize ($onelib);
            if (&variable_defined ($xlib . '_LIBADD'))
            {
                &check_libobjs_sources ($xlib, $xlib . '_LIBADD');
@@ -1772,16 +2755,15 @@ sub handle_ltlibraries
 # EXTRA_ variables don't contain configure substitutions.
 sub check_typos
 {
-    local ($varname, $primary);
-    foreach $varname (keys %contents)
+    foreach my $varname (keys %var_value)
     {
-       foreach $primary ('_SOURCES', '_LIBADD', '_LDADD', '_LDFLAGS',
-                         '_DEPENDENCIES')
+       foreach my $primary ('_SOURCES', '_LIBADD', '_LDADD', '_LDFLAGS',
+                            '_DEPENDENCIES')
        {
            if ($varname =~ /$primary$/ && ! $content_seen{$varname})
            {
                &am_line_error ($varname,
-                               "invalid unused variable name: \`$varname'");
+                               "invalid unused variable name: `$varname'");
            }
        }
     }
@@ -1793,174 +2775,228 @@ sub handle_scripts
     # NOTE we no longer automatically clean SCRIPTS, because it is
     # useful to sometimes distribute scripts verbatim.  This happens
     # eg in Automake itself.
-    &am_install_var ('scripts', 'SCRIPTS',
+    &am_install_var ('-candist', 'scripts', 'SCRIPTS',
                     'bin', 'sbin', 'libexec', 'pkgdata',
                     'noinst', 'check');
-
-    local ($scripts_installed) = 0;
-    # Set $scripts_installed if appropriate.  Make sure we only find
-    # scripts which are actually installed -- this is why we can't
-    # simply use the return value of am_install_var.
-    local (%valid) = &am_primary_prefixes ('SCRIPTS', 'bin', 'sbin',
-                                          'libexec', 'pkgdata',
-                                          'noinst', 'check');
-    local ($key);
-    foreach $key (keys %valid)
-    {
-       if ($key ne 'noinst'
-           && $key ne 'check'
-           && &variable_defined ($key . '_SCRIPTS'))
-       {
-           $scripts_installed = 1;
-           # push (@check_tests, 'check-' . $key . 'SCRIPTS');
-       }
-    }
-
-    if ($scripts_installed)
-    {
-       # If a program is installed, this is required.  We only want this
-       # error to appear once.
-       &am_conf_error ("AC_ARG_PROGRAM must be used in configure.in")
-           unless $seen_arg_prog;
-       $seen_arg_prog = 1;
-    }
 }
 
-# Search a file for a "version.texi" Texinfo include.  Return the name
-# of the include file if found, or the empty string if not.  A
-# "version.texi" file is actually any file whose name matches
-# "vers*.texi".
+
+# ($OUTFILE, $VFILE, @CLEAN_FILES)
+# &scan_texinfo_file ($FILENAME)
+# ------------------------------
+# $OUTFILE is the name of the info file produced by $FILENAME.
+# $VFILE is the name of the version.texi file used (empty if none).
+# @CLEAN_FILES is the list of by products (indexes etc.)
 sub scan_texinfo_file
 {
-    local ($filename) = @_;
-
-    if (! open (TEXI, $filename))
-    {
-       &am_error ("couldn't open \`$filename': $!");
+    my ($filename) = @_;
+
+    # These are always created, no matter whether indexes are used or not.
+    my @clean_suffixes = ('aux', 'dvi', 'log', 'ps', 'toc',
+                         # grep new.*index texinfo.tex
+                         'cp', 'fn', 'ky', 'vr', 'tp', 'pg');
+
+    # There are predefined indexes which don't follow the regular rules.
+    my %predefined_index =
+      (
+       # cindex => *.cps
+       'c' => 'cps', 'f' => 'fns', 'k' => 'kys',
+       'v' => 'vrs', 't' => 'tps', 'p' => 'pgs'
+      );
+
+    # There are commands which include a hidden index command.
+    my %hidden_index =
+      (
+       # deffn => *.fns.
+       'fn' => 'fns',     'un' => 'fns',
+       'typefn' => 'fns', 'typefun' => 'fns',
+       'mac' => 'fns', 'spec' => 'fns',
+       'op' => 'fns',  'typeop' => 'fns',
+       'method' => 'fns', 'typemethod' => 'fns',
+
+       'vr' => 'vrs', 'var' => 'vrs',
+       'typevr' => 'vrs', 'typevar' => 'vrs',
+       'opt' => 'vrs',
+       'cv' => 'vrs',
+       'ivar' => 'vrs', 'typeivar' => 'vrs',
+
+       'tp' => 'tps'
+      );
+
+    # Indexes stored into another one.  In this case, the *.??s file
+    # is not created.
+    my @syncodeindexes = ();
+
+    my $texi = new IO::File ("< $filename");
+    if (! $texi)
+      {
+       &am_error ("couldn't open `$filename': $!");
        return '';
     }
-    print "automake: reading $filename\n" if $verbose;
-
-    local ($vfile, $outfile);
-    while (<TEXI>)
-    {
-       if (/address@hidden +(\S+)/)
-       {
-           $outfile = $1;
-           last if ($vfile);
-       }
-
-       if (/address@hidden(vers[^.]*\.texi)\s*$/)
-       {
-           # Found version.texi include.
-           $vfile = $1;
-           last if $outfile;
-       }
-    }
+    print "$me: reading $filename\n" if $verbose;
+
+    my ($outfile, $vfile);
+    while ($_ = $texi->getline)
+    {
+      if (/address@hidden +(\S+)/)
+      {
+        $outfile = $1;
+        if ($outfile =~ /\.(.+)$/ && $1 ne 'info')
+          {
+            &am_file_error ($filename, "$.: ",
+                            "output `$outfile' has unrecognized extension");
+            return;
+          }
+      }
+      # A "version.texi" file is actually any file whose name
+      # matches "vers*.texi".
+      elsif (/address@hidden(vers[^.]*\.texi)\s*$/)
+      {
+        $vfile = $1;
+      }
+
+      # Try to find what are the indexes which are used.
+
+      # Creating a new category of index.
+      elsif (/address@hidden(code)?index (\w+)/)
+      {
+        push @clean_suffixes, $2;
+      }
+
+      # Storing in a predefined index.
+      elsif (/^\@([cfkvtp])index /)
+      {
+        push @clean_suffixes, $predefined_index{$1};
+      }
+      elsif (/address@hidden(\w+) /)
+      {
+       push @clean_suffixes, $hidden_index{$1}
+         if defined $hidden_index{$1};
+      }
+
+      # Merging an index into an another.
+      elsif (/address@hidden(code)?index (\w+) (\w+)/)
+      {
+       push @syncodeindexes, "$2s";
+       push @clean_suffixes, "$3s";
+      }
+
+    }
+    $texi->close;
+
+    if ($outfile eq '')
+      {
+       &am_error ("`$filename' missing address@hidden");
+       return;
+      }
 
-    close (TEXI);
-    return ($outfile, $vfile);
+    my $infobase = basename ($filename);
+    $infobase =~ s/\.te?xi(nfo)?$//;
+    # FIXME: I don't understand why, but I can't use "$infobase.$_" => 1.
+    my %clean_files = map { "$infobase" . ".$_" => 1 } @clean_suffixes;
+    grep { delete $clean_files{"$infobase.$_"} } @syncodeindexes;
+    return ($outfile, $vfile, (sort keys %clean_files));
 }
 
-# Handle all Texinfo source.
-sub handle_texinfo
+
+# ($DO-SOMETHING, $TEXICLEANS)
+# handle_texinfo_helper ()
+# -----------------
+# Handle all Texinfo source; helper for handle_texinfo
+sub handle_texinfo_helper
 {
     &am_line_error ('TEXINFOS',
-                   "\`TEXINFOS' is an anachronism; use \`info_TEXINFOS'")
+                   "`TEXINFOS' is an anachronism; use `info_TEXINFOS'")
        if &variable_defined ('TEXINFOS');
-    return if (! &variable_defined ('info_TEXINFOS')
-              && ! &variable_defined ('html_TEXINFOS'));
+    return (0, '') if (! &variable_defined ('info_TEXINFOS')
+                      && ! &variable_defined ('html_TEXINFOS'));
 
     if (&variable_defined ('html_TEXINFOS'))
     {
        &am_line_error ('html_TEXINFOS',
                        "HTML generation not yet supported");
-       return;
+       return (0, '');
     }
 
-    local (@texis) = &variable_value_as_list ('info_TEXINFOS', 'all');
+    my @texis = &variable_value_as_list ('info_TEXINFOS', 'all');
 
-    local (@info_deps_list, @dvis_list, @texi_deps);
-    local ($infobase, $info_cursor);
-    local (%versions);
-    local ($done) = 0;
-    local ($vti);
-    local ($tc_cursor, @texi_cleans);
-    local ($canonical);
+    my (@info_deps_list, @dvis_list, @texi_deps);
+    my %versions;
+    my $done = 0;
+    my @texi_cleans;
+    my $canonical;
 
-    foreach $info_cursor (@texis)
+    my %texi_suffixes;
+    foreach my $info_cursor (@texis)
     {
-       # FIXME: This is mildly hacky, since it recognizes "txinfo".
-       # I don't feel like making it right.
-       ($infobase = $info_cursor) =~ s/\.te?xi(nfo)?$//;
+        my $infobase = $info_cursor;
+        $infobase =~ s/\.(txi|texinfo|texi)$//;
 
-       # If 'version.texi' is referenced by input file, then include
-       # automatic versioning capability.
-       local ($out_file, $vtexi) = &scan_texinfo_file ($relative_dir
-                                                       . "/" . $info_cursor);
-
-       if ($out_file eq '')
+       if ($infobase eq $info_cursor)
        {
-           &am_error ("\`$info_cursor' missing address@hidden");
+           # FIXME: report line number.
+           &am_error ("texinfo file `$info_cursor' has unrecognized 
extension");
            next;
        }
+       $texi_suffixes{$1} = 1;
 
-       if ($out_file =~ /\.(.+)$/ && $1 ne 'info')
-       {
-           # FIXME should report line number in input file.
-           &am_error ("output of \`$info_cursor', \`$out_file', has 
unrecognized extension");
-           next;
-       }
+       # If 'version.texi' is referenced by input file, then include
+       # automatic versioning capability.
+       my ($out_file, $vtexi, @clean_files) =
+         &scan_texinfo_file ("$relative_dir/$info_cursor")
+           or next;
+       push (@texi_cleans, @clean_files);
 
        if ($vtexi)
        {
-           &am_error ("\`$vtexi', included in \`$info_cursor', also included 
in \`$versions{$vtexi}'")
+           &am_error ("`$vtexi', included in `$info_cursor', also included in 
`$versions{$vtexi}'")
                if (defined $versions{$vtexi});
            $versions{$vtexi} = $info_cursor;
 
            # We number the stamp-vti files.  This is doable since the
            # actual names don't matter much.  We only number starting
            # with the second one, so that the common case looks nice.
-           $vti = 'vti' . ($done ? $done : '');
-           &push_dist_common ($vtexi, 'stamp-' . $vti);
-           push (@clean, $vti);
-
-           # Only require once.
-           &require_conf_file_with_line ('info_TEXINFOS', $FOREIGN,
-                                         'mdate-sh')
-               if ! $done;
+           my $vti = ($done ? $done : 'vti');
            ++$done;
 
-           local ($conf_pat, $conf_dir);
-           if ($config_aux_dir eq '.' || $config_aux_dir eq '')
+           # This is ugly, but it is our historical practice.
+           if ($config_aux_dir_set_in_configure_in)
            {
-               $conf_dir = '$(srcdir)/';
+               &require_conf_file_with_line ('info_TEXINFOS', $FOREIGN,
+                                             'mdate-sh');
            }
            else
            {
+               &require_file_with_line ('info_TEXINFOS', $FOREIGN,
+                                        'mdate-sh');
+           }
+
+           my $conf_dir;
+           if ($config_aux_dir_set_in_configure_in)
+           {
                $conf_dir = $config_aux_dir;
                $conf_dir .= '/' unless $conf_dir =~ /\/$/;
            }
-           ($conf_pat = $conf_dir) =~ s/(\W)/\\$1/g;
-           $output_rules .=
-               &file_contents_with_transform
-                   ('s/address@hidden@/' . $info_cursor . '/g; '
-                    . 's/address@hidden@/' . $vti . '/g; '
-                    . 's/address@hidden@/' . $vtexi . '/g;'
-                    . 's,address@hidden@,' . $conf_pat . ',g;',
-                    'texi-vers');
-
-           &push_phony_cleaners ($vti);
+           else
+           {
+               $conf_dir = '$(srcdir)/';
+           }
+           $output_rules .= &file_contents ('texi-vers',
+                                            ('TEXI'  => $info_cursor,
+                                             'VTI'   => $vti,
+                                             'VTEXI' => $vtexi,
+                                             'MDDIR' => $conf_dir));
        }
 
        # If user specified file_TEXINFOS, then use that as explicit
        # dependency list.
        @texi_deps = ();
        push (@texi_deps, $info_cursor);
-       push (@texi_deps, $vtexi) if $vtexi;
+       # Prefix with $(srcdir) because some version of make won't
+       # work if the target has it and the dependency doesn't.
+       push (@texi_deps, '$(srcdir)/' . $vtexi) if $vtexi;
 
-       # Canonicalize name first.
-       ($canonical = $infobase) =~ tr/A-Za-z0-9_/_/c;
+       my $canonical = &canonicalize ($infobase);
        if (&variable_defined ($canonical . "_TEXINFOS"))
        {
            push (@texi_deps, '$(' . $canonical . '_TEXINFOS)');
@@ -1971,116 +3007,58 @@ sub handle_texinfo
                          . join (' ', @texi_deps)
                          . "\n" . $infobase . ".dvi: "
                          . join (' ', @texi_deps)
-                         . "\n\n");
+                         . "\n");
 
        push (@info_deps_list, $out_file);
        push (@dvis_list, $infobase . '.dvi');
-
-       # Generate list of things to clean for this target.  We do
-       # this explicitly because otherwise too many things could be
-       # removed.  In particular the ".log" extension might
-       # reasonably be used in other contexts by the user.
-       foreach $tc_cursor ('aux', 'cp', 'cps', 'dvi', 'fn', 'fns',
-                           'ky', 'kys', 'ps', 'log', 'pg', 'toc', 'tp', 'tps',
-                           'vr', 'vrs', 'op', 'tr', 'cv', 'cn')
-       {
-           push (@texi_cleans, $infobase . '.' . $tc_cursor);
-       }
-    }
-
-    # Find these programs wherever they may lie.  Yes, this has
-    # intimate knowledge of the structure of the texinfo distribution.
-    &define_program_variable ('MAKEINFO', 'build', 'texinfo/makeinfo',
-                             'makeinfo',
-                             # Circumlocution to avoid accidental
-                             # configure substitution.
-                             '@MAKE' . 'INFO@');
-    &define_program_variable ('TEXI2DVI', 'src', 'texinfo/util',
-                             'texi2dvi');
-
-    # Set transform for including texinfos.am.  First, handle --cygnus
-    # stuff.
-    local ($xform);
-    if ($cygnus_mode)
-    {
-       $xform = 's/^NOTCYGNUS.*$//; s/^CYGNUS//;';
-    }
-    else
-    {
-       $xform = 's/^CYGNUS.*$//; s/^NOTCYGNUS//;';
     }
 
     # Handle location of texinfo.tex.
-    local ($need_texi_file) = 0;
-    local ($texinfo_tex);
+    my $need_texi_file = 0;
+    my $texinfodir;
     if ($cygnus_mode)
     {
-       $texinfo_tex = '$(top_srcdir)/../texinfo/texinfo.tex';
-       &define_variable ('TEXINFO_TEX', $texinfo_tex);
-
+        $texinfodir = '$(top_srcdir)/../texinfo';
+       &define_variable ('TEXINFO_TEX', "$texinfodir/texinfo.tex");
     }
-    elsif ($config_aux_dir ne '.' && $config_aux_dir ne '')
+    elsif ($config_aux_dir_set_in_configure_in)
     {
-       $texinfo_tex = $config_aux_dir . '/texinfo.tex';
-       &define_variable ('TEXINFO_TEX', $texinfo_tex);
+        $texinfodir = $config_aux_dir;
+       &define_variable ('TEXINFO_TEX', "$texinfodir/texinfo.tex");
+       $need_texi_file = 2; # so that we require_conf_file later
     }
     elsif (&variable_defined ('TEXINFO_TEX'))
     {
        # The user defined TEXINFO_TEX so assume he knows what he is
        # doing.
-       $texinfo_tex = ('$(srcdir)/'
-                       . &dirname (&variable_value ('TEXINFO_TEX')));
+        $texinfodir = ('$(srcdir)/'
+                      . dirname (&variable_value ('TEXINFO_TEX')));
     }
     else
     {
-       $texinfo_tex = '.';
+        $texinfodir = '$(srcdir)';
        $need_texi_file = 1;
     }
-    local ($xxform);
-    ($xxform = $texinfo_tex) =~ s/(\W)/\\$1/g;
-    $xform .= ' s/address@hidden@/' . $xxform . '/g;';
 
-    $output_rules .= &file_contents_with_transform ($xform, 'texinfos');
-    push (@phony, 'install-info-am', 'uninstall-info');
-    push (@dist_targets, 'dist-info');
-
-    # How to clean.  The funny name is due to --cygnus influence; in
-    # Cygnus mode, `clean-info' is a target that users can use.
-    $output_rules .= "\nmostlyclean-aminfo:\n";
-    &pretty_print_rule ("\t-rm -f", "\t  ", @texi_cleans);
-    $output_rules .= ("\nclean-aminfo:\n\ndistclean-aminfo:\n\n"
-                     . "maintainer-clean-aminfo:\n\t"
-                     # Eww.  But how else can we find all the output
-                     # files from makeinfo?
-                     . ($cygnus_mode ? '' : 'cd $(srcdir) && ')
-                     . 'for i in $(INFO_DEPS); do' . " \\\n"
-                     . "\t" . '  rm -f $$i;' . " \\\n"
-                     . "\t" . '  if test "`echo $$i-[0-9]*`" != "$$i-[0-9]*"; 
then' . " \\\n"
-                     . "\t" . '    rm -f $$i-[0-9]*;' . " \\\n"
-                     . "\t" . '  fi;' . " \\\n"
-                     . "\tdone\n");
-    &push_phony_cleaners ('aminfo');
-    if ($cygnus_mode)
+    foreach my $txsfx (sort keys %texi_suffixes)
     {
-       $output_rules .= "clean-info: mostlyclean-aminfo\n";
+       $output_rules .= &file_contents ('texibuild',
+                                        ('TEXINFODIR' => $texinfodir,
+                                         'SUFFIX'     => $txsfx));
     }
 
-    push (@suffixes, '.texi', '.texinfo', '.txi', '.info', '.dvi', '.ps');
+    # The return value.
+    my $texiclean = &pretty_print_internal ("", "\t  ", @texi_cleans);
+
+    push (@dist_targets, 'dist-info');
 
     if (! defined $options{'no-installinfo'})
     {
-       push (@uninstall, 'uninstall-info');
-       push (@installdirs, '$(DESTDIR)$(infodir)');
-       unshift (@install_data, 'install-info-am');
-
        # Make sure documentation is made and installed first.  Use
        # $(INFO_DEPS), not 'info', because otherwise recursive makes
        # get run twice during "make all".
        unshift (@all, '$(INFO_DEPS)');
     }
-    push (@clean, 'aminfo');
-    push (@info, '$(INFO_DEPS)');
-    push (@dvi, '$(DVIS)');
 
     &define_variable ("INFO_DEPS", join (' ', @info_deps_list));
     &define_variable ("DVIS", join (' ', @dvis_list));
@@ -2092,81 +3070,91 @@ sub handle_texinfo
     # Do some error checking.  Note that this file is not required
     # when in Cygnus mode; instead we defined TEXINFO_TEX explicitly
     # up above.
-    &require_file_with_line ('info_TEXINFOS', $FOREIGN, 'texinfo.tex')
-       if $need_texi_file && ! defined $options{'no-texinfo.tex'};
+    if ($need_texi_file && ! defined $options{'no-texinfo.tex'})
+    {
+       if ($need_texi_file > 1)
+       {
+           &require_conf_file_with_line ('info_TEXINFOS', $FOREIGN,
+                                         'texinfo.tex');
+       }
+       else
+       {
+           &require_file_with_line ('info_TEXINFOS', $FOREIGN, 'texinfo.tex');
+       }
+    }
+
+    return (1, $texiclean);
+}
+
+# handle_texinfo ()
+# -----------------
+# Handle all Texinfo source.
+sub handle_texinfo
+{
+    my ($do_something, $texiclean) = handle_texinfo_helper ();
+    $output_rules .=  &file_contents ('texinfos',
+                                     ('TEXICLEAN' => $texiclean,
+                                      'LOCAL-TEXIS' => $do_something));
 }
 
 # Handle any man pages.
 sub handle_man_pages
 {
-    &am_line_error ('MANS', "\`MANS' is an anachronism; use \`man_MANS'")
+    &am_line_error ('MANS', "`MANS' is an anachronism; use `man_MANS'")
        if &variable_defined ('MANS');
-    return if ! &variable_defined ('man_MANS');
 
     # Find all the sections in use.  We do this by first looking for
     # "standard" sections, and then looking for any additional
     # sections used in man_MANS.
-    local ($sect, %sections, %vlist);
-    # Add more sections as needed.
-    foreach $sect ('0'..'9', 'n', 'l')
+    my (%sections, %vlist);
+    # We handle nodist_ for uniformity.  man pages aren't distributed
+    # by default so it isn't actually very important.
+    foreach my $pfx ('', 'dist_', 'nodist_')
     {
-       if (&variable_defined ('man' . $sect . '_MANS'))
+       # Add more sections as needed.
+       foreach my $section ('0'..'9', 'n', 'l')
        {
-           $sections{$sect} = 1;
-           $vlist{'$(man' . $sect . '_MANS)'} = 1;
+           if (&variable_defined ($pfx . 'man' . $section . '_MANS'))
+           {
+               $sections{$section} = 1;
+               $vlist{'$(' . $pfx . 'man' . $section . '_MANS)'} = 1;
+
+               &push_dist_common ('$(' . $pfx . 'man' . $section . '_MANS)')
+                   if $pfx eq 'dist_';
+           }
        }
-    }
 
-    if (&variable_defined ('man_MANS'))
-    {
-       $vlist{'$(man_MANS)'} = 1;
-       foreach (&variable_value_as_list ('man_MANS', 'all'))
+       if (&variable_defined ($pfx . 'man_MANS'))
        {
-           # A page like `foo.1c' goes into man1dir.
-           if (/\.([0-9a-z])([a-z]*)$/)
+           $vlist{'$(' . $pfx . 'man_MANS)'} = 1;
+           foreach (&variable_value_as_list ($pfx . 'man_MANS', 'all'))
            {
-               $sections{$1} = 1;
+               # A page like `foo.1c' goes into man1dir.
+               if (/\.([0-9a-z])([a-z]*)$/)
+               {
+                   $sections{$1} = 1;
+               }
            }
+
+           &push_dist_common ('$(' . $pfx . 'man_MANS)')
+               if $pfx eq 'dist_';
        }
     }
 
+    return unless %sections;
 
     # Now for each section, generate an install and unintall rule.
     # Sort sections so output is deterministic.
-    local (@namelist);
-    foreach $sect (sort keys %sections)
+    foreach my $section (sort keys %sections)
     {
-       &define_variable ('man' . $sect . 'dir', '$(mandir)/man' . $sect);
-       push (@installdirs, '$(DESTDIR)$(mandir)/man' . $sect)
-           unless defined $options{'no-installman'};
-       $output_rules .= &file_contents_with_transform ('s/address@hidden@/'
-                                                       . $sect . '/g;',
-                                                       'mans');
-       push (@phony, 'install-man' . $sect, 'uninstall-man' . $sect);
-       push (@namelist, 'install-man' . $sect);
+       $output_rules .= &file_contents ('mans', ('SECTION' => $section));
     }
 
-    # We don't really need this, but we use it in case we ever want to
-    # support noinst_MANS.
-    &define_variable ("MANS", join (' ', sort keys %vlist));
-
-    # Generate list of install dirs.
-    $output_rules .= ("install-man: \$(MANS)\n"
-                     . "address@hidden(NORMAL_INSTALL)\n");
-    &pretty_print_rule ("\t\$(MAKE) \$(AM_MAKEFLAGS)", "\t ", @namelist);
-    push (@phony, 'install-man');
-
-    $output_rules .= "uninstall-man:address@hidden(NORMAL_UNINSTALL)\n";
-    grep ($_ = 'un' . $_, @namelist);
-    &pretty_print_rule ("\t\$(MAKE) \$(AM_MAKEFLAGS)", "\t ", @namelist);
-    push (@phony, 'uninstall-man');
-
-    $output_vars .= &file_contents ('mans-vars');
+    $output_vars .= &file_contents ('mans-vars',
+                                   ('MANS' => join (' ', sort keys %vlist)));
 
     if (! defined $options{'no-installman'})
     {
-       push (@install_data, 'install-man');
-       push (@uninstall, 'uninstall-man');
        push (@all, '$(MANS)');
     }
 }
@@ -2174,16 +3162,15 @@ sub handle_man_pages
 # Handle DATA variables.
 sub handle_data
 {
-    &am_install_var ('-noextra', 'data', 'DATA', 'data', 'sysconf',
-                    'sharedstate', 'localstate', 'pkgdata',
-                    'noinst', 'check');
+    &am_install_var ('-noextra', '-candist', 'data', 'DATA',
+                    'data', 'sysconf', 'sharedstate', 'localstate',
+                    'pkgdata', 'noinst', 'check');
 }
 
 # Handle TAGS.
 sub handle_tags
 {
-    push (@phony, 'tags');
-    local (@tag_deps) = ();
+    my @tag_deps = ();
     if (&variable_defined ('SUBDIRS'))
     {
        $output_rules .= ("tags-recursive:\n"
@@ -2194,48 +3181,32 @@ sub handle_tags
                          . " && \$(MAKE) \$(AM_MAKEFLAGS) tags); \\\n"
                          . "\tdone\n");
        push (@tag_deps, 'tags-recursive');
-       push (@phony, 'tags-recursive');
+       &depend ('.PHONY', 'tags-recursive');
     }
 
     if (&saw_sources_p (1)
        || &variable_defined ('ETAGS_ARGS')
        || @tag_deps)
     {
-       local ($xform) = '';
-       local ($one_hdr);
-       foreach $one_hdr (@config_headers)
+       my $config = '';
+       foreach my $one_hdr (@config_headers)
        {
-           if ($relative_dir eq &dirname ($one_hdr))
+           if ($relative_dir eq dirname ($one_hdr))
            {
                # The config header is in this directory.  So require it.
-               local ($var);
-               ($var = &basename ($one_hdr)) =~ s/(\W)/\\$1/g;
-               $xform .= ' ' if $xform;
-               $xform .= $var;
+               $config .= ' ' if $config;
+               $config .= basename ($one_hdr);
            }
        }
-       $xform = ('s/address@hidden@/' . $xform . '/;'
-                 . 's/address@hidden@/' . join (' ', @tag_deps) . '/;');
-
-       if (&variable_defined ('SUBDIRS'))
-       {
-           $xform .= 's/^SUBDIRS//;';
-       }
-       else
-       {
-           $xform .= 's/^SUBDIRS.*$//;';
-       }
-
-       $output_rules .= &file_contents_with_transform ($xform, 'tags');
-       $output_rules .= &file_contents ('tags-clean');
-       push (@clean, 'tags');
-       &push_phony_cleaners ('tags');
+       $output_rules .= &file_contents ('tags',
+                                        ('CONFIG' => $config,
+                                         'DIRS'   => join (' ', @tag_deps)));
        &examine_variable ('TAGS_DEPENDENCIES');
     }
     elsif (&variable_defined ('TAGS_DEPENDENCIES'))
     {
        &am_line_error ('TAGS_DEPENDENCIES',
-                       "doesn't make sense to define \`TAGS_DEPENDENCIES' 
without sources or \`ETAGS_ARGS'");
+                       "doesn't make sense to define `TAGS_DEPENDENCIES' 
without sources or `ETAGS_ARGS'");
     }
     else
     {
@@ -2249,86 +3220,111 @@ sub handle_tags
 # Handle multilib support.
 sub handle_multilib
 {
-    return unless $seen_multilib;
+    if ($seen_multilib && $relative_dir eq '.')
+    {
+       $output_rules .= &file_contents ('multilib');
+    }
+}
 
-    $output_rules .= &file_contents ('multilib.am');
-    &push_phony_cleaners ('multi');
-    push (@phony, 'all-multi', 'install-multi');
+
+# $BOOLEAN
+# &for_dist_common ($A, $B)
+# -------------------------
+# Subroutine for &handle_dist: sort files to dist.
+#
+# We put README first because it then becomes easier to make a
+# Usenet-compliant shar file (in these, README must be first).
+#
+# FIXME: do more ordering of files here.
+sub for_dist_common
+{
+    return 0
+        if $a eq $b;
+    return -1
+        if $a eq 'README';
+    return 1
+        if $b eq 'README';
+    return $a cmp $b;
 }
 
-# Worker for handle_dist.
-sub handle_dist_worker
+
+# handle_dist ($MAKEFILE)
+# -----------------------
+# Handle 'dist' target.
+sub handle_dist
 {
-    local ($makefile) = @_;
+    my ($makefile) = @_;
 
-    $output_rules .= 'distdir: $(DISTFILES)' . "\n";
+    # `make dist' isn't used in a Cygnus-style tree.
+    # Omit the rules so that people don't try to use them.
+    return if $cygnus_mode;
 
-    # Initialization; only at top level.
-    if ($relative_dir eq '.')
+    # Look for common files that should be included in distribution.
+    # If the aux dir is set, and it does not have a Makefile.am, then
+    # we check for these files there as well.
+    my $check_aux = 0;
+    my $auxdir = '';
+    if ($relative_dir eq '.'
+       && $config_aux_dir_set_in_configure_in)
     {
-       if (defined $options{'check-news'})
+       ($auxdir = $config_aux_dir) =~ s,^\$\(top_srcdir\)/,,;
+       if (! &is_make_dir ($auxdir))
        {
-           # For Gnits users, this is pretty handy.  Look at 15 lines
-           # in case some explanatory text is desirable.
-           $output_rules .= '  @if sed 15q $(srcdir)/NEWS | fgrep -e 
"$(VERSION)" > /dev/null; then :; else \\
-         echo "NEWS not updated; not releasing" 1>&2; \\
-         exit 1; \\
-       fi
-';
+           $check_aux = 1;
+       }
+    }
+    foreach my $cfile (@common_files)
+    {
+       if (-f ($relative_dir . "/" . $cfile))
+       {
+           &push_dist_common ($cfile);
        }
 
-
-       # Create dist directory.
-       $output_rules .= ("\t-rm -rf \$(distdir)\n"
-                         . "\tmkdir \$(distdir)\n"
-                         . "\t-chmod 777 \$(distdir)\n");
+       # Don't use `elsif' here because a file might meaningfully
+       # appear in both directories.
+       if ($check_aux && -f ($auxdir . '/' . $cfile))
+       {
+           &push_dist_common ($auxdir . '/' . $cfile);
+       }
     }
 
-    # Only run automake in `dist' target if --include-deps and
-    # `no-dependencies' not specified.  That way the recipient of a
-    # distribution can run "make dist" and not need Automake.  You
-    # might be wondering why we run automake once for each directory
-    # we distribute, instead of running it once at the top level.  The
-    # answer is that we want to run automake after the dependencies
-    # have been generated.  This occurs when "make" is run in the
-    # subdir.  So automake must be run after make has updated the
-    # Makefile, which means that it must run once per directory.
-    if ($use_dependencies)
+    # We might copy elements from $configure_dist_common to
+    # %dist_common if we think we need to.  If the file appears in our
+    # directory, we would have discovered it already, so we don't
+    # check that.  But if the file is in a subdir without a Makefile,
+    # we want to distribute it here if we are doing `.'.  Ugly!
+    if ($relative_dir eq '.')
     {
-       $output_rules .=
-           (
-            # There are several directories we need to know about
-            # when rebuilding the Makefile.ins.  They are:
-            #   here - The absolute path to our topmost build directory.
-            #   top_distdir - The absolute path to the top of our dist
-            #                 hierarchy.
-            #   distdir - The path to our sub-part of the dist hierarchy.
-            # If this directory is the topmost directory, we set
-            # top_distdir from distdir; that lets us pass in distdir
-            # from an enclosing package.
-            "\t" . 'here=`cd $(top_builddir) && pwd`; ' . "\\\n"
-            . "\t" . 'top_distdir=`cd $('
-            . (($relative_dir eq '.') ? 'distdir' : 'top_distdir')
-            . ') && pwd`; ' . "\\\n"
-            . "\t" . 'distdir=`cd $(distdir) && pwd`; ' . "\\\n"
-            . "\tcd \$(top_srcdir) \\\n"
-            . "\t  && \$(AUTOMAKE) --include-deps --build-dir=\$\$here 
--srcdir-name=\$(top_srcdir) --output-dir=\$\$top_distdir "
-            # Set strictness of output.
-            . ($cygnus_mode ? '--cygnus' : ('--' . $strictness_name))
-            . ($cmdline_use_dependencies ? '' : ' --include-deps')
-            . " " . $makefile . "\n"
-            );
+       foreach my $file (split (' ' , $configure_dist_common))
+       {
+           if (! &is_make_dir (dirname ($file)))
+           {
+               &push_dist_common ($file);
+           }
+       }
     }
 
+
+
+    # Files to distributed.  Don't use &variable_value_as_list
+    # as it recursively expands `$(dist_pkgdata_DATA)' etc.
+    check_variable_defined_unconditionally ('DIST_COMMON');
+    my @dist_common = split (' ', variable_value ('DIST_COMMON', 'TRUE'));
+    @dist_common = uniq (sort for_dist_common (@dist_common));
+    pretty_print ('DIST_COMMON = ', "\t", @dist_common);
+
+    # Now that we've processed DIST_COMMON, disallow further attempts
+    # to set it.
+    $handle_dist_run = 1;
+
     # Scan EXTRA_DIST to see if we need to distribute anything from a
     # subdir.  If so, add it to the list.  I didn't want to do this
     # originally, but there were so many requests that I finally
     # relented.
-    local (@dist_dirs);
     if (&variable_defined ('EXTRA_DIST'))
     {
        # FIXME: This should be fixed to work with conditionals.  That
-       # will require only making the entries in @dist_dirs under the
+       # will require only making the entries in %dist_dirs under the
        # appropriate condition.  This is meaningful if the nature of
        # the distribution should depend upon the configure options
        # used.
@@ -2336,44 +3332,28 @@ sub handle_dist_worker
        {
            next if /address@hidden@$/;
            next unless s,/+[^/]+$,,;
-           push (@dist_dirs, $_)
+           $dist_dirs{$_} = 1
                unless $_ eq '.';
        }
     }
-    if (@dist_dirs)
-    {
-       # Prepend $(distdir) to each directory given.  Doing it via a
-       # hash lets us ensure that each directory is used only once.
-       local (%dhash);
-       grep ($dhash{'$(distdir)/' . $_} = 1, @dist_dirs);
-       $output_rules .= "\t";
-       &pretty_print_rule ('$(mkinstalldirs)', "\t   ", sort keys %dhash);
-    }
 
-    # In loop, test for file existence because sometimes a file gets
-    # included in DISTFILES twice.  For example this happens when a
-    # single source file is used in building more than one program.
-    # Also, there are situations in which "ln" can fail.  For instance
-    # a file to distribute could actually be a cross-filesystem
-    # symlink -- this can easily happen if "gettextize" was run on the
-    # distribution.
-    $output_rules .= "address@hidden file in \$(DISTFILES); do \\\n";
-    if ($cygnus_mode)
-    {
-       $output_rules .= "\t  if test -f \$\$file; then d=.; else d=\$(srcdir); 
fi; \\\n";
-    }
-    else
+    # We have to check DIST_COMMON for extra directories in case the
+    # user put a source used in AC_OUTPUT into a subdir.
+    foreach (&variable_value_as_list ('DIST_COMMON', 'all'))
     {
-       $output_rules .= "\t  d=\$(srcdir); \\\n";
+       next if /address@hidden@$/;
+       next unless s,/+[^/]+$,,;
+       $dist_dirs{$_} = 1
+           unless $_ eq '.';
     }
-    $output_rules .= ("\t  if test -d \$\$d/\$\$file; then \\\n"
-                     . "\t    cp -pr \$\$/\$\$file \$(distdir)/\$\$file; \\\n"
-                     . "\t  else \\\n"
-                     . "\t    test -f \$(distdir)/\$\$file \\\n"
-                     . "\t    || ln \$\$d/\$\$file \$(distdir)/\$\$file 2> 
/dev/null \\\n"
-                     . "\t    || cp -p \$\$d/\$\$file \$(distdir)/\$\$file || 
:; \\\n"
-                     . "\t  fi; \\\n"
-                     . "\tdone\n");
+
+    # Rule to check whether a distribution is viable.
+    my %transform = ('DISTCHECK-HOOK' => &target_defined ('distcheck-hook'),
+                    'GETTEXT'        => $seen_gettext);
+
+    # Prepend $(distdir) to each directory given.
+    my %rewritten = map { '$(distdir)/' . "$_" => 1 } keys %dist_dirs;
+    $transform{'DISTDIRS'} = join (' ', sort keys %rewritten);
 
     # If we have SUBDIRS, create all dist subdirectories and do
     # recursive build.
@@ -2382,383 +3362,56 @@ sub handle_dist_worker
        # If SUBDIRS is conditionally defined, then set DIST_SUBDIRS
        # to all possible directories, and use it.  If DIST_SUBDIRS is
        # defined, just use it.
-       local ($dist_subdir_name);
-       if (&variable_conditions ('SUBDIRS')
-           || &variable_defined ('DIST_SUBDIRS'))
+       my $dist_subdir_name;
+       # Note that we check DIST_SUBDIRS first on purpose.  At least
+       # one project uses so many conditional subdirectories that
+       # calling variable_conditionally_defined on SUBDIRS will cause
+       # automake to grow to 150Mb.  Sigh.
+       if (&variable_defined ('DIST_SUBDIRS')
+           || variable_conditionally_defined ('SUBDIRS'))
        {
            $dist_subdir_name = 'DIST_SUBDIRS';
            if (! &variable_defined ('DIST_SUBDIRS'))
            {
-               &define_pretty_variable ('DIST_SUBDIRS', '',
-                                        &variable_value_as_list ('SUBDIRS',
-                                                                 'all'));
+               &define_pretty_variable
+                 ('DIST_SUBDIRS', '',
+                  uniq (&variable_value_as_list ('SUBDIRS', 'all')));
            }
        }
        else
        {
            $dist_subdir_name = 'SUBDIRS';
+           # We always define this because that is what `distclean'
+           # wants.
+           &define_pretty_variable ('DIST_SUBDIRS', '', '$(SUBDIRS)');
        }
 
-       # Test for directory existence here because previous automake
-       # invocation might have created some directories.  Note that
-       # we explicitly set distdir for the subdir make; that lets us
-       # mix-n-match many automake-using packages into one large
-       # package, and have "dist" at the top level do the right
-       # thing.  If we're in the topmost directory, then we use
-       # `distdir' instead of `top_distdir'; this lets us work
-       # correctly with an enclosing package.
-       $output_rules .= 
-           ("\t" . 'for subdir in $(' . $dist_subdir_name . '); do ' . "\\\n"
-            . "\t" . '  if test "$$subdir" = .; then :; else ' . "\\\n"
-            . "\t" . '    test -d $(distdir)/$$subdir ' . "\\\n"
-            . "\t" . '    || mkdir $(distdir)/$$subdir ' . "\\\n"
-            . "\t" . '    || exit 1; ' . "\\\n"
-            . "\t" . '    chmod 777 $(distdir)/$$subdir; ' . "\\\n"
-            . "\t" . '    (cd $$subdir'
-            . ' && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$('
-            . (($relative_dir eq '.') ? 'distdir' : 'top_distdir')
-            . ') distdir=../$(distdir)/$$subdir distdir) ' . "\\\n"
-            . "\t" . '      || exit 1; ' . "\\\n"
-            . "\t" . '  fi; ' . "\\\n"
-            . "\tdone\n");
+       $transform{'DIST_SUBDIR_NAME'} = $dist_subdir_name;
     }
 
     # If the target `dist-hook' exists, make sure it is run.  This
     # allows users to do random weird things to the distribution
     # before it is packaged up.
-    push (@dist_targets, 'dist-hook') if &target_defined ('dist-hook');
+    push (@dist_targets, 'dist-hook')
+      if &target_defined ('dist-hook');
+    $transform{'DIST-TARGETS'} = join(' ', @dist_targets);
 
-    local ($targ);
-    foreach $targ (@dist_targets)
-    {
-       # We must explicitly set distdir and top_distdir for these
-       # sub-makes.
-       $output_rules .= ("\t\$(MAKE) \$(AM_MAKEFLAGS)"
-                         . " top_distdir=\"\$(top_distdir)\""
-                         . " distdir=\"\$(distdir)\" $targ\n");
-    }
+    # Defining $(DISTDIR).
+    $transform{'DISTDIR'} = !&variable_defined('distdir');
+    $transform{'TOP_DISTDIR'} = backname ($relative_dir);
 
-    push (@phony, 'distdir');
+    $output_rules .= &file_contents ('distdir', %transform);
 }
 
-# Handle 'dist' target.
-sub handle_dist
-{
-    local ($makefile) = @_;
-
-    # Set up maint_charset.
-    $local_maint_charset = &variable_value ('MAINT_CHARSET')
-       if &variable_defined ('MAINT_CHARSET');
-    $maint_charset = $local_maint_charset
-       if $relative_dir eq '.';
-
-    if (&variable_defined ('DIST_CHARSET'))
-    {
-       &am_line_error ('DIST_CHARSET',
-                       "DIST_CHARSET defined but no MAINT_CHARSET defined")
-           if ! $local_maint_charset;
-       if ($relative_dir eq '.')
-       {
-           $dist_charset = &variable_value ('DIST_CHARSET')
-       }
-       else
-       {
-           &am_line_error ('DIST_CHARSET',
-                           "DIST_CHARSET can only be defined at top level");
-       }
-    }
-
-    # Look for common files that should be included in distribution.
-    local ($cfile);
-    foreach $cfile (@common_files)
-    {
-       if (-f ($relative_dir . "/" . $cfile))
-       {
-           &push_dist_common ($cfile);
-       }
-    }
-
-    # Always require configure.in and configure at top level, even if
-    # they don't exist.  This is especially important for configure,
-    # since it won't be created until autoconf is run -- which might
-    # be after automake is run.
-    &push_dist_common ('configure.in', 'configure')
-       if $relative_dir eq '.';
-
-    # Keys of %dist_common are names of files to distributed.  We put
-    # README first because it then becomes easier to make a
-    # Usenet-compliant shar file (in these, README must be first).
-    # FIXME: do more ordering of files here.
-    local (@coms);
-    if (defined $dist_common{'README'})
-    {
-       push (@coms, 'README');
-       delete $dist_common{'README'};
-    }
-    push (@coms, sort keys %dist_common);
-
-    &define_pretty_variable ("DIST_COMMON", '', @coms);
-    $output_vars .= "\n";
-
-    # Some boilerplate.
-    $output_vars .= &file_contents ('dist-vars') . "\n";
-    &define_variable ('TAR', $TAR);
-    &define_variable ('GZIP_ENV', '--best');
-
-    # Put these things in rules section so it is easier for whoever
-    # reads Makefile.in.
-    if (! &variable_defined ('distdir'))
-    {
-       if ($relative_dir eq '.')
-       {
-           $output_rules .= "\n" . 'distdir = $(PACKAGE)-$(VERSION)' . "\n";
-       }
-       else
-       {
-           $output_rules .= ("\n"
-                             . 'distdir = 
$(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)'
-                             . "\n");
-       }
-    }
-    if ($relative_dir eq '.')
-    {
-       $output_rules .= "top_distdir = \$(distdir)\n\n";
-    }
-    else
-    {
-       $output_rules .= "\nsubdir = " . $relative_dir . "\n\n";
-    }
-
-    # Generate 'dist' target, and maybe dist-shar / dist-zip / dist-tarZ.
-    if ($relative_dir eq '.')
-    {
-       # Rule to check whether a distribution is viable.
-       $output_rules .= ('# This target untars the dist file and tries a VPATH 
configuration.  Then
-# it guarantees that the distribution is self-contained by making another
-# tarfile.
-distcheck: dist
-       -rm -rf $(distdir)
-       GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz
-       mkdir $(distdir)/=build
-       mkdir $(distdir)/=inst
-       dc_install_base=`cd $(distdir)/=inst && pwd`; \\'
-                         . (&target_defined ('distcheck-hook')
-                            ? ("\t\$(MAKE) \$(AM_MAKEFLAGS)"
-                               . " distcheck-hook")
-                            : '')
-                         . '
-       cd $(distdir)/=build \\
-         && ../configure '
-
-                         . ($seen_gettext ? '--with-included-gettext ' : '')
-                         . '--srcdir=.. --prefix=$$dc_install_base \\
-         && $(MAKE) $(AM_MAKEFLAGS) \\
-         && $(MAKE) $(AM_MAKEFLAGS) dvi \\
-         && $(MAKE) $(AM_MAKEFLAGS) check \\
-         && $(MAKE) $(AM_MAKEFLAGS) install \\
-         && $(MAKE) $(AM_MAKEFLAGS) installcheck \\
-         && $(MAKE) $(AM_MAKEFLAGS) dist
-       -rm -rf $(distdir)
-       @banner="$(distdir).tar.gz is ready for distribution"; \\
-       dashes=`echo "$$banner" | sed s/./=/g`; \\
-       echo "$$dashes"; \\
-       echo "$$banner"; \\
-       echo "$$dashes"
-');
-
-       local ($dist_all) = ('dist-all: distdir' . "\n"
-                            . $dist_header);
-       local ($curs);
-       foreach $curs ('dist', 'dist-shar', 'dist-zip', 'dist-tarZ')
-       {
-           if (defined $options{$curs} || $curs eq 'dist')
-           {
-               $output_rules .= ($curs . ': distdir' . "\n"
-                                 . $dist_header
-                                 . $dist{$curs}
-                                 . $dist_trailer);
-               $dist_all .= $dist{$curs};
-           }
-       }
-       $output_rules .= $dist_all . $dist_trailer;
-    }
-
-    # Generate distdir target.
-    &handle_dist_worker ($makefile);
-}
-
-# Scan a single dependency file and rewrite the dependencies as
-# appropriate.  Essentially this means:
-# * Clean out absolute dependencies which are not desirable.
-# * Rewrite other dependencies to be relative to $(top_srcdir).
-sub scan_dependency_file
-{
-    local ($depfile) = @_;
-
-    if (! open (DEP_FILE, $depfile))
-    {
-       &am_error ("couldn't open \`$depfile': $!");
-       return;
-    }
-    print "automake: reading $depfile\n" if $verbose;
-
-    # Sometimes it is necessary to omit some dependencies.
-    local (%omit) = %omit_dependencies;
-    if (&variable_defined ('OMIT_DEPENDENCIES'))
-    {
-       # FIXME: Doesn't work with conditionals.  I'm not sure if this
-       # matters.
-       grep ($omit{$_} = 1,
-             &variable_value_as_list ('OMIT_DEPENDENCIES', ''));
-    }
-
-    local ($first_line) = 1;
-    local ($last_line) = 0;
-    local ($target, @dependencies);
-    local ($one_dep, $xform);
-    local ($just_file);
-
-    local ($srcdir_rx, $fixup_rx);
-    ($fixup_rx = $srcdir_name . '/' . $relative_dir . '/')
-       =~ s/(\W)/\\$1/g;
-    ($srcdir_rx = $srcdir_name . '/') =~ s/(\W)/\\$1/g;
-
-    local ($rewrite_builddir) = (($top_builddir eq '.')
-                                ? ''
-                                : $top_builddir . '/');
-
-    while (<DEP_FILE>)
-    {
-       last if $last_line;
-       next if (/$WHITE_PATTERN/o);
-       chop;
-       if (! s/\\$//)
-       {
-           # No trailing "\" means this should be the last line of
-           # the first target.  We can have multiple targets due to
-           # the "deleted header file" fix.  For the generated
-           # Makefile we simply skip these fake targets.
-           $last_line = 1;
-       }
-
-       if ($first_line)
-       {
-           if (! /^([^:]+:)(.+)$/)
-           {
-             bad_format:
-               &am_error ("\`$depfile' has incorrect format");
-               close (DEP_FILE);
-               return;
-           }
-
-           $_ = $2;
-           # Make sure to strip the .P file from the target.
-           ($target = $1) =~ s, *\.deps/[^.]+\.P,,;
-
-           $first_line = 0;
-       }
-
-       foreach $one_dep (split (' ', $_))
-       {
-           ($just_file = $one_dep) =~ s,^.*/,,;
-           next if defined $omit{$just_file};
-
-           if ($one_dep =~ /^$fixup_rx/)
-           {
-               # The dependency points to the current directory in
-               # some way.
-               ($xform = $one_dep) =~ s/^$fixup_rx//;
-               push (@dependencies, $xform);
-           }
-           elsif ($one_dep =~ /^$srcdir_rx/)
-           {
-               # The dependency is in some other directory in the package.
-               ($xform = $one_dep) =~ s/^$srcdir_rx/$rewrite_builddir/;
-               push (@dependencies, $xform);
-           }
-           elsif ($one_dep =~ /^\// || $one_dep =~ /^[A-Za-z]:\\/)
-           {
-               # Absolute path; ignore.
-           }
-           else
-           {
-               # Anything else is assumed to be correct.
-               push (@dependencies, $one_dep);
-           }
-       }
-    }
-
-    &pretty_print_rule ($target, "\t", @dependencies);
-
-    close (DEP_FILE);
-}
-
-# Handle auto-dependency code.
-sub handle_dependencies
-{
-    # Make sure this variable is always marked as used.
-    &examine_variable ('OMIT_DEPENDENCIES');
-
-    if ($use_dependencies)
-    {
-       # Include GNU-make-specific auto-dep code.  Don't include it
-       # if DEP_FILES would be empty.
-       if (&saw_sources_p (0) && keys %dep_files)
-       {
-           &define_pretty_variable ('DEP_FILES', '', sort keys %dep_files);
-           $output_rules .= &file_contents ('depend');
-           push (@clean, 'depend');
-           &push_phony_cleaners ('depend');
-           # FIXME: this should use another property of the language
-           # instead of being hard-coded.
-           $output_rules .=
-               &file_contents_with_transform ('s/address@hidden@/.c/g;'
-                                              . 's/address@hidden@//g;',
-                                              'depend2');
-           local ($ext);
-           foreach $ext (&objc_extensions)
-           {
-               $output_rules .=
-                   &file_contents_with_transform ('s/address@hidden@/' . $ext 
. '/g;'
-                                                  . 
's/address@hidden@/OBJC/g;',
-                                                  'depend2');
-           }
-           foreach $ext (&cxx_extensions)
-           {
-               $output_rules .=
-                   &file_contents_with_transform ('s/address@hidden@/' . $ext 
.'/g;'
-                                                  . 's/address@hidden@/CXX/g;',
-                                                  'depend2');
-           }
-       }
-    }
-    elsif ($build_directory ne '')
-    {
-       # Include any auto-generated deps that are present.  Note that
-       # $build_directory ends in a "/".
-       if (-d ($build_directory . $relative_dir . "/.deps"))
-       {
-           local ($depfile);
-
-           foreach $depfile (&my_glob ($build_directory
-                                       . $relative_dir . "/.deps/*.P"))
-           {
-               &scan_dependency_file ($depfile);
-           }
-
-           $output_rules .= "\n";
-       }
-    }
-}
 
 # Handle subdirectories.
 sub handle_subdirs
 {
-    return if ! &variable_defined ('SUBDIRS');
+    return
+      unless &variable_defined ('SUBDIRS');
 
     # Make sure each directory mentioned in SUBDIRS actually exists.
-    local ($dir);
-    foreach $dir (&variable_value_as_list ('SUBDIRS', 'all'))
+    foreach my $dir (&variable_value_as_list ('SUBDIRS', 'all'))
     {
        # Skip directories substituted by configure.
        next if $dir =~ /address@hidden@$/;
@@ -2770,47 +3423,39 @@ sub handle_subdirs
            next;
        }
 
-       &am_line_error ('SUBDIRS', "directory should not contain \`/'")
+       &am_line_error ('SUBDIRS', "directory should not contain `/'")
            if $dir =~ /\//;
     }
 
-    local ($xform) = ('s/address@hidden@/' .
-                     (defined $options{'no-installinfo'}
-                      ? 'install-info-recursive'
-                      : '')
-                     . '/;');
-    $output_rules .= &file_contents_with_transform ($xform, 'subdirs');
-
-    # Push a bunch of phony targets.
-    local ($phonies);
-    foreach $phonies ('-data', '-exec', 'dirs')
-    {
-       push (@phony, 'install' . $phonies . '-recursive');
-       push (@phony, 'uninstall' . $phonies . '-recursive');
-    }
-    foreach $phonies ('all', 'check', 'installcheck', 'info', 'dvi')
-    {
-       push (@phony, $phonies . '-recursive');
-    }
-    &push_phony_cleaners ('recursive');
-
-    $recursive_install = 1;
+    $output_rules .= &file_contents ('subdirs');
+    variable_pretty_output ('RECURSIVE_TARGETS', 'TRUE');
 }
 
-# Handle aclocal.m4.
-sub handle_aclocal_m4
+
+# ($REGEN, @DEPENDENCIES)
+# &scan_aclocal_m4
+# ----------------
+# If aclocal.m4 creation is automated, return the list of its dependencies.
+sub scan_aclocal_m4
 {
-    local ($regen_aclocal) = 0;
+    my $regen_aclocal = 0;
+
+    return (0, ())
+      unless $relative_dir eq '.';
+
+    &examine_variable ('CONFIG_STATUS_DEPENDENCIES');
+    &examine_variable ('CONFIGURE_DEPENDENCIES');
+
     if (-f 'aclocal.m4')
     {
        &define_variable ("ACLOCAL_M4", '$(top_srcdir)/aclocal.m4');
        &push_dist_common ('aclocal.m4');
 
-       if (open (ACLOCAL, '< aclocal.m4'))
+       my $aclocal = new IO::File ("< aclocal.m4");
+       if ($aclocal)
        {
-           local ($line);
-           $line = <ACLOCAL>;
-           close (ACLOCAL);
+           my $line = $aclocal->getline;
+           $aclocal->close;
 
            if ($line =~ 'generated automatically by aclocal')
            {
@@ -2819,56 +3464,51 @@ sub handle_aclocal_m4
        }
     }
 
-    local ($acinclude) = 0;
+    my @ac_deps = ();
+
     if (-f 'acinclude.m4')
     {
        $regen_aclocal = 1;
-       $acinclude = 1;
+       push @ac_deps, 'acinclude.m4';
     }
 
-    # Note that it might be possible that aclocal.m4 doesn't exist but
-    # should be auto-generated.  This case probably isn't very
-    # important.
-    if ($regen_aclocal)
+    if (&variable_defined ('ACLOCAL_M4_SOURCES'))
+    {
+       push (@ac_deps, '$(ACLOCAL_M4_SOURCES)');
+    }
+    elsif (&variable_defined ('ACLOCAL_AMFLAGS'))
     {
-       local (@ac_deps) = (
-                           ($seen_maint_mode
-                            ? "address@hidden@"
-                            : "") ,
-                           "configure.in",
-                           ($acinclude ? ' acinclude.m4' : '')
-                           );
-
        # Scan all -I directories for m4 files.  These are our
        # dependencies.
-       if (&variable_defined ('ACLOCAL_AMFLAGS'))
+       my $examine_next = 0;
+       foreach my $amdir (&variable_value_as_list ('ACLOCAL_AMFLAGS', ''))
        {
-           local ($examine_next, $amdir) = 0;
-           foreach $amdir (&variable_value_as_list ('ACLOCAL_AMFLAGS', ''))
+           if ($examine_next)
            {
-               if ($examine_next)
+               $examine_next = 0;
+               if ($amdir !~ /^\// && -d $amdir)
                {
-                   $examine_next = 0;
-                   if ($amdir !~ /^\// && -d $amdir)
+                   foreach my $ac_dep (&my_glob ($amdir . '/*.m4'))
                    {
-                       push (@ac_deps, &my_glob ($amdir . '/*.m4'));
+                       $ac_dep =~ s/^\.\/+//;
+                       push (@ac_deps, $ac_dep)
+                         unless $ac_dep eq "aclocal.m4"
+                           || $ac_dep eq "acinclude.m4";
                    }
                }
-               elsif ($amdir eq '-I')
-               {
-                   $examine_next = 1;
-               }
+           }
+           elsif ($amdir eq '-I')
+           {
+               $examine_next = 1;
            }
        }
+    }
 
-       &pretty_print_rule ("\$(ACLOCAL_M4):", "\t\t", @ac_deps);
+    # Note that it might be possible that aclocal.m4 doesn't exist but
+    # should be auto-generated.  This case probably isn't very
+    # important.
 
-       $output_rules .=  ("\t"
-                          . 'cd $(srcdir) && $(ACLOCAL)'
-                          . (&variable_defined ('ACLOCAL_AMFLAGS')
-                             ? ' $(ACLOCAL_AMFLAGS)' : '')
-                          . "\n");
-    }
+    return ($regen_aclocal, @ac_deps);
 }
 
 # Rewrite a list of input files into a form suitable to put on a
@@ -2884,14 +3524,14 @@ sub handle_aclocal_m4
 # If 0 then files that require this addition will simply be ignored.
 sub rewrite_inputs_into_dependencies
 {
-    local ($add_srcdir, @inputs) = @_;
-    local ($single, @newinputs);
+    my ($add_srcdir, @inputs) = @_;
+    my @newinputs;
 
-    foreach $single (@inputs)
+    foreach my $single (@inputs)
     {
-       if (&dirname ($single) eq $relative_dir)
+       if (dirname ($single) eq $relative_dir)
        {
-           push (@newinputs, &basename ($single));
+           push (@newinputs, basename ($single));
        }
        elsif ($add_srcdir)
        {
@@ -2906,22 +3546,16 @@ sub rewrite_inputs_into_dependencies
 # We need the name of the input file, to do proper remaking rules.
 sub handle_configure
 {
-    local ($local, $input, @secondary_inputs) = @_;
-
-    # If SUBDIRS defined, require AC_PROG_MAKE_SET.
-    &am_line_error ('SUBDIRS', "AC_PROG_MAKE_SET must be used in configure.in")
-       if &variable_defined ('SUBDIRS') && ! $seen_make_set;
+    my ($local, $input, @secondary_inputs) = @_;
 
-    local ($top_reldir);
+    my $input_base = basename ($input);
+    my $local_base = basename ($local);
 
-    local ($input_base) = &basename ($input);
-    local ($local_base) = &basename ($local);
-
-    local ($amfile) = $input_base . '.am';
+    my $amfile = $input_base . '.am';
     # We know we can always add '.in' because it really should be an
     # error if the .in was missing originally.
-    local ($infile) = '$(srcdir)/' . $input_base . '.in';
-    local ($colon_infile);
+    my $infile = '$(srcdir)/' . $input_base . '.in';
+    my $colon_infile = '';
     if ($local ne $input || @secondary_inputs)
     {
        $colon_infile = ':' . $input . '.in';
@@ -2929,103 +3563,65 @@ sub handle_configure
     $colon_infile .= ':' . join (':', @secondary_inputs)
        if @secondary_inputs;
 
-    local (@rewritten) = &rewrite_inputs_into_dependencies (1,
-                                                           @secondary_inputs);
-
-    # This rule remakes the Makefile.in.  Note use of
-    # @MAINTAINER_MODE_TRUE@ forces us to abandon pretty-printing.
-    # Sigh.
-    $output_rules .= ($infile
-                     # NOTE perl 5.003 (with -w) gives a
-                     # uninitialized value error on the next line.
-                     # Don't know why.
-                     . ': '
-                     . ($seen_maint_mode ? "address@hidden@ " : '')
-                     . $amfile . ' '
-                     . '$(top_srcdir)/configure.in $(ACLOCAL_M4)'
-                      . ' ' . join (' ', @include_stack)
-                      . "\n"
-                     . "\tcd \$(top_srcdir) && \$(AUTOMAKE) "
-                     . ($cygnus_mode ? '--cygnus' : ('--' . $strictness_name))
-                     . ($cmdline_use_dependencies ? '' : ' --include-deps')
-                     . ' ' . $input . $colon_infile . "\n\n");
-
-    # This rule remakes the Makefile.
-    $output_rules .= ($local_base
-                     # NOTE: bogus uninit value error on next line;
-                     # see comment above.
-                     . ': '
-                     . $infile . ' '
-                     . join (' ', @rewritten)
-                     . ' $(top_builddir)/config.status'
-                     # NOTE: Makefile only depends on BUILT_SOURCES
-                     # when dependencies are being computed.  This is
-                     # a workaround for an obscure bug with
-                     # AC_LINK_FILES.  Anyway, when dependencies are
-                     # turned off, this shouldn't matter.
-                     . ($use_dependencies ? ' $(BUILT_SOURCES)' : '')
-                     . "\n"
-                     . "\tcd \$(top_builddir) \\\n"
-                     . "\t  && CONFIG_FILES="
-                     . (($relative_dir eq '.') ? '$@' : '$(subdir)/$@')
-                     . $colon_infile
-                     . ' CONFIG_HEADERS= $(SHELL) ./config.status'
-                     . "\n\n");
-
-    if ($relative_dir ne '.')
-    {
-       # In subdirectory.
-       $top_reldir = '../';
-    }
-    else
-    {
-       &handle_aclocal_m4;
-       $output_rules .= &file_contents ('remake');
-       &examine_variable ('CONFIG_STATUS_DEPENDENCIES');
-       &examine_variable ('CONFIGURE_DEPENDENCIES');
-       $top_reldir = '';
-    }
+    my @rewritten = &rewrite_inputs_into_dependencies (1, @secondary_inputs);
+
+    my ($regen_aclocal_m4, @aclocal_m4_deps) = scan_aclocal_m4 ();
+
+    $output_rules .=
+      &file_contents ('configure',
+                     ('MAKEFILE'
+                      => $local_base,
+                      'MAKEFILE-DEPS'
+                      => join (' ', @rewritten),
+                      'CONFIG-MAKEFILE'
+                      => ((($relative_dir eq '.') ? '$@' : '$(subdir)/$@')
+                          . $colon_infile),
+                      'MAKEFILE-IN'
+                      => $infile,
+                      'MAKEFILE-IN-DEPS'
+                      => join (' ', @include_stack),
+                      'MAKEFILE-AM'
+                      => $amfile,
+                      'STRICTNESS'
+                      => $cygnus_mode ? 'cygnus' : $strictness_name,
+                      'USE-DEPS'
+                      => $cmdline_use_dependencies ? '' : ' --ignore-deps',
+                      'MAKEFILE-AM-SOURCES'
+                      =>  "$input$colon_infile",
+                      'REGEN-ACLOCAL-M4'
+                      => $regen_aclocal_m4,
+                      'ACLOCAL_M4_DEPS'
+                      => join (' ', @aclocal_m4_deps)));
 
-    # Make it easy to see if there is a Makefile.am in a given
-    # directory.
-    local (%make_dirs, $iter);
-    foreach $iter (@input_files)
-    {
-       $make_dirs{&dirname ($iter)} = 1;
-    }
-    # We also want to notice Makefile.in's.
-    foreach $iter (@other_input_files)
+    if ($relative_dir eq '.')
     {
-       if ($iter =~ /Makefile\.in$/)
-       {
-           $make_dirs{&dirname ($iter)} = 1;
-       }
+       &push_dist_common ('acconfig.h')
+           if -f 'acconfig.h';
     }
 
     # If we have a configure header, require it.
-    local ($one_hdr);
-    local (@local_fullnames) = @config_fullnames;
-    local (@local_names) = @config_names;
-    local ($hdr_index) = 0;
-    local ($distclean_config) = '';
-    foreach $one_hdr (@config_headers)
-    {
-       local ($one_fullname) = shift (@local_fullnames);
-       local ($one_name) = shift (@local_names);
+    my @local_fullnames = @config_fullnames;
+    my @local_names = @config_names;
+    my $hdr_index = 0;
+    my $distclean_config = '';
+    foreach my $one_hdr (@config_headers)
+    {
+       my $one_fullname = shift (@local_fullnames);
+       my $one_name = shift (@local_names);
        $hdr_index += 1;
-       local ($header_dir) = &dirname ($one_name);
+       my $header_dir = dirname ($one_name);
 
        # If the header is in the current directory we want to build
        # the header here.  Otherwise, if we're at the topmost
        # directory and the header's directory doesn't have a
        # Makefile, then we also want to build the header.
        if ($relative_dir eq $header_dir
-           || ($relative_dir eq '.' && ! defined $make_dirs{$header_dir}))
+           || ($relative_dir eq '.' && ! &is_make_dir ($header_dir)))
        {
-           local ($ch_sans_dir, $cn_sans_dir, $stamp_dir);
+           my ($cn_sans_dir, $stamp_dir);
            if ($relative_dir eq $header_dir)
            {
-               $cn_sans_dir = &basename ($one_name);
+               $cn_sans_dir = basename ($one_name);
                $stamp_dir = '';
            }
            else
@@ -3044,47 +3640,21 @@ sub handle_configure
            # Compute relative path from directory holding output
            # header to directory holding input header.  FIXME:
            # doesn't handle case where we have multiple inputs.
-           if (&dirname ($one_hdr) eq $relative_dir)
+           my $ch_sans_dir;
+           if (dirname ($one_hdr) eq $relative_dir)
            {
-               $ch_sans_dir = &basename ($one_hdr);
+               $ch_sans_dir = basename ($one_hdr);
            }
            else
            {
-               local (@rel_out_path, $rel_path);
-               # FIXME this chunk of code should be its own sub.
-               # It is used elsewhere.
-               foreach (split (/\//, $relative_dir))
-               {
-                   next if $_ eq '' || $_ eq '.';
-                   if ($_ eq '..')
-                   {
-                       # FIXME: actually this is an error.
-                       pop @rel_out_path;
-                   }
-                   else
-                   {
-                       push (@rel_out_path, '..');
-                   }
-               }
-               if (@rel_out_path)
-               {
-                   $ch_sans_dir = join ('/', @rel_out_path) . '/' . $one_hdr;
-               }
-               else
-               {
-                   $ch_sans_dir = $one_hdr;
-               }
+               $ch_sans_dir = backname ($relative_dir) . '/' . $one_hdr;
            }
 
            &require_file_with_conf_line ($config_header_line,
                                          $FOREIGN, $ch_sans_dir);
 
            # Header defined and in this directory.
-           local (@files);
-           if (-f $relative_dir . '/acconfig.h')
-           {
-               push (@files, 'acconfig.h');
-           }
+           my @files;
            if (-f $one_name . '.top')
            {
                push (@files, "${cn_sans_dir}.top");
@@ -3096,21 +3666,26 @@ sub handle_configure
 
            &push_dist_common (@files);
 
-           local ($stamp_name) = 'stamp-h';
-           $stamp_name .= "${hdr_index}" if scalar (@config_headers) > 1;
+           # For now, acconfig.h can only appear in the top srcdir.
+           if (-f 'acconfig.h')
+           {
+               push (@files, '$(top_srcdir)/acconfig.h');
+           }
 
-           local ($xform) = '';
+           my $stamp_name = 'stamp-h';
+           $stamp_name .= "${hdr_index}" if scalar (@config_headers) > 1;
 
-           $xform = 's,address@hidden@,' . join (' ', @files) . ',;';
-           $xform .= 's,address@hidden@,' . "${cn_sans_dir}" . ',;';
-           $xform .= 's,address@hidden@,' . "${ch_sans_dir}" . ',;';
-           $xform .= 's,address@hidden@,' . "${one_fullname}" . ',;';
-           $xform .= 's,address@hidden@,' . "${stamp_dir}${stamp_name}" . ',;';
+            my $out_dir = dirname ($ch_sans_dir);
 
-           $output_rules .= &file_contents_with_transform ($xform,
-                                                           'remake-hdr');
+            $output_rules .=
+             &file_contents ('remake-hdr',
+                             ('FILES'              => join (' ', @files),
+                              'CONFIG_HEADER'      => $cn_sans_dir,
+                              'CONFIG_HEADER_IN'   => $ch_sans_dir,
+                              'CONFIG_HEADER_FULL' => $one_fullname,
+                              'STAMP'            => "$stamp_dir$stamp_name",
+                              'SRC_STAMP'        => "$out_dir/$stamp_name"));
 
-           local ($out_dir) = &dirname ($ch_sans_dir);
            &create ("${relative_dir}/${out_dir}/${stamp_name}.in");
            &require_file_with_conf_line ($config_header_line, $FOREIGN,
                                          "${out_dir}/${stamp_name}.in");
@@ -3122,43 +3697,30 @@ sub handle_configure
 
     if ($distclean_config)
     {
-       $output_rules .= &file_contents_with_transform ('s,address@hidden@,'
-                                                       . $distclean_config
-                                                       . ',;',
-                                                       'clean-hdr');
-       push (@clean, 'hdr');
-       &push_phony_cleaners ('hdr');
+       $output_rules .= &file_contents ('clean-hdr',
+                                        ('FILES' => $distclean_config));
     }
 
     # Set location of mkinstalldirs.
-    if ($config_aux_dir ne '.' && $config_aux_dir ne '')
-    {
-       &define_variable ('mkinstalldirs', ('$(SHELL) ' . $config_aux_dir
-                                           . '/mkinstalldirs'));
-    }
-    else
-    {
-       &define_variable ('mkinstalldirs',
-                         '$(SHELL) $(top_srcdir)/mkinstalldirs');
-    }
+    &define_variable ('mkinstalldirs',
+                     ('$(SHELL) ' . $config_aux_dir . '/mkinstalldirs'));
 
     &am_line_error ('CONFIG_HEADER',
-                   "\`CONFIG_HEADER' is an anachronism; now determined from 
\`configure.in'")
+                   "`CONFIG_HEADER' is an anachronism; now determined from 
`$configure_ac'")
        if &variable_defined ('CONFIG_HEADER');
 
-    local ($one_name);
-    local ($config_header) = '';
-    foreach $one_name (@config_names)
+    my $config_header = '';
+    foreach my $one_name (@config_names)
     {
        # Generate CONFIG_HEADER define.
-       local ($one_hdr);
-       if ($relative_dir eq &dirname ($one_name))
+       my $one_hdr;
+       if ($relative_dir eq dirname ($one_name))
        {
-           $one_hdr = &basename ($one_name);
+           $one_hdr = basename ($one_name);
        }
        else
        {
-           $one_hdr = "${top_builddir}/${one_name}";
+           $one_hdr = "\$(top_builddir)/${one_name}";
        }
 
        $config_header .= ' ' if $config_header;
@@ -3171,17 +3733,17 @@ sub handle_configure
 
     # Now look for other files in this directory which must be remade
     # by config.status, and generate rules for them.
-    local (@actual_other_files) = ();
-    local ($file, $local);
-    local (@inputs, @rewritten_inputs, $single);
-    local ($need_rewritten);
-    foreach $file (@other_input_files)
+    my @actual_other_files = ();
+    foreach my $lfile (@other_input_files)
     {
-       if ($file =~ /^([^:]*):(.*)$/)
+        my ($file, $local);
+       my (@inputs, @rewritten_inputs);
+       my ($need_rewritten);
+       if ($lfile =~ /^([^:]*):(.*)$/)
        {
            # This is the ":" syntax of AC_OUTPUT.
            $file = $1;
-           $local = &basename ($file);
+           $local = basename ($file);
            @inputs = split (':', $2);
            @rewritten_inputs = &rewrite_inputs_into_dependencies (1, @inputs);
            $need_rewritten = 1;
@@ -3189,18 +3751,45 @@ sub handle_configure
        else
        {
            # Normal usage.
-           $local = &basename ($file);
-           @inputs = ($local . '.in');
+           $file = $lfile;
+           $local = basename ($file);
+           @inputs = ($file . '.in');
            @rewritten_inputs =
-               &rewrite_inputs_into_dependencies (1, $file . '.in');
+               &rewrite_inputs_into_dependencies (1, @inputs);
            $need_rewritten = 0;
        }
 
-       # Skip files not in this directory.
-       next unless &dirname ($file) eq $relative_dir;
+       # Make sure the dist directory for each input file is created.
+       # We only have to do this at the topmost level though.  This
+       # is a bit ugly but it easier than spreading out the logic,
+       # especially in cases like AC_OUTPUT(foo/out:bar/in), where
+       # there is no Makefile in bar/.
+       if ($relative_dir eq '.')
+       {
+           foreach (@inputs)
+           {
+               $dist_dirs{dirname ($_)} = 1;
+           }
+       }
 
-       # Skip any file that is an automake input.
+       # We skip any automake input files, as they are handled
+       # elsewhere.  We also skip files that aren't in this
+       # directory.  However, if the file's directory does not have a
+       # Makefile, and we are currently doing `.', then we create a
+       # rule to rebuild the file in the subdir.
        next if -f $file . '.am';
+       my $fd = dirname ($file);
+       if ($fd ne $relative_dir)
+       {
+           if ($relative_dir eq '.' && ! &is_make_dir ($fd))
+           {
+               $local = $file;
+           }
+           else
+           {
+               next;
+           }
+       }
 
        # Some users have been tempted to put `stamp-h' in the
        # AC_OUTPUT line.  This won't do the right thing, so we
@@ -3208,7 +3797,7 @@ sub handle_configure
        if ($local eq 'stamp-h')
        {
            # FIXME: allow real filename.
-           &am_conf_error ('configure.in', $ac_output_line,
+           &am_conf_error ($configure_ac, $ac_output_line,
                            'stamp-h should not appear in AC_OUTPUT');
            next;
        }
@@ -3222,9 +3811,8 @@ sub handle_configure
                          . '$@' . ($need_rewritten
                                    ? (':' . join (':', @inputs))
                                    : '')
-                         . ' CONFIG_HEADERS= $(SHELL) ./config.status'
+                         . ' CONFIG_HEADERS= CONFIG_LINKS= $(SHELL) 
./config.status'
                          . "\n");
-       push_dist_common (@inputs);
        push (@actual_other_files, $local);
 
        # Require all input files.
@@ -3239,10 +3827,9 @@ sub handle_configure
 # Handle C headers.
 sub handle_headers
 {
-    local (@r);
-    @r = &am_install_var ('header', 'HEADERS', 'include',
-                         'oldinclude', 'pkginclude',
-                         'noinst', 'check');
+    my @r = &am_install_var ('-defaultdist', 'header', 'HEADERS', 'include',
+                            'oldinclude', 'pkginclude',
+                            'noinst', 'check');
     foreach (@r)
     {
        next unless /\.(.*)$/;
@@ -3257,290 +3844,134 @@ sub handle_gettext
     if (! &variable_defined ('SUBDIRS'))
     {
        &am_conf_error
-           ("AM_GNU_GETTEXT in configure.in but SUBDIRS not defined");
+           ("AM_GNU_GETTEXT used but SUBDIRS not defined");
        return;
     }
 
-    &require_file_with_conf_line ($ac_gettext_line, $GNU, 'ABOUT-NLS');
-
-    if (&variable_defined ('SUBDIRS'))
-    {
-       &am_line_error
-           ('SUBDIRS',
-            "AM_GNU_GETTEXT in configure.in but \`po' not in SUBDIRS")
-               if $contents{'SUBDIRS'} !~ /\bpo\b/;
-       &am_line_error
-           ('SUBDIRS',
-            "AM_GNU_GETTEXT in configure.in but \`intl' not in SUBDIRS")
-               if $contents{'SUBDIRS'} !~ /\bintl\b/;
-    }
-
-    # Ensure that each language in ALL_LINGUAS has a .po file, and
-    # each po file is mentioned in ALL_LINGUAS.
-    if ($seen_linguas)
-    {
-       local (%linguas) = ();
-       grep ($linguas{$_} = 1, split (' ', $all_linguas));
-
-       foreach (<po/*.po>)
-       {
-           s/^po\///;
-           s/\.po$//;
-
-           &am_line_error ($all_linguas_line,
-                           ("po/$_.po exists but \`$_' not in \`ALL_LINGUAS'"))
-               if ! $linguas{$_};
-       }
+    my @subdirs = &variable_value_as_list ('SUBDIRS', 'all');
+    &am_line_error ('SUBDIRS',
+                   "AM_GNU_GETTEXT used but `po' not in SUBDIRS")
+       if ! grep ('po', @subdirs);
+    &am_line_error ('SUBDIRS',
+                   "AM_GNU_GETTEXT used but `intl' not in SUBDIRS")
+       if ! grep ('intl', @subdirs);
 
-       foreach (keys %linguas)
-       {
-           &am_line_error ($all_linguas_line,
-                           "$_ in \`ALL_LINGUAS' but po/$_.po does not exist")
-               if ! -f "po/$_.po";
-       }
-    }
-    else
-    {
-       &am_error ("AM_GNU_GETTEXT in configure.in but \`ALL_LINGUAS' not 
defined");
-    }
+    &require_file_with_conf_line ($ac_gettext_line, $GNU, 'ABOUT-NLS');
 }
 
 # Handle footer elements.
 sub handle_footer
 {
-    if ($contents{'SOURCES'})
-    {
-       # NOTE don't use define_pretty_variable here, because
-       # $contents{...} is already defined.
-       $output_vars .= 'SOURCES = ' . $contents{'SOURCES'} . "\n";
-    }
-    if ($contents{'OBJECTS'})
-    {
-       # NOTE don't use define_pretty_variable here, because
-       # $contents{...} is already defined.
-       $output_vars .= 'OBJECTS = ' . $contents{'OBJECTS'} . "\n";
-    }
-    if ($contents{'SOURCES'} || $contents{'OBJECTS'})
-    {
-       $output_vars .= "\n";
-    }
+    # NOTE don't use define_pretty_variable here, because
+    # $contents{...} is already defined.
+    $output_vars .= 'SOURCES = ' . variable_value ('SOURCES') . "\n\n"
+      if variable_value ('SOURCES');
 
-    if (&variable_defined ('SUFFIXES'))
-    {
-       # Push actual suffixes, and not $(SUFFIXES).  Some versions of
-       # make do not like variable substitutions on the .SUFFIXES
-       # line.
-       push (@suffixes, &variable_value_as_list ('SUFFIXES', ''));
-    }
-    if (&target_defined ('.SUFFIXES'))
-    {
-       &am_line_error ('.SUFFIXES',
-                       "use variable \`SUFFIXES', not target \`.SUFFIXES'");
-    }
+
+    &am_line_error ('.SUFFIXES',
+                   "use variable `SUFFIXES', not target `.SUFFIXES'")
+      if target_defined ('.SUFFIXES');
 
     # Note: AIX 4.1 /bin/make will fail if any suffix rule appears
     # before .SUFFIXES.  So we make sure that .SUFFIXES appears before
     # anything else, by sticking it right after the default: target.
     $output_header .= ".SUFFIXES:\n";
-    if (@suffixes)
+    if (@suffixes || &variable_defined ('SUFFIXES'))
     {
-
        # Make sure suffixes has unique elements.  Sort them to ensure
-       # the output remains consistent.
-       local (%suffixes);
-
-       grep ($suffixes{$_} = 1, @suffixes);
+       # the output remains consistent.  However, $(SUFFIXES) is
+       # always at the start of the list, unsorted.  This is done
+       # because make will choose rules depending on the ordering of
+       # suffixes, and this lets the user have some control.  Push
+       # actual suffixes, and not $(SUFFIXES).  Some versions of make
+       # do not like variable substitutions on the .SUFFIXES line.
+       my @user_suffixes = (&variable_defined ('SUFFIXES')
+                            ? &variable_value_as_list ('SUFFIXES', '')
+                            : ());
+
+       my %suffixes = map { $_ => 1 } @suffixes;
+       delete @address@hidden;
 
        $output_header .= (".SUFFIXES: "
-                          . join (' ', sort keys %suffixes)
+                          . join (' ', @user_suffixes, sort keys %suffixes)
                           . "\n");
     }
-    $output_trailer .= &file_contents ('footer');
+
+    $output_trailer .= file_contents ('footer');
 }
 
 # Deal with installdirs target.
-sub handle_installdirs
+sub handle_installdirs ()
 {
-    # GNU Makefile standards recommend this.
-    if ($recursive_install)
-    {
-       # We create a separate `-am' target so that the -recursive
-       # rule will work correctly.
-       $output_rules .= ("installdirs: installdirs-recursive\n"
-                         . "installdirs-am:\n");
-       push (@phony, 'installdirs-am');
-    }
-    else
-    {
-       $output_rules .= "installdirs:\n";
-    }
-    push (@phony, 'installdirs');
-    if (@installdirs)
-    {
-       &pretty_print_rule ("\t" . '$(mkinstalldirs) ', "\t\t",
-                           @installdirs);
-    }
-    $output_rules .= "\n";
+    $output_rules .=
+      &file_contents ('install',
+                     ('_am_installdirs'
+                      => variable_value ('_am_installdirs') || ''));
 }
 
-# There are several targets which need to be merged.  This is because
-# their complete definition is compiled from many parts.  Note that we
-# avoid double colon rules, otherwise we'd use them instead.
-sub handle_merge_targets
+
+# Deal with all and all-am.
+sub handle_all ($)
 {
-    local ($makefile) = @_;
+    my ($makefile) = @_;
 
-    # There are a few install-related variables that you should not define.
-    local ($var);
-    foreach $var ('PRE_INSTALL', 'POST_INSTALL', 'NORMAL_INSTALL')
-    {
-       if (&variable_defined ($var))
-       {
-           &am_line_error ($var, "\`$var' should not be defined");
-       }
-    }
+    # Output `all-am'.
 
     # Put this at the beginning for the sake of non-GNU makes.  This
     # is still wrong if these makes can run parallel jobs.  But it is
     # right enough.
-    unshift (@all, &basename ($makefile));
+    unshift (@all, basename ($makefile));
 
-    local ($one_name);
-    foreach $one_name (@config_names)
+    foreach my $one_name (@config_names)
     {
-       push (@all, &basename ($one_name))
-           if &dirname ($one_name) eq $relative_dir;
+       push (@all, basename ($one_name))
+           if dirname ($one_name) eq $relative_dir;
     }
 
-    &do_one_merge_target ('info', @info);
-    &do_one_merge_target ('dvi', @dvi);
-    &do_check_merge_target;
-    &do_one_merge_target ('installcheck', @installcheck);
-
-    if (defined $options{'no-installinfo'})
+    # Install `all' hooks.
+    if (&target_defined ("all-local"))
     {
-       &do_one_merge_target ('install-info', '');
-    }
-    elsif (&target_defined ('install-info-local'))
-    {
-       &am_line_error ('install-info-local',
-                       "\`install-info-local' target defined but 
\`no-installinfo' option not in use");
+      push (@all, "all-local");
+      &depend ('.PHONY', "all-local");
     }
 
-    local ($utarg);
-    foreach $utarg ('uninstall-data-local', 'uninstall-data-hook',
-                   'uninstall-exec-local', 'uninstall-exec-hook')
-    {
-       if (&target_defined ($utarg))
-       {
-           local ($x);
-           ($x = $utarg) =~ s/(data|exec)-//;
-           &am_line_error ($utarg, "use \`$x', not \`$utarg'");
-       }
-    }
+    &pretty_print_rule ("all-am:", "\t\t", @all);
+    &depend ('.PHONY', 'all-am', 'all');
 
-    if (&target_defined ('install-local'))
-    {
-       &am_line_error ('install-local',
-                       "use \`install-data-local' or \`install-exec-local', 
not \`install-local'");
-    }
 
-    if (@all)
-    {
-       local ($one_name);
-       local ($local_headers) = '';
-       foreach $one_name (@config_names)
-       {
-           if (&dirname ($one_name) eq $relative_dir)
-           {
-               $local_headers .= ' ' if $local_headers;
-               $local_headers .= &basename ($one_name);
-           }
-       }
-       if ($local_headers)
-       {
-           # This is kind of a hack, but I couldn't see a better way
-           # to handle it.  In this particular case, we need to make
-           # sure config.h is built before we recurse.  We can't do
-           # this by changing the order of dependencies to the "all"
-           # because that breaks when using parallel makes.  Instead
-           # we handle things explicitly.
-           $output_rules .= ("all-recursive-am: ${local_headers}"
-                                 . "\n\t"
-                                 . '$(MAKE) $(AM_MAKEFLAGS)'
-                                 . " all-recursive"
-                                 . "\n\n");
-           $all_target = 'all-recursive-am';
-           push (@phony, 'all-recursive-am');
-       }
-    }
-
-    # Print definitions users can use.
-    &do_one_merge_target ('install-exec', @install_exec);
-    $output_rules .= "\n";
+    # Output `all'.
 
-    &do_one_merge_target ('install-data', @install_data);
-    $output_rules .= "\n";
+    my @local_headers = ();
+    push @local_headers, '$(BUILT_SOURCES)'
+      if &variable_defined ('BUILT_SOURCES');
+    foreach my $one_name (@config_names)
+      {
+       push @local_headers, basename ($one_name)
+         if dirname ($one_name) eq $relative_dir;
+      }
 
-    &do_one_merge_target ('install', 'all-am');
-    &do_one_merge_target ('uninstall', @uninstall);
-
-    &do_one_merge_target ('all', @all);
-
-    # Generate the new 'install-strip' target.  We can't just set
-    # INSTALL_PROGRAM because that might be a relative path.
-    $output_rules .= ("install-strip:\n\t"
-                     . '$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s 
install'
-                     . "\n");
+    if (@local_headers)
+      {
+       # We need to make sure config.h is built before we recurse.
+       # We also want to make sure that built sources are built
+       # before any ordinary `all' targets are run.  We can't do this
+       # by changing the order of dependencies to the "all" because
+       # that breaks when using parallel makes.  Instead we handle
+       # things explicitly.
+       $output_all .= ("all: " . join (' ', @local_headers)
+                       . "\n\t"
+                       . '$(MAKE) $(AM_MAKEFLAGS) '
+                       . (&variable_defined ('SUBDIRS')
+                          ? 'all-recursive' : 'all-am')
+                       . "\n\n");
+      }
+    else
+      {
+       $output_all .= "all: " . (&variable_defined ('SUBDIRS')
+                                 ? 'all-recursive' : 'all-am') . "\n\n";
+      }
 }
 
-# Helper for handle_merge_targets.  Note that handle_merge_targets
-# relies on the fact that this doesn't add an extra \n at the end.
-sub do_one_merge_target
-{
-    local ($name, @values) = @_;
-
-    if (&target_defined ($name . '-local'))
-    {
-       # User defined local form of target.  So include it.
-       push (@values, $name . '-local');
-       push (@phony, $name . '-local');
-    }
-
-    &pretty_print_rule ($name . "-am:", "\t\t", @values);
-    if ($name eq 'install')
-    {
-       # Special-case `install-am' to run install-exec-am and
-       # install-data-am after all-am is built.
-       &pretty_print_rule ("address@hidden(MAKE) \$(AM_MAKEFLAGS)", "\t  ",
-                           'install-exec-am', 'install-data-am');
-    }
-    elsif ($name eq 'install-exec' && &target_defined ('install-exec-hook'))
-    {
-       $output_rules .= ("address@hidden(NORMAL_INSTALL)\n"
-                         . "\t" . '$(MAKE) $(AM_MAKEFLAGS) install-exec-hook'
-                         . "\n");
-    }
-    elsif ($name eq 'install-data' && &target_defined ('install-data-hook'))
-    {
-       $output_rules .= ("address@hidden(NORMAL_INSTALL)\n"
-                         . "\t" . '$(MAKE) $(AM_MAKEFLAGS) install-data-hook'
-                         . "\n");
-    }
-
-    local ($lname) = $name . ($recursive_install ? '-recursive' : '-am');
-    local ($tname) = $name;
-    # To understand this special case, see handle_merge_targets.
-    if ($name eq 'all')
-    {
-       $tname = 'all-redirect';
-       $lname = $all_target if $recursive_install;
-       push (@phony, 'all-redirect');
-       $output_all = "all: all-redirect\n";
-    }
-    &pretty_print_rule ($tname . ":", "\t\t", $lname);
-    push (@phony, $name . '-am', $name);
-}
 
 # Handle check merge target specially.
 sub do_check_merge_target
@@ -3549,7 +3980,7 @@ sub do_check_merge_target
     {
        # User defined local form of target.  So include it.
        push (@check_tests, 'check-local');
-       push (@phony, 'check-local');
+       &depend ('.PHONY', 'check-local');
     }
 
     # In --cygnus mode, check doesn't depend on all.
@@ -3572,307 +4003,229 @@ sub do_check_merge_target
                        @check_tests)
        if @check_tests;
 
-    push (@phony, 'check', 'check-am');
+    &depend ('.PHONY', 'check', 'check-am');
     $output_rules .= ("check: "
-                     . ($recursive_install ? 'check-recursive' : 'check-am')
+                     . (&variable_defined ('SUBDIRS')
+                        ? 'check-recursive' : 'check-am')
                      . "\n");
 }
 
 # Handle all 'clean' targets.
 sub handle_clean
 {
-    local ($xform) = '';
-    local ($name);
+    my %transform;
 
     # Don't include `MAINTAINER'; it is handled specially below.
-    foreach $name ('MOSTLY', '', 'DIST')
+    foreach my $name ('MOSTLY', '', 'DIST')
     {
-       if (! &variable_defined ($name . 'CLEANFILES'))
-       {
-           $xform .= 's/^' . $name . 'CLEAN.*$//;';
-       }
-       else
-       {
-           $xform .= 's/^' . $name . 'CLEAN//;';
-       }
+      $transform{"${name}CLEAN"} = &variable_defined ("${name}CLEANFILES");
     }
 
     # Built sources are automatically removed by maintainer-clean.
-    push (@maintainer_clean_files, '\$(BUILT_SOURCES)')
+    push (@maintainer_clean_files, '$(BUILT_SOURCES)')
        if &variable_defined ('BUILT_SOURCES');
-    push (@maintainer_clean_files, '\$(MAINTAINERCLEANFILES)')
+    push (@maintainer_clean_files, '$(MAINTAINERCLEANFILES)')
        if &variable_defined ('MAINTAINERCLEANFILES');
-    if (! @maintainer_clean_files)
-    {
-       $xform .= 's/^MAINTAINERCLEAN.*$//;';
-    }
-    else
-    {
-       $xform .= ('s/^MAINTAINERCLEAN//;'
-                  # Join with no space to avoid spurious `test -z'
-                  # success at runtime.
-                  . 's,address@hidden@,' . join ('', @maintainer_clean_files)
-                  . ',;'
-                  # A space is required in the join here.
-                  . 's,address@hidden@,' . join (' ', @maintainer_clean_files)
-                  . ',;');
-    }
-
-    $output_rules .= &file_contents_with_transform ($xform, 'clean');
 
-    push (@clean, 'generic');
-    &push_phony_cleaners ('generic');
+    $output_rules .= &file_contents ('clean',
+                                    (%transform,
+                                     'MCFILES'
+                                     # Join with no space to avoid
+                                     # spurious `test -z' success at
+                                     # runtime.
+                                     => join ('', @maintainer_clean_files),
+                                     'MFILES'
+                                     # A space is required in the join here.
+                                     => join (' ', @maintainer_clean_files)));
+}
 
-    &do_one_clean_target ('clean', 'mostly', '', @clean);
-    &do_one_clean_target ('clean', '', 'mostly', @clean);
-    &do_one_clean_target ('clean', 'dist', '', @clean);
-    &do_one_clean_target ('clean', 'maintainer-', 'dist', @clean);
 
-    push (@phony, 'clean', 'mostlyclean', 'distclean', 'maintainer-clean');
+# &depend ($CATEGORY, @DEPENDENDEES)
+# ----------------------------------
+# The target $CATEGORY depends on @DEPENDENDEES.
+sub depend
+{
+    my ($category, @dependendees) = @_;
+    {
+      push (@{$dependencies{$category}}, @dependendees);
+    }
 }
 
-# Helper for handle_clean.
-sub do_one_clean_target
+
+# &target_cmp ($A, $B)
+# --------------------
+# Subroutine for &handle_factored_dependencies to let `.PHONY' be last.
+sub target_cmp
 {
-    local ($target, $name, $last_name, @deps) = @_;
+    return 0
+        if $a eq $b;
+    return -1
+        if $b eq '.PHONY';
+    return 1
+        if $a eq '.PHONY';
+    return $a cmp $b;
+}
 
-    # Change each dependency `BLARG' into `clean-BLARG'.
-    grep (($_ = $name . 'clean-' . $_) && 0, @deps);
 
-    # Push the previous clean target.  There is no previous clean
-    # target if we're doing mostlyclean.
-    push (@deps, $last_name . $target . '-am')
-       unless $name eq 'mostly';
+# &handle_factored_dependencies ()
+# --------------------------------
+# Handle everything related to gathered targets.
+sub handle_factored_dependencies
+{
+    # Reject bad hooks.
+    foreach my $utarg ('uninstall-data-local', 'uninstall-data-hook',
+                      'uninstall-exec-local', 'uninstall-exec-hook')
+    {
+       if (&target_defined ($utarg))
+       {
+           my $x = $utarg;
+           $x =~ s/(data|exec)-//;
+           &am_line_error ($utarg, "use `$x', not `$utarg'");
+       }
+    }
 
-    # If a -local version of the rule is given, add it to the list.
-    if (&target_defined ($name . $target . '-local'))
+    if (&target_defined ('install-local'))
     {
-       push (@deps, $name . $target . '-local');
+       &am_line_error ('install-local',
+                       "use `install-data-local' or `install-exec-local', "
+                       . "not `install-local'");
     }
 
-    # Print the target and the dependencies.
-    &pretty_print_rule ($name . $target . "-am: ", "\t\t", @deps);
+    if (!defined $options{'no-installinfo'}
+       && &target_defined ('install-info-local'))
+    {
+       &am_line_error ('install-info-local',
+                       "`install-info-local' target defined but "
+                       . "`no-installinfo' option not in use");
+    }
 
-    # FIXME: shouldn't we really print these messages before running
-    # the dependencies?
-    if ($name . $target eq 'maintainer-clean')
+    # Install the -local hooks.
+    foreach (keys %dependencies)
     {
-       # Print a special warning.
-       $output_rules .=
-           ("address@hidden \"This command is intended for maintainers to 
use;\"\n"
-            . "address@hidden \"it deletes files that may require special "
-            . "tools to rebuild.\"\n");
+      # Hooks are installed on the -am targets.
+      s/-am$// or next;
+      if (&target_defined ("$_-local"))
+       {
+         depend ("$_-am", "$_-local");
+         &depend ('.PHONY', "$_-local");
+       }
     }
-    elsif ($name . $target eq 'distclean')
+
+    # Install the -hook hooks.
+    # FIXME: Why not be as liberal as we are with -local hooks?
+    foreach ('install-exec', 'install-data')
     {
-       $output_rules .= "\t-rm -f libtool\n" if $seen_libtool;
+      if (&target_defined ("$_-hook"))
+       {
+         $actions{"$_-am"} .=
+           ("address@hidden(NORMAL_INSTALL)\n"
+            . "\t" . '$(MAKE) $(AM_MAKEFLAGS) ' . "$_-hook\n");
+       }
     }
-    $output_rules .= "\n";
 
-    # Now generate the actual clean target.
-    $output_rules .= ($name . $target . ": " . $name . $target
-                     . ($recursive_install ? '-recursive' : '-am')
-                     . "\n");
+    # All the required targets are phony.
+    depend ('.PHONY', keys %required_targets);
 
-    # We special-case config.status here.  If we do it as part of the
-    # normal clean processing for this directory, then it might be
-    # removed before some subdir is cleaned.  However, that subdir's
-    # Makefile depends on config.status.
-    if (($name . $target eq 'maintainer-clean'
-        || $name . $target eq 'distclean')
-       && $relative_dir eq '.')
+    # Actually output gathered targets.
+    foreach (sort target_cmp keys %dependencies)
     {
-       $output_rules .= "\t-rm -f config.status\n";
+        # If there is nothing about this guy, skip it.
+        next
+         unless (@{$dependencies{$_}}
+                 || $actions{$_}
+                 || $required_targets{$_});
+        &pretty_print_rule ("$_:", "\t",
+                           uniq (sort @{$dependencies{$_}}));
+       $output_rules .= $actions{$_}
+         if defined $actions{$_};
+        $output_rules .= "\n";
     }
-    $output_rules .= "\n";
 }
 
-# Handle .PHONY target.
-sub handle_phony
+
+# &handle_tests_dejagnu ()
+# ------------------------
+sub handle_tests_dejagnu
 {
-    &pretty_print_rule ('.PHONY:', "", @phony);
-    $output_rules .= "\n";
+    push (@check_tests, 'check-DEJAGNU');
+    $output_rules .= file_contents ('dejagnu');
 }
 
+
 # Handle TESTS variable and other checks.
 sub handle_tests
 {
     if (defined $options{'dejagnu'})
     {
-       push (@check_tests, 'check-DEJAGNU');
-       push (@phony, 'check-DEJAGNU');
-
-       local ($xform);
-       if ($cygnus_mode)
-       {
-           $xform = 's/^CYGNUS//;';
-       }
-       else
-       {
-           $xform = 's/^CYGNUS.*$//;';
-       }
-       $output_rules .= &file_contents_with_transform ($xform, 'dejagnu');
-
-       # In Cygnus mode, these are found in the build tree.
-       # Otherwise they are looked for in $PATH.
-       &define_program_variable ('EXPECT', 'build', 'expect', 'expect');
-       &define_program_variable ('RUNTEST', 'src', 'dejagnu', 'runtest');
-
-       # Only create site.exp rule if user hasn't already written
-       # one.
-       if (! &target_defined ('site.exp'))
-       {
-           # Note that in the rule we don't directly generate
-           # site.exp to avoid the possibility of a corrupted
-           # site.exp if make is interrupted.  Jim Meyering has some
-           # useful text on this topic.
-           $output_rules .= ("site.exp: Makefile\n"
-                             . "address@hidden 'Making a new site.exp 
file...'\n"
-                             . "address@hidden ! -f site.bak || rm -f 
site.bak\n"
-                             . "address@hidden '## these variables are 
automatically generated by make ##' > address@hidden"
-                             . "address@hidden '# Do not edit here.  If you 
wish to override these values' >> address@hidden"
-                             . "address@hidden '# edit the last section' >> 
address@hidden"
-                             . "address@hidden 'set tool \$(DEJATOOL)' >> 
address@hidden"
-                             . "address@hidden 'set srcdir \$(srcdir)' >> 
address@hidden"
-                             . "address@hidden 'set objdir' \`pwd\` >> 
address@hidden");
-
-           # Extra stuff for AC_CANONICAL_*
-           local (@whatlist) = ();
-           if ($seen_canonical)
-           {
-               push (@whatlist, 'host');
-           }
-
-           # Extra stuff only for AC_CANONICAL_SYSTEM.
-           if ($seen_canonical == $AC_CANONICAL_SYSTEM)
-           {
-               push (@whatlist, 'target', 'build');
-           }
-
-           local ($c1, $c2);
-           foreach $c1 (@whatlist)
-           {
-               foreach $c2 ('alias', 'triplet')
-               {
-                   $output_rules .= "address@hidden 'set ${c1}_${c2} 
\$(${c1}_${c2})' >> address@hidden";
-               }
-           }
-
-           $output_rules .= ("address@hidden '## All variables above are 
generated by configure. Do Not Edit ##' >> address@hidden"
-                             . "address@hidden ! -f site.exp || sed '1,/^## 
All variables above are.*##/ d' site.exp >> address@hidden"
-                             . "address@hidden ! -f site.exp || mv site.exp 
site.bak\n"
-                             . "address@hidden address@hidden site.exp\n");
-       }
+        &handle_tests_dejagnu;
     }
     else
     {
-       local ($c);
-       foreach $c ('DEJATOOL', 'RUNTEST', 'RUNTESTFLAGS')
+       foreach my $c ('DEJATOOL', 'RUNTEST', 'RUNTESTFLAGS')
        {
-           if (&variable_defined ($c))
-           {
-               &am_line_error ($c, "\`$c' defined but \`dejagnu' not in 
\`AUTOMAKE_OPTIONS'");
-           }
+           &am_line_error ($c,
+                           "`$c' defined but `dejagnu' not in 
`AUTOMAKE_OPTIONS'")
+             if &variable_defined ($c);
        }
     }
 
     if (&variable_defined ('TESTS'))
     {
        push (@check_tests, 'check-TESTS');
-       push (@phony, 'check-TESTS');
-
-       $output_rules .= 'check-TESTS: $(TESTS)
-       @failed=0; all=0; \\
-       srcdir=$(srcdir); export srcdir; \\
-       for tst in $(TESTS); do \\
-         if test -f $$tst; then dir=.; \\
-         else dir="$(srcdir)"; fi; \\
-         if $(TESTS_ENVIRONMENT) $$dir/$$tst; then \\
-           all=`expr $$all + 1`; \\
-           echo "PASS: $$tst"; \\
-         elif test $$? -ne 77; then \\
-           all=`expr $$all + 1`; \\
-           failed=`expr $$failed + 1`; \\
-           echo "FAIL: $$tst"; \\
-         fi; \\
-       done; \\
-       if test "$$failed" -eq 0; then \\
-         banner="All $$all tests passed"; \\
-       else \\
-         banner="$$failed of $$all tests failed"; \\
-       fi; \\
-       dashes=`echo "$$banner" | sed s/./=/g`; \\
-       echo "$$dashes"; \\
-       echo "$$banner"; \\
-       echo "$$dashes"; \\
-       test "$$failed" -eq 0
-';
+       $output_rules .= &file_contents ('check');
     }
 }
 
 # Handle Emacs Lisp.
 sub handle_emacs_lisp
 {
-    local (@elfiles) = &am_install_var ('lisp', 'LISP', 'lisp', 'noinst');
+    my @elfiles = &am_install_var ('-candist', 'lisp', 'LISP',
+                                  'lisp', 'noinst');
 
-    if (@elfiles)
-    {
-       # Found some lisp.
-       &define_configure_variable ('lispdir');
-       &define_configure_variable ('EMACS');
-       $output_rules .= (".el.elc:\n"
-                         . "address@hidden 'WARNING: Warnings can be ignored. 
:-)'\n"
-                         . "\tif test \$(EMACS) != no; then \\\n"
-                         . "\t  EMACS=\$(EMACS) \$(SHELL) 
\$(srcdir)/elisp-comp \$<; \\\n"
-                         . "\tfi\n");
-       push (@suffixes, '.el', '.elc');
+    return if ! @elfiles;
 
-       # Generate .elc files.
-       grep ($_ .= 'c', @elfiles);
-       &define_pretty_variable ('ELCFILES', '', @elfiles);
+    # Generate .elc files.
+    my @elcfiles = map { $_ . 'c' } @elfiles;
+    &define_pretty_variable ('ELCFILES', '', @elcfiles);
 
-       $output_rules .= &file_contents ('lisp-clean');
-       push (@clean, 'lisp');
-       &push_phony_cleaners ('lisp');
+    push (@all, '$(ELCFILES)');
 
-       push (@all, '$(ELCFILES)');
+    &am_error ("`lisp_LISP' defined but `AM_PATH_LISPDIR' not in 
`$configure_ac'")
+      if ! $seen_lispdir && &variable_defined ('lisp_LISP');
 
-       local ($varname);
-       if (&variable_defined ('lisp_LISP'))
-       {
-           $varname = 'lisp_LISP';
-           &am_error ("\`lisp_LISP' defined but \`AM_PATH_LISPDIR' not in 
\`configure.in'")
-               if ! $seen_lispdir;
-       }
-       else
-       {
-           $varname = 'noinst_LISP';
-       }
+    &require_file_with_conf_line ('AM_PATH_LISPDIR', $FOREIGN, 'elisp-comp');
+}
 
-       &require_file_with_line ($varname, $FOREIGN, 'elisp-comp');
-    }
+# Handle Python
+sub handle_python
+{
+    my @pyfiles = &am_install_var ('-defaultdist', 'python', 'PYTHON',
+                                  'python', 'noinst');
+    return if ! @pyfiles;
+
+    # Found some python.
+    &am_error ("`python_PYTHON' defined but `AM_PATH_PYTHON' not in 
`$configure_ac'")
+       if ! $seen_pythondir && &variable_defined ('python_PYTHON');
+
+    &require_file_with_conf_line ('AM_PATH_PYTHON', $FOREIGN, 'py-compile');
+    &define_variable ('py_compile', $config_aux_dir . '/py-compile');
 }
 
 # Handle Java.
 sub handle_java
 {
-    local (@sourcelist) = &am_install_var ('-clean', 'java', 'JAVA',
-                                          'java', 'noinst', 'check');
+    my @sourcelist = &am_install_var ('-candist',
+                                     'java', 'JAVA',
+                                     'java', 'noinst', 'check');
     return if ! @sourcelist;
 
-    &define_variable ('JAVAC', 'javac');
-    &define_variable ('JAVACFLAGS', '');
-    &define_variable ('CLASSPATH_ENV',
-                     
'CLASSPATH=$(JAVAROOT):$(srcdir)/$(JAVAROOT):$$CLASSPATH');
-    &define_variable ('JAVAROOT', '$(top_builddir)');
-
-    local (%valid) = &am_primary_prefixes ('JAVA', 'java', 'noinst', 'check');
+    my %valid = &am_primary_prefixes ('JAVA', 1,
+                                     'java', 'noinst', 'check');
 
-    local ($dir, $curs);
-    foreach $curs (keys %valid)
+    my $dir;
+    foreach my $curs (keys %valid)
     {
-       if (! &variable_defined ($curs . '_JAVA') || $curs eq 'noinst'
-           || $curs eq 'EXTRA')
+       if (! &variable_defined ($curs . '_JAVA') || $curs eq 'EXTRA')
        {
            next;
        }
@@ -3885,15 +4238,10 @@ sub handle_java
        $dir = $curs;
     }
 
-    $output_rules .= ('class' . $dir . '.stamp: $(' . $dir . '_JAVA)' . "\n"
-                     . "\t" . '$(CLASSPATH_ENV) $(JAVAC) -d $(JAVAROOT) '
-                     . '$(JAVACFLAGS) $?' . "\n"
-                     . "\t" . 'echo timestamp > class' . $dir . '.stamp'
-                     . "\n");
     push (@all, 'class' . $dir . '.stamp');
-    &push_dist_common ('$(' . $dir . '_JAVA)');
 }
 
+
 # Handle some of the minor options.
 sub handle_minor_options
 {
@@ -3904,9 +4252,9 @@ sub handle_minor_options
            if ($package_version !~ /^$GNITS_VERSION_PATTERN$/)
            {
                # FIXME: allow real filename.
-               &am_conf_line_error ('configure.in',
+               &am_conf_line_error ($configure_ac,
                                     $package_version_line,
-                                    "version \`$package_version' doesn't 
follow Gnits standards");
+                                    "version `$package_version' doesn't follow 
Gnits standards");
            }
            elsif (defined $1 && -f 'README-alpha')
            {
@@ -3920,17 +4268,127 @@ sub handle_minor_options
 
 ################################################################
 
-# Scan one file for interesting things.  Subroutine of scan_configure.
-sub scan_one_configure_file
+my %make_list;
+
+# &scan_autoconf_config_files ($CONFIG-FILES)
+# -------------------------------------------
+# Study $CONFIG-FILES which is the first argument to AC_CONFIG_FILES
+# (or AC_OUTPUT).
+sub scan_autoconf_config_files
 {
-    local ($filename) = @_;
-    local (*CONFIGURE);
+    my ($config_files) = @_;
+    # Look at potential Makefile.am's.
+    foreach (split ' ', $config_files)
+    {
+        # Must skip empty string for Perl 4.
+        next if $_ eq "\\" || $_ eq '';
 
-    open (CONFIGURE, $filename)
-       || die "automake: couldn't open \`$filename': $!\n";
-    print "automake: reading $filename\n" if $verbose;
+        # Handle $local:$input syntax.  Note that we ignore
+        # every input file past the first, though we keep
+        # those around for later.
+        my ($local, $input, @rest) = split (/:/);
+        if (! $input)
+        {
+            $input = $local;
+        }
+        else
+        {
+            # FIXME: should be error if .in is missing.
+            $input =~ s/\.in$//;
+        }
+
+        if (-f $input . '.am')
+        {
+            # We have a file that automake should generate.
+            $make_list{$input} = join (':', ($local, @rest));
+        }
+        else
+        {
+            # We have a file that automake should cause to be
+            # rebuilt, but shouldn't generate itself.
+            push (@other_input_files, $_);
+        }
+    }
+}
+
+
+# &scan_autoconf_traces ($FILENAME)
+# ---------------------------------
+# FIXME: For the time being, we don't care about the FILENAME.
+sub scan_autoconf_traces
+{
+    my ($filename) = @_;
 
-    while (<CONFIGURE>)
+    my $traces = "$ENV{amtraces} ";
+
+    $traces .= ' -t AC_CONFIG_FILES';
+    $traces .= ' -t AC_LIBSOURCE';
+    $traces .= ' -t AC_SUBST';
+
+    my $tracefh = new IO::File ("$traces |");
+    if (! $tracefh)
+    {
+       die "$me: couldn't open `$traces': $!\n";
+    }
+    print "$me: reading $traces\n" if $verbose;
+
+    while ($_ = $tracefh->getline)
+    {
+        chomp;
+        my ($file, $line, $macro, @args) = split /:/;
+       my $here = "$file:$line";
+
+       # Alphabetical ordering please.
+        if ($macro eq 'AC_CONFIG_FILES')
+       {
+           # Look at potential Makefile.am's.
+           &scan_autoconf_config_files ($args[0]);
+       }
+        elsif ($macro eq 'AC_LIBSOURCE')
+       {
+           my $source = "$args[0].c";
+           # We should actually also `close' the sources: getopt.c
+           # wants getopt.h etc.  But actually it should be done in the
+           # macro itself, i.e., we have to first fix Autoconf to extend
+           # _AC_LIBOBJ_DECL and use it the in various macros.
+           if (!defined $libsources{$source})
+               {
+                   print STDERR "traces: discovered $source\n";
+                   $libsources{$source} = $here;
+               }
+       }
+        elsif ($macro eq 'AC_SUBST')
+       {
+           if (!defined $configure_vars{$args[0]})
+               {
+                   print STDERR "traces: discovered AC_SUBST($args[0])\n";
+                   $configure_vars{$args[0]} = $here;
+               }
+       }
+    }
+
+    $tracefh->close
+       || die "$me: close: $traces: $!\n";
+}
+
+
+# &scan_one_autoconf_file ($FILENAME)
+# -----------------------------------
+# Scan one file for interesting things.  Subroutine of
+# &scan_autoconf_files.
+sub scan_one_autoconf_file
+{
+    my ($filename) = @_;
+
+    my $configfh = new IO::File ("< $filename");
+    if (! $configfh)
+    {
+       die "$me: couldn't open `$filename': $!\n";
+    }
+    print "$me: reading $filename\n" if $verbose;
+
+    my ($in_ac_output, $in_ac_replace) = (0, 0);
+    while ($_ = $configfh->getline)
     {
        # Remove comments from current line.
        s/\bdnl\b.*$//;
@@ -3945,7 +4403,12 @@ sub scan_one_configure_file
        # Cygnus and hopefully nowhere else.
        if (/sinclude\((.*)\)/ && -f $1)
        {
-           &scan_one_configure_file ($1);
+           # $_ being local, if we don't preserve it, when coming
+           # back we will have $_ undefined, which is bad for the
+           # the rest of this routine.
+           my $underscore = $_;
+           &scan_one_autoconf_file ($1);
+           $_ = $underscore;
        }
 
        # Populate libobjs array.
@@ -3980,10 +4443,8 @@ sub scan_one_configure_file
            $libsources{'rx.h'} = 1;
            $libsources{'regex.c'} = 1;
            $libsources{'regex.h'} = 1;
-           $omit_dependencies{'rx.h'} = 1;
-           $omit_dependencies{'regex.h'} = 1;
        }
-       elsif (/AM_FUNC_MKTIME/)
+       elsif (/AC_FUNC_MKTIME/)
        {
            $libsources{'mktime.c'} = 1;
        }
@@ -4000,14 +4461,31 @@ sub scan_one_configure_file
        elsif (/LIBOBJS="(.*)\s+\$LIBOBJS"/
               || /LIBOBJS="\$LIBOBJS\s+(.*)"/)
        {
-           foreach $libobj_iter (split (' ', $1))
+           foreach my $libobj_iter (split (' ', $1))
            {
-               if ($libobj_iter =~ /^(.*)\.o(bj)?$/)
+               if ($libobj_iter =~ /^(.*)\.o(bj)?$/
+                   || $libobj_iter =~ /^(.*)\.\$ac_objext$/
+                   || $libobj_iter =~ /^(.*)\.\$\{ac_objext\}$/)
                {
                    $libsources{$1 . '.c'} = 1;
                }
            }
        }
+       elsif (/AC_LIBOBJ\(([^)]+)\)/)
+       {
+           $libsources{"$1.c"} = 1;
+       }
+        elsif (/AC_LIBSOURCE\(([^)]+)\)/)
+       {
+           $libsources{&unquote_m4_arg ($1)} = 1;
+       }
+        elsif (/AC_LIBSOURCES\(([^)]+)\)/)
+       {
+           foreach my $lc_iter (split (/[, ]+/, &unquote_m4_arg ($1)))
+           {
+               $libsources{$lc_iter} = 1;
+           }
+       }
 
        if (! $in_ac_replace && s/AC_REPLACE_FUNCS\s*\(\[?//)
        {
@@ -4028,23 +4506,23 @@ sub scan_one_configure_file
 
        if (/$obsolete_rx/o)
        {
-           local ($hint) = '';
-           if ($obsolete_macros{$1})
+           my $hint = '';
+           if ($obsolete_macros{$1} ne '')
            {
                $hint = '; ' . $obsolete_macros{$1};
            }
-           &am_conf_line_error ($filename, $., "\`$1' is obsolete$hint");
+           &am_conf_line_error ($filename, $., "`$1' is obsolete$hint");
        }
 
-       # Process the AC_OUTPUT macro.
-       if (! $in_ac_output && s/AC_OUTPUT\s*\(\[?//)
+       # Process the AC_OUTPUT and AC_CONFIG_FILES macros.
+       if (! $in_ac_output && s/AC_(OUTPUT|CONFIG_FILES)\s*\(\[?//)
        {
            $in_ac_output = 1;
            $ac_output_line = $.;
        }
        if ($in_ac_output)
        {
-           local ($closing) = 0;
+           my $closing = 0;
            if (s/[\]\),].*$//)
            {
                $in_ac_output = 0;
@@ -4052,97 +4530,55 @@ sub scan_one_configure_file
            }
 
            # Look at potential Makefile.am's.
-           foreach (split)
-           {
-               # Must skip empty string for Perl 4.
-               next if $_ eq "\\" || $_ eq '';
-
-               # Handle $local:$input syntax.  Note that we ignore
-               # every input file past the first, though we keep
-               # those around for later.
-               local ($local, $input, @rest) = split (/:/);
-               if (! $input)
-               {
-                   $input = $local;
-               }
-               else
-               {
-                   # FIXME: should be error if .in is missing.
-                   $input =~ s/\.in$//;
-               }
+           &scan_autoconf_config_files ($_);
 
-               if (-f $input . '.am')
-               {
-                   # We have a file that automake should generate.
-                   push (@make_input_list, $input);
-                   $make_list{$input} = join (':', ($local, @rest));
-               }
-               else
-               {
-                   # We have a file that automake should cause to be
-                   # rebuilt, but shouldn't generate itself.
-                   push (@other_input_files, $_);
-               }
-           }
-
-           if ($closing && @make_input_list == 0 && @other_input_files == 0)
+           if ($closing
+               && scalar keys %make_list == 0
+               && @other_input_files == 0)
            {
                &am_conf_line_error ($filename, $ac_output_line,
-                                    "No files mentioned in \`AC_OUTPUT'");
+                                    "No files mentioned in `AC_OUTPUT'");
                exit 1;
            }
        }
 
        if (/$AC_CONFIG_AUX_DIR_PATTERN/o)
        {
-           @config_aux_path = $1;
+           @config_aux_path = &unquote_m4_arg ($1);
+           $config_aux_dir_set_in_configure_in = 1;
        }
 
        # Check for ansi2knr.
        $am_c_prototypes = 1 if /AM_C_PROTOTYPES/;
 
-       # Check for exe extension stuff.
-       if (/AC_EXEEXT/)
-       {
-           $seen_exeext = 1;
-           $configure_vars{'EXEEXT'} = $filename . ':' . $.;
-       }
-
        if (/AC_OBJEXT/)
        {
            $seen_objext = 1;
            $configure_vars{'OBJEXT'} = $filename . ':' . $.;
        }
 
+       # Check for `-c -o' code.
+       $seen_cc_c_o = 1 if /AM_PROG_CC_C_O/;
+
        # Check for NLS support.
        if (/AM_GNU_GETTEXT/)
        {
            $seen_gettext = 1;
            $ac_gettext_line = $.;
-           $omit_dependencies{'libintl.h'} = 1;
-       }
-
-        # Look for ALL_LINGUAS.
-        if (/ALL_LINGUAS="(.*)"$/ || /ALL_LINGUAS=(.*)$/)
-       {
-           $seen_linguas = 1;
-           $all_linguas = $1;
-           $all_linguas_line = $.;
        }
 
        # Handle configuration headers.  A config header of `[$1]'
        # means we are actually scanning AM_CONFIG_HEADER from
        # aclocal.m4.
-       if (/A([CM])_CONFIG_HEADER\s*\((.*)\)/
+       if (/A([CM])_CONFIG_HEADERS?\s*\((.*)\)/
            && $2 ne '[$1]')
        {
            &am_conf_line_error
-               ($filename, $., "\`automake requires \`AM_CONFIG_HEADER', not 
\`AC_CONFIG_HEADER'")
+               ($filename, $., "`automake requires `AM_CONFIG_HEADER', not 
`AC_CONFIG_HEADER'")
                    if $1 eq 'C';
 
            $config_header_line = $.;
-           local ($one_hdr);
-           foreach $one_hdr (split (' ', $2))
+           foreach my $one_hdr (split (' ', &unquote_m4_arg ($2)))
            {
                push (@config_fullnames, $one_hdr);
                if ($one_hdr =~ /^([^:]+):(.+)$/)
@@ -4165,50 +4601,38 @@ sub scan_one_configure_file
                && (/AC_CANONICAL_HOST/ || /AC_CHECK_TOOL/);
         $seen_canonical = $AC_CANONICAL_SYSTEM if /AC_CANONICAL_SYSTEM/;
 
-       $seen_path_xtra = 1 if /AC_PATH_XTRA/;
+        # If using X, include some extra variable definitions.  NOTE
+        # we don't want to force these into CFLAGS or anything,
+        # because not all programs will necessarily use X.
+       if (/AC_PATH_XTRA/)
+         {
+           foreach my $var ('X_CFLAGS', 'X_LIBS', 'X_EXTRA_LIBS',
+                            'X_PRE_LIBS')
+             {
+               $configure_vars{$var} = $filename . ':' . $.
+             }
+         }
 
         # This macro handles several different things.
         if (/$AM_INIT_AUTOMAKE_PATTERN/o)
        {
-           $seen_make_set = 1;
-           $seen_package = 1;
-           $seen_version = 1;
-           $seen_arg_prog = 1;
-           $seen_prog_install = 1;
            ($package_version = $1) =~ s/$AM_PACKAGE_VERSION_PATTERN/$1/o;
            $package_version_line = $.;
+           $seen_init_automake = 1;
        }
 
-       # This is like AM_INIT_AUTOMAKE, but doesn't actually set the
-       # package and version number.  (This might change in the
-       # future).  Yes, I'm not above hacking Automake so it works
-       # well with other GNU tools -- that is actually the point.
-       if (/AM_INIT_GUILE_MODULE/)
-       {
-           $seen_make_set = 1;
-           $seen_package = 1;
-           $seen_version = 1;
-           $seen_arg_prog = 1;
-           $seen_prog_install = 1;
-           @config_aux_path = ('..');
-       }
-
-       # Some things required by Automake.
-       $seen_make_set = 1 if /AC_PROG_MAKE_SET/;
-       $seen_arg_prog = 1 if /AC_ARG_PROGRAM/;
-
        if (/AM_PROG_LEX/)
        {
            $configure_vars{'LEX'} = $filename . ':' . $.;
            $seen_decl_yytext = 1;
        }
-       if (/AC_DECL_YYTEXT/ && $filename =~ /configure\.in$/)
+       if (/AC_DECL_YYTEXT/ && $filename =~ /configure\.(ac|in)$/)
        {
-           &am_conf_line_warning ($filename, $., "\`AC_DECL_YYTEXT' is covered 
by \`AM_PROG_LEX'");
+           &am_conf_line_warning ($filename, $., "`AC_DECL_YYTEXT' is covered 
by `AM_PROG_LEX'");
        }
-       if (/AC_PROG_LEX/ && $filename =~ /configure\.in$/)
+       if (/AC_PROG_LEX/ && $filename =~ /configure\.(ac|in)$/)
        {
-           &am_conf_line_warning ($filename, $., "automake requires 
\`AM_PROG_LEX', not \`AC_PROG_LEX'");
+           &am_conf_line_warning ($filename, $., "automake requires 
`AM_PROG_LEX', not `AC_PROG_LEX'");
        }
 
        if (/AC_PROG_(F77|YACC|RANLIB|CC|CXXCPP|CXX|LEX|AWK|CPP|LN_S)/)
@@ -4223,7 +4647,10 @@ sub scan_one_configure_file
            && $1 ne 'ACLOCAL'
            && $1 ne 'AUTOCONF'
            && $1 ne 'AUTOMAKE'
-           && $1 ne 'AUTOHEADER')
+           && $1 ne 'AUTOHEADER'
+           # AM_INIT_AUTOMAKE is AM_MISSING_PROG'ing MAKEINFO.  But
+           # we handle it elsewhere.
+           && $1 ne 'MAKEINFO')
        {
            $configure_vars{$1} = $filename . ':' . $.;
        }
@@ -4247,31 +4674,34 @@ sub scan_one_configure_file
            $seen_maint_mode = 1;
            $configure_cond{'MAINTAINER_MODE'} = 1;
        }
-        $seen_package = 1 if /PACKAGE=/;
-
-       # Skip VERSION of [$2]; that is from AM_INIT_AUTOMAKE.
-        if (/\bVERSION=(\S+)/ && $1 ne '[$2]')
-       {
-           $seen_version = 1;
-           $package_version = $1;
-           $package_version_line = $.;
-       }
-        elsif (/VERSION=/)
-       {
-           $seen_version = 1;
-       }
 
-       $seen_prog_install = 1 if /AC_PROG_INSTALL/;
         $seen_lispdir = 1 if /AM_PATH_LISPDIR/;
 
-        if (/AM_PROG_LIBTOOL/)
-       {
+        if (/AM_PATH_PYTHON/)
+         {
+           $seen_pythondir = 1;
+           $configure_vars{'pythondir'} = $filename . ':' . $.;
+           $configure_vars{'PYTHON'} = $filename . ':' . $.;
+         }
+
+        if (/A(C|M)_PROG_LIBTOOL/)
+       {
+           # We're not ready for this yet.  People still use a
+           # libtool with no AC_PROG_LIBTOOL.  Once that is the
+           # dominant version we can reenable this code -- but next
+           # time by mentioning the macro in %obsolete_macros, both
+           # here and in aclocal.in.
+
+           # if (/AM_PROG_LIBTOOL/)
+           # {
+           #   &am_conf_line_warning ($filename, $., "`AM_PROG_LIBTOOL' is 
obsolete, use `AC_PROG_LIBTOOL' instead");
+           # }
            $seen_libtool = 1;
            $libtool_line = $.;
            $configure_vars{'LIBTOOL'} = $filename . ':' . $.;
            $configure_vars{'RANLIB'} = $filename . ':' . $.;
            $configure_vars{'CC'} = $filename . ':' . $.;
-           # AM_PROG_LIBTOOL runs AC_CANONICAL_HOST.  Make sure we
+           # AC_PROG_LIBTOOL runs AC_CANONICAL_HOST.  Make sure we
            # never downgrade (if we've seen AC_CANONICAL_SYSTEM).
            $seen_canonical = $AC_CANONICAL_HOST if ! $seen_canonical;
        }
@@ -4290,46 +4720,72 @@ sub scan_one_configure_file
        }
     }
 
-    close (CONFIGURE);
+    $configfh->close;
 }
 
-# Scan configure.in and aclocal.m4 for interesting things.  We must
-# scan aclocal.m4 because there might be AC_SUBSTs and such there.
-sub scan_configure
+
+# &scan_autoconf_files ()
+# -----------------------
+# Check whether we use `configure.ac' or `configure.in'.
+# Scan it (and possibly `aclocal.m4') for interesting things.
+# We must scan aclocal.m4 because there might be AC_SUBSTs and such there.
+sub scan_autoconf_files
 {
     # Reinitialize libsources here.  This isn't really necessary,
-    # since we currently assume there is only one configure.in.  But
+    # since we currently assume there is only one configure.ac.  But
     # that won't always be the case.
     %libsources = ();
 
-    local ($in_ac_output, $in_ac_replace) = (0, 0);
-    local (%make_list, @make_input_list);
-    local ($libobj_iter);
-
-    &scan_one_configure_file ('configure.in');
-    &scan_one_configure_file ('aclocal.m4')
+    warn "$me: both `configure.ac' and `configure.in' present:"
+         . " ignoring `configure.in'\n"
+        if -f 'configure.ac' && -f 'configure.in';
+    $configure_ac = 'configure.in'
+        if -f 'configure.in';
+    $configure_ac = 'configure.ac'
+        if -f 'configure.ac';
+    die "$me: `configure.ac' or `configure.in' is required\n"
+        if !$configure_ac;
+
+    &scan_one_autoconf_file ($configure_ac);
+    &scan_one_autoconf_file ('aclocal.m4')
        if -f 'aclocal.m4';
 
+    if (defined $ENV{'amtraces'})
+    {
+        warn '$me: Autoconf traces is an experimental feature';
+        warn '$me: use at your own risks';
+
+        &scan_autoconf_traces ($configure_ac);
+    }
+
     # Set input and output files if not specified by user.
     if (! @input_files)
     {
-       @input_files = @make_input_list;
+       @input_files = sort keys %make_list;
        %output_files = %make_list;
     }
 
-    &am_conf_error ("\`PACKAGE' not defined in configure.in")
-        if ! $seen_package;
-    &am_conf_error ("\`VERSION' not defined in configure.in")
-        if ! $seen_version;
+    @configure_input_files = sort keys %make_list;
+
+    &am_conf_error ("`AM_INIT_AUTOMAKE' must be used")
+       if ! $seen_init_automake;
 
     # Look for some files we need.  Always check for these.  This
     # check must be done for every run, even those where we are only
     # looking at a subdir Makefile.  We must set relative_dir so that
     # the file-finding machinery works.
-    local ($relative_dir) = '.';
+    # FIXME: Is this broken because it needs dynamic scopes.
+    # My tests seems to show it's not the case.
+    $relative_dir = '.';
     &require_config_file ($FOREIGN, 'install-sh', 'mkinstalldirs', 'missing');
-    &am_error ("\`install.sh' is an anachronism; use \`install-sh' instead")
+    &am_error ("`install.sh' is an anachronism; use `install-sh' instead")
         if -f $config_aux_path[0] . '/install.sh';
+
+    &require_config_file ($FOREIGN, 'py-compile')
+       if $seen_pythondir;
+
+    # Preserve dist_common for later.
+    $configure_dist_common = variable_value ('DIST_COMMON', 'TRUE') || '';
 }
 
 ################################################################
@@ -4346,12 +4802,7 @@ sub check_cygnus
 
     if (! $seen_maint_mode)
     {
-       &am_conf_error ("\`AM_MAINTAINER_MODE' required when --cygnus 
specified");
-    }
-
-    if (! $seen_exeext)
-    {
-       &am_conf_error ("\`AC_EXEEXT' required when --cygnus specified");
+       &am_conf_error ("`AM_MAINTAINER_MODE' required when --cygnus 
specified");
     }
 }
 
@@ -4365,33 +4816,24 @@ sub check_gnu_standards
                       'AUTHORS', 'ChangeLog');
     }
 
-    if ($strictness >= $GNU)
+    if ($strictness >= $GNU
+       && defined $options{'no-installman'})
     {
-       if (defined $options{'no-installman'})
-       {
-           &am_line_error ('AUTOMAKE_OPTIONS',
-                           "option \`no-installman' disallowed by GNU 
standards");
-       }
+       &am_line_error ('AUTOMAKE_OPTIONS',
+                       "option `no-installman' disallowed by GNU standards");
+    }
 
-       if (defined $options{'no-installinfo'})
-       {
-           &am_line_error ('AUTOMAKE_OPTIONS',
-                           "option \`no-installinfo' disallowed by GNU 
standards");
-       }
+    if ($strictness >= $GNU
+       && defined $options{'no-installinfo'})
+    {
+       &am_line_error ('AUTOMAKE_OPTIONS',
+                       "option `no-installinfo' disallowed by GNU standards");
     }
 }
 
 # Do any extra checking for GNITS standards.
 sub check_gnits_standards
 {
-    if ($strictness >= $GNITS)
-    {
-       if (-f $relative_dir . '/COPYING.LIB')
-       {
-           &am_error ("\`${relative_dir}/COPYING.LIB' disallowed by Gnits 
standards");
-       }
-    }
-
     if ($relative_dir eq '.')
     {
        # In top level (or only) directory.
@@ -4403,109 +4845,143 @@ sub check_gnits_standards
 #
 # Functions to handle files of each language.
 
-# Each `lang_X_rewrite' function follows a simple formula:
-# * Args are the base name and extension of the file.
-# * Return value is 1 if file is to be dealt with, 0 otherwise.
-# Much of the actual processing is handled in handle_single_transform_list.
-# These functions exist so that auxiliary information can be recorded
-# for a later cleanup pass.  Note that the calls to these functions
-# are computed, so don't bother searching for their precise names
-# in the source.
+# Each `lang_X_rewrite($DIRECTORY, $BASE, $EXT)' function follows a
+# simple formula: Return value is $LANG_SUBDIR if the resulting object
+# file should be in a subdir if the source file is, $LANG_PROCESS if
+# file is to be dealt with, $LANG_IGNORE otherwise.
+
+# Much of the actual processing is handled in
+# handle_single_transform_list.  These functions exist so that
+# auxiliary information can be recorded for a later cleanup pass.
+# Note that the calls to these functions are computed, so don't bother
+# searching for their precise names in the source.
+
+# This is just a convenience function that can be used to determine
+# when a subdir object should be used.
+sub lang_sub_obj
+{
+    return defined $options{'subdir-objects'} ? $LANG_SUBDIR : $LANG_PROCESS;
+}
 
 # Rewrite a single C source file.
 sub lang_c_rewrite
 {
-    local ($base, $ext) = @_;
+    my ($directory, $base, $ext) = @_;
 
     if (defined $options{'ansi2knr'} && $base =~ /_$/)
     {
        # FIXME: include line number in error.
-       &am_error ("C source file \`$base.c' would be deleted by ansi2knr 
rules");
+       &am_error ("C source file `$base.c' would be deleted by ansi2knr 
rules");
+    }
+
+    my $r = $LANG_PROCESS;
+    if (defined $options{'subdir-objects'})
+    {
+       $r = $LANG_SUBDIR;
+       $base = $directory . '/' . $base;
+
+       if (! $seen_cc_c_o)
+       {
+           # Only give error once.
+           $seen_cc_c_o = 1;
+           # FIXME: line number.
+           &am_error ("C objects in subdir but `AM_PROG_CC_C_O' not in 
`$configure_ac'");
+       }
+
+       &require_config_file ($FOREIGN, 'compile');
     }
 
     $de_ansi_files{$base} = 1;
-    return 1;
+    return $r;
 }
 
 # Rewrite a single C++ source file.
 sub lang_cxx_rewrite
 {
-    return 1;
+    return &lang_sub_obj;
 }
 
 # Rewrite a single header file.
 sub lang_header_rewrite
 {
     # Header files are simply ignored.
-    return 0;
+    return $LANG_IGNORE;
 }
 
 # Rewrite a single yacc file.
 sub lang_yacc_rewrite
 {
-    local ($base, $ext) = @_;
+    my ($directory, $base, $ext) = @_;
 
-    &lang_c_rewrite ($base, $ext);
-    $yacc_sources{$base . '.' . $ext} = 1;
-    $ext =~ tr/y/c/;
-    &saw_extension ('c');
-    &push_dist_common ($base . '.' . $ext);
-    return 1;
+    my $r = &lang_sub_obj;
+    (my $newext = $ext) =~ tr/y/c/;
+    return ($r, $newext);
 }
 
 # Rewrite a single yacc++ file.
 sub lang_yaccxx_rewrite
 {
-    local ($base, $ext) = @_;
+    my ($directory, $base, $ext) = @_;
 
-    $yacc_sources{$base . '.' . $ext} = 1;
-    $ext =~ tr/y/c/;
-    &saw_extension ($ext);
-    &push_dist_common ($base . '.' . $ext);
-    return 1;
+    my $r = &lang_sub_obj;
+    (my $newext = $ext) =~ tr/y/c/;
+    return ($r, $newext);
 }
 
 # Rewrite a single lex file.
 sub lang_lex_rewrite
 {
-    local ($base, $ext) = @_;
+    my ($directory, $base, $ext) = @_;
 
-    &lang_c_rewrite ($base, $ext);
-    $lex_sources{$base . '.' . $ext} = 1;
-    $ext =~ tr/l/c/;
-    &saw_extension ('c');
-    &push_dist_common ($base . '.' . $ext);
-    return 1;
+    my $r = &lang_sub_obj;
+    (my $newext = $ext) =~ tr/l/c/;
+    return ($r, $newext);
 }
 
 # Rewrite a single lex++ file.
 sub lang_lexxx_rewrite
 {
-    local ($base, $ext) = @_;
+    my ($directory, $base, $ext) = @_;
 
-    $lex_sources{$base . '.' . $ext} = 1;
-    $ext =~ tr/l/c/;
-    &saw_extension ($ext);
-    &push_dist_common ($base . '.' . $ext);
-    return 1;
+    my $r = &lang_sub_obj;
+    (my $newext = $ext) =~ tr/l/c/;
+    return ($r, $newext);
 }
 
 # Rewrite a single assembly file.
 sub lang_asm_rewrite
 {
-    return 1;
+    return &lang_sub_obj;
 }
 
 # Rewrite a single Fortran 77 file.
 sub lang_f77_rewrite
 {
-    return 1;
+    return $LANG_PROCESS;
+}
+
+# Rewrite a single preprocessed Fortran 77 file.
+sub lang_ppf77_rewrite
+{
+    return $LANG_PROCESS;
+}
+
+# Rewrite a single ratfor file.
+sub lang_ratfor_rewrite
+{
+    return $LANG_PROCESS;
 }
 
 # Rewrite a single Objective C file.
 sub lang_objc_rewrite
 {
-    return 1;
+    return &lang_sub_obj;
+}
+
+# Rewrite a single Java file.
+sub lang_java_rewrite
+{
+    return $LANG_SUBDIR;
 }
 
 # The lang_X_finish functions are called after all source file
@@ -4518,8 +4994,7 @@ sub lang_c_finish
     # Push all libobjs files onto de_ansi_files.  We actually only
     # push files which exist in the current directory, and which are
     # genuine source files.
-    local ($file);
-    foreach $file (keys %libsources)
+    foreach my $file (keys %libsources)
     {
        if ($file =~ /^(.*)\.[cly]$/ && -f "$relative_dir/$file")
        {
@@ -4530,8 +5005,8 @@ sub lang_c_finish
     if (defined $options{'ansi2knr'} && keys %de_ansi_files)
     {
        # Make all _.c files depend on their corresponding .c files.
-       local ($base, @objects);
-       foreach $base (sort keys %de_ansi_files)
+       my @objects;
+       foreach my $base (sort keys %de_ansi_files)
        {
            # Each _.c file must depend on ansi2knr; otherwise it
            # might be used in a parallel build before it is built.
@@ -4540,86 +5015,57 @@ sub lang_c_finish
            # we can't use $< -- some makes only define $< during a
            # suffix rule.
            $output_rules .= ($base . "_.c: $base.c \$(ANSI2KNR)\n\t"
-                             . '$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) 
$(CPPFLAGS) '
+                             . '$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) 
$(AM_CPPFLAGS) $(CPPFLAGS) '
                              . '`if test -f $(srcdir)/' . $base . '.c'
                              . '; then echo $(srcdir)/' . $base . '.c'
                              . '; else echo ' . $base . '.c; fi` '
                              . "| sed 's/^# \\([0-9]\\)/#line \\1/' "
-                             . '| $(ANSI2KNR) > ' . $base . "_.c\n");
-           push (@objects, $base . '_'
-                 . ($seen_objext ? '.$(OBJEXT)' : '.o'));
-           push (@objects, $base . '_.lo') if $seen_libtool;
+                             . '| $(ANSI2KNR) > ' . $base . "_.c"
+                             # If ansi2knr fails then we shouldn't
+                             # create the _.c file
+                             . " || rm -f ${base}_.c\n");
+           push (@objects, $base . '_.$(OBJEXT)');
+           push (@objects, $base . '_.lo')
+             if $seen_libtool;
        }
 
        # Make all _.o (and _.lo) files depend on ansi2knr.
        # Use a sneaky little hack to make it print nicely.
        &pretty_print_rule ('', '', @objects, ':', '$(ANSI2KNR)');
     }
-
-    if (! defined $configure_vars{'CC'})
-    {
-       # FIXME: line number.
-       &am_error ("C source seen but \`CC' not defined in \`configure.in'");
-    }
 }
 
-# A helper which computes a sorted list of all C++ extensions which
-# were seen.
-sub cxx_extensions
+# This is a yacc helper which is called whenever we have decided to
+# compile a yacc file.
+sub lang_yacc_target_hook
 {
-    local ($key, @r);
-    foreach $key (sort keys %extension_seen)
-    {
-       push (@r, '.' . $key) if $extension_map{$key} eq 'cxx';
-    }
-    return @r;
-}
+    my ($self, $aggregate, $output, $input) = @_;
 
-sub lang_cxx_finish
-{
-    local (@cxx_list) = &cxx_extensions;
-    local ($cxx_count) = scalar @cxx_list;
-    if ($cxx_count)
+    my $flag = $aggregate . "_YFLAGS";
+    if ((&variable_defined ($flag)
+        && &variable_value ($flag) =~ /$DASH_D_PATTERN/o)
+       || (&variable_defined ('YFLAGS')
+           && &variable_value ('YFLAGS') =~ /$DASH_D_PATTERN/o))
     {
-       push (@suffixes, @cxx_list);
-
-       local ($ltcompile, $ltlink) = &libtool_compiler;
-
-       &define_configure_variable ("CXXFLAGS");
-       &define_variable ('CXXCOMPILE', '$(CXX) $(DEFS) $(INCLUDES) 
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)');
-       &define_variable ('LTCXXCOMPILE',
-                         $ltcompile . '$(CXX) $(DEFS) $(INCLUDES) 
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)')
-           if ($seen_libtool);
-
-       &define_variable ('CXXLD', '$(CXX)');
-       &define_variable ('CXXLINK', $ltlink . '$(CXXLD) $(AM_CXXFLAGS) 
$(CXXFLAGS) $(LDFLAGS) -o $@');
+       (my $output_base = $output) =~ s/\..*$//;
+       my $header = $output_base . '.h';
 
-       local ($ext);
-       foreach $ext (@cxx_list)
-       {
-           $output_rules .= ("$ext.o:\n"
-                             . "\t\$(CXXCOMPILE) -c \$<\n");
-           # FIXME: Using cygpath should be somehow conditional.
-           $output_rules .= ("$ext.obj:\n"
-                             . "\t\$(CXXCOMPILE) -c `cygpath -w \$<`\n")
-               if ($seen_objext);
-           $output_rules .= ("$ext.lo:\n"
-                             . "\t\$(LTCXXCOMPILE) -c \$<\n")
-               if ($seen_libtool);
-       }
-
-       if (! defined $configure_vars{'CXX'})
-       {
-           &am_error ("C++ source seen but \`CXX' not defined in 
\`configure.in'");
-       }
+       # Found a `-d' that applies to the compilation of this file.
+       # Add a dependency for the generated header file, and arrange
+       # for that file to be included in the distribution.
+       # FIXME: this fails for `nodist_*_SOURCES'.
+       $output_rules .= "${header}: $output\n";
+       &push_dist_common ($header);
+       # If the files are built in the build directory, then we want
+       # to remove them with `make clean'.  If they are in srcdir
+       # they shouldn't be touched.  However, we can't determine this
+       # statically, and the GNU rules say that yacc/lex output files
+       # should be removed by maintainer-clean.  So that's what we
+       # do.
+       push (@maintainer_clean_files, $header);
     }
 }
 
-sub lang_header_finish
-{
-    # Nothing to do.
-}
-
 # This is a helper for both lex and yacc.
 sub yacc_lex_finish_helper
 {
@@ -4631,13 +5077,13 @@ sub yacc_lex_finish_helper
     # allow parallel builds to work correctly.  FIXME: for now, no
     # line number.
     &require_config_file ($FOREIGN, 'ylwrap');
-    if ($config_aux_dir ne '.' && $config_aux_dir ne '')
+    if ($config_aux_dir_set_in_configure_in)
     {
        &define_variable ('YLWRAP', $config_aux_dir . "/ylwrap");
     }
     else
     {
-       &define_variable ('YLWRAP', '$(srcdir)/ylwrap');
+       &define_variable ('YLWRAP', '$(top_srcdir)/ylwrap');
     }
 }
 
@@ -4646,373 +5092,170 @@ sub lang_yacc_finish
     return if defined $language_scratch{'yacc-done'};
     $language_scratch{'yacc-done'} = 1;
 
-    local ($file, $base, $hname, $cname);
-    local (%seen_suffix) = ();
-    local (@yacc_files) = sort keys %yacc_sources;
-    local ($yacc_count) = scalar (@yacc_files);
-    foreach $file (@yacc_files)
-    {
-       $file =~ /(\..*)$/;
-       &output_yacc_build_rule ($1, $yacc_count > 1)
-           if ! defined $seen_suffix{$1};
-       $seen_suffix{$1} = 1;
-
-       # Now generate rule to make the header file.  This should only
-       # be generated if `yacc -d' specified.  But right now there is
-       # no way to determine that.  FIXME: examine AM_YFLAGS?
-       $file =~ /^(.*)\.(y|yy|y\+\+|yxx)$/;
-       $base = $1;
-       ($hname = $2) =~ tr/y/h/;
-       ($cname = $2) =~ tr/y/c/;
-       $output_rules .= "${base}.${hname}: ${base}.${cname}\n";
-
-       # If the files are built in the build directory, then we want
-       # to remove them with `make clean'.  If they are in srcdir
-       # they shouldn't be touched.  However, we can't determine this
-       # statically, and the GNU rules say that yacc/lex output files
-       # should be removed by maintainer-clean.  So that's what we
-       # do.
-       push (@maintainer_clean_files, $base . $hname, $base . $cname);
-    }
-    $output_rules .= "\n";
-
-    if (! defined $configure_vars{'YACC'})
-    {
-       &am_error ("yacc source seen but \`YACC' not defined in 
\`configure.in'");
-    }
     if (&variable_defined ('YACCFLAGS'))
     {
        &am_line_error ('YACCFLAGS',
-                       "\`YACCFLAGS' obsolete; use \`YFLAGS' instead");
+                       "`YACCFLAGS' obsolete; use `YFLAGS' instead");
     }
 
-    if ($yacc_count > 1)
+    if (count_files_for_language ('yacc') > 1)
     {
        &yacc_lex_finish_helper;
     }
 }
 
-sub lang_yaccxx_finish
-{
-    &lang_yacc_finish;
-}
 
 sub lang_lex_finish
 {
     return if defined $language_scratch{'lex-done'};
     $language_scratch{'lex-done'} = 1;
 
-    local (%seen_suffix) = ();
-    local ($file, $cname);
-    local ($lex_count) = scalar (keys %lex_sources);
-    foreach $file (sort keys %lex_sources)
-    {
-       $file =~ /(\..*)$/;
-       &output_lex_build_rule ($1, $lex_count > 1)
-           if (! defined $seen_suffix{$1});
-       $seen_suffix{$1} = 1;
-
-       # If the files are built in the build directory, then we want
-       # to remove them with `make clean'.  If they are in srcdir
-       # they shouldn't be touched.  However, we can't determine this
-       # statically, and the GNU rules say that yacc/lex output files
-       # should be removed by maintainer-clean.  So that's what we
-       # do.
-       $file =~ /^(.*)\.(l|ll|l\+\+|lxx)$/;
-       ($cname = $2) =~ tr/y/c/;
-       push (@maintainer_clean_files, $1 . $cname);
-    }
-
-    if (! defined $configure_vars{'LEX'})
-    {
-       &am_error ("lex source seen but \`LEX' not defined in \`configure.in'");
-    }
     if (! $seen_decl_yytext)
     {
-       &am_error ("lex source seen but \`AC_DECL_YYTEXT' not in 
\`configure.in'");
+       &am_error ("lex source seen but `AC_DECL_YYTEXT' not in 
`$configure_ac'");
     }
 
-    if ($lex_count > 1)
+    if (count_files_for_language ('lex') > 1)
     {
        &yacc_lex_finish_helper;
     }
 }
 
-sub lang_lexxx_finish
-{
-    &lang_lex_finish;
-}
 
-sub lang_asm_finish
+# Given a hash table of linker names, pick the name that has the most
+# precedence.  This is lame, but something has to have global
+# knowledge in order to eliminate the conflict.  Add more linkers as
+# required.
+sub resolve_linker
 {
-    # Pretend we're C.
-    &lang_c_finish;
-}
+    my (%linkers) = @_;
 
-# A helper which computes a sorted list of all Fortran 77 extensions
-# which were seen.
-sub f77_extensions
-{
-    local ($key, @r);
-    foreach $key (sort keys %extension_seen)
-    {
-       push (@r, '.' . $key) if $extension_map{$key} eq 'f77';
-    }
-    return @r;
+    return 'GCJLINK'
+       if defined $linkers{'GCJLINK'};
+    return 'CXXLINK'
+       if defined $linkers{'CXXLINK'};
+    return 'F77LINK'
+       if defined $linkers{'F77LINK'};
+    return 'OBJCLINK'
+        if defined $linkers{'OBJCLINK'};
+    return 'LINK';
 }
 
-sub lang_f77_finish
+# Called to indicate that an extension was used.
+sub saw_extension
 {
-    local (@f77_list) = &f77_extensions;
-    local ($f77_count) = scalar @f77_list;
-    if ($f77_count)
+    my ($ext) = @_;
+    if (! defined $extension_seen{$ext})
     {
-       push (@suffixes, @f77_list);
-
-       local ($ltcompile, $ltlink) = &libtool_compiler;
-
-       &define_configure_variable ('FFLAGS');
-       &define_variable ('F77COMPILE', '$(F77) $(AM_FFLAGS) $(FFLAGS)');
-       &define_variable ('LTF77COMPILE',
-                         $ltcompile . '$(F77) $(AM_FFLAGS) $(FFLAGS)')
-           if ($seen_libtool);
-
-       &define_variable ('F77LD', '$(F77)');
-       &define_variable ('F77LINK', $ltlink . '$(F77LD) $(AM_FFLAGS) $(FFLAGS) 
$(LDFLAGS) -o $@');
-
-       local ($ext);
-       foreach $ext (@f77_list)
-       {
-           $output_rules .= ("$ext.o:\n"
-                             . "\t\$(F77COMPILE) -c \$<\n");
-           # FIXME: Using cygpath should be somehow conditional.
-           $output_rules .= ("$ext.obj:\n"
-                             . "\t\$(F77COMPILE) -c `cygpath -w \$<`\n")
-               if ($seen_objext);
-           $output_rules .= ("$ext.lo:\n"
-                             . "\t\$(LTF77COMPILE) -c \$<\n")
-               if ($seen_libtool);
-       }
-
-       if (! defined $configure_vars{'F77'})
-       {
-           &am_error ("Fortran 77 source seen but \`F77' not defined in 
\`configure.in'");
-       }
+       $extension_seen{$ext} = 1;
     }
-}
-
-# Preprocessed Fortran 77
-#
-# The current support for preprocessing Fortran 77 just involves passing
-# `$(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS)' as additional flags
-# to the Fortran 77 compiler, since this is how GNU Make does it; see
-# the `GNU Make Manual, Edition 0.51 for `make' Version 3.76 Beta'
-# (specifically, from info file `(make)Catalogue of Rules').
-#
-# A better approach would be to write an Autoconf test
-# (i.e. AC_PROG_FPP) for a Fortran 77 preprocessor, because not all
-# Fortran 77 compilers know how to do preprocessing.  The Autoconf macro
-# AC_PROG_FPP should test the Fortran 77 compiler first for
-# preprocessing capabilities, and then fall back on cpp (if cpp were
-# available).
-sub lang_ppf77_finish
-{
-    local ($ext) = 'F';
-    last unless $extension_seen{$ext};
-    push (@suffixes, '.' . $ext);
-
-    local ($ltcompile, $ltlink) = &libtool_compiler;
-
-    &define_configure_variable ('FFLAGS');
-    &define_variable ('F77COMPILE', '$(F77) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) 
$(CPPFLAGS) $(AM_FFLAGS) $(FFLAGS)');
-    &define_variable ('LTF77COMPILE',
-                     $ltcompile . '$(F77) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) 
$(CPPFLAGS) $(AM_FFLAGS) $(FFLAGS)')
-       if ($seen_libtool);
-
-    &define_variable ('F77LD', '$(F77)');
-    &define_variable ('F77LINK', $ltlink . '$(F77LD) $(AM_FFLAGS) $(FFLAGS) 
$(LDFLAGS) -o $@');
-
-    $output_rules .= ("$ext.o:\n"
-                     . "\t\$(F77COMPILE) -c \$<\n");
-    # FIXME: Using cygpath should be somehow conditional.
-    $output_rules .= ("$ext.obj:\n"
-                     . "\t\$(F77COMPILE) -c `cygpath -w \$<`\n")
-       if ($seen_objext);
-    $output_rules .= ("$ext.lo:\n"
-                     . "\t\$(LTF77COMPILE) -c \$<\n")
-       if ($seen_libtool);
-
-    # We also handle the case of preprocessing `.F' files into `.f'
-    # files.
-    $output_rules .= ("$ext.f:\n"
-                     . "\t\$(F77COMPILE) -F \$<\n");
-
-    if (! defined $configure_vars{'F77'})
+    else
     {
-       &am_error ("Fortran 77 source seen but \`F77' not defined in 
\`configure.in'");
+       ++$extension_seen{$ext};
     }
 }
 
-sub lang_ratfor_finish
+# Return the number of files seen for a given language.  Knows about
+# special cases we care about.  FIXME: this is hideous.  We need
+# something that involves real language objects.  For instance yacc
+# and yaccxx could both derive from a common yacc class which would
+# know about the strange ylwrap requirement.  (Or better yet we could
+# just not support legacy yacc!)
+sub count_files_for_language
 {
-    local ($ext) = 'r';
-    last unless $extension_seen{$ext};
-    push (@suffixes, '.' . $ext);
-
-    local ($ltcompile, $ltlink) = &libtool_compiler;
-
-    &define_configure_variable ('FFLAGS');
-    &define_configure_variable ('RFLAGS');
-    &define_variable ('RCOMPILE', '$(F77) $(AM_FFLAGS) $(FFLAGS) $(AM_RFLAGS) 
$(RFLAGS)');
-    &define_variable ('LTRCOMPILE',
-                     $ltcompile . '$(F77) $(AM_FFLAGS) $(FFLAGS) $(AM_RFLAGS) 
$(RFLAGS)')
-       if ($seen_libtool);
-
-    &define_variable ('F77LD', '$(F77)');
-    &define_variable ('F77LINK', $ltlink . '$(F77LD) $(AM_FFLAGS) $(FFLAGS) 
$(AM_RFLAGS) $(RFLAGS) $(LDFLAGS) -o $@');
+    my ($name) = @_;
 
-    $output_rules .= ("$ext.o:\n"
-                     . "\t\$(RCOMPILE) -c \$<\n");
-    # FIXME: Using cygpath should be somehow conditional.
-    $output_rules .= ("$ext.obj:\n"
-                     . "\t\$(RCOMPILE) -c `cygpath -w \$<`\n")
-       if ($seen_objext);
-    $output_rules .= ("$ext.lo:\n"
-                     . "\t\$(LTRCOMPILE) -c \$<\n")
-       if ($seen_libtool);
-
-    # We also handle the case of preprocessing `.r' files into `.f'
-    # files.
-    $output_rules .= ("$ext.f:\n"
-                     . "\t\$(RCOMPILE) -F \$<\n");
-
-    if (! defined $configure_vars{'F77'})
+    my @names;
+    if ($name eq 'yacc' || $name eq 'yaccxx')
     {
-       &am_error ("Ratfor source seen but \`F77' not defined in 
\`configure.in'");
+       @names = ('yacc', 'yaccxx');
     }
-}
-
-sub lang_objc_finish
-{
-    push (@suffixes, '.m');
-
-    local ($ltcompile, $ltlink) = &libtool_compiler;
-
-    &define_configure_variable ("OBJCFLAGS");
-    &define_variable ('OBJCCOMPILE', '$(OBJC) $(DEFS) $(INCLUDES) 
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_OBJCFLAGS) $(OBJCFLAGS)');
-    &define_variable ('LTOBJCCOMPILE',
-                      $ltcompile . '$(OBJC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) 
$(CPPFLAGS) $(AM_OBJCFLAGS) $(OBJCFLAGS)')
-        if ($seen_libtool);
-    
-    &define_variable ('OBJCLD', '$(OBJC)');
-    &define_variable ('OBJCLINK', $ltlink . '$(OBJCLD) $(AM_OBJCFLAGS) 
$(OBJCFLAGS) $(LDFLAGS) -o $@');
-    
-    $output_rules .= (".m.o:\n"
-                      . "\t\$(OBJCCOMPILE) -c \$<\n");
-    # FIXME: Using cygpath should be somehow conditional.
-    $output_rules .= (".m.obj:\n"
-                      . "\t\$(OBJCCOMPILE) -c `cygpath -w \$<`\n")
-        if ($seen_objext);
-    $output_rules .= (".m.lo:\n"
-                      . "\t\$(LTOBJCCOMPILE) -c \$<\n")
-        if ($seen_libtool);
-    
-    if (! defined $configure_vars{'OBJC'})
+    elsif ($name eq 'lex' || $name eq 'lexxx')
     {
-       &am_error ("Objective C source seen but \`OBJC' not defined in 
\`configure.in'");
+       @names = ('lex', 'lexxx');
     }
-}
-
-# A helper which computes a sorted list of all ObjC extensions which
-# were seen.
-sub objc_extensions
-{
-    local ($key, @r);
-    foreach $key (sort keys %extension_seen)
+    else
     {
-       push (@r, '.' . $key) if $extension_map{$key} eq 'objc';
+       @names = ($name);
     }
-    return @r;
-}
 
-# A helper which decides whether libtool is needed.  Returns prefix
-# for compiler and linker.
-sub libtool_compiler
-{
-    local ($ltcompile, $ltlink) = ('', '');
-    if ($seen_libtool)
+    my $r = 0;
+    foreach $name (@names)
     {
-       &define_configure_variable ("LIBTOOL");
-       $ltcompile = '$(LIBTOOL) --mode=compile ';
-       $ltlink = '$(LIBTOOL) --mode=link ';
+       my $lang = $languages{$name};
+       foreach my $ext (@{$lang->extensions})
+       {
+           $r += $extension_seen{$ext}
+               if defined $extension_seen{$ext};
+       }
     }
-    return ($ltcompile, $ltlink);
-}
-
-# Given a hash table of linker names, pick the name that has the most
-# precedence.  This is lame, but something has to have global
-# knowledge in order to eliminate the conflict.  Add more linkers as
-# required.
-sub resolve_linker
-{
-    local (%linkers) = @_;
 
-    return 'CXXLINK'
-       if defined $linkers{'CXXLINK'};
-    return 'F77LINK'
-       if defined $linkers{'F77LINK'};
-    return 'OBJCLINK'
-        if defined $linkers{'OBJCLINK'};
-    return 'LINK';
-}
-
-# Called to indicate that an extension was used.
-sub saw_extension
-{
-    local ($ext) = @_;
-    $extension_seen{$ext} = 1;
+    return $r
 }
 
 # Called to ask whether source files have been seen . If HEADERS is 1,
 # headers can be included.
 sub saw_sources_p
 {
-    local ($headers) = @_;
+    my ($headers) = @_;
 
-    if ($headers)
+    # count all the sources
+    my $count = 0;
+    foreach my $val (values %extension_seen)
     {
-       $headers = 0;
+       $count += $val;
     }
-    else
+
+    if (!$headers)
     {
-       $headers = defined $extension_seen{'header'};
+       $count -= count_files_for_language ('header');
     }
 
-    return scalar keys %extension_seen > $headers;
+    return $count > 0;
 }
 
-# Register a single language.  If LINKER is the empty string, it means
-# to use the C linker.  DEANSI_P should only be 1 for languages where
-# de-ansi-fication makes sense (i.e., C).  EXTENSIONS is a list of
-# file extensions to match (no `.' included).
-sub register_language
+
+# register_language (%ATTRIBUTE)
+# ------------------------------
+# Register a single language.
+# Each %ATTRIBUTE is of the form ATTRIBUTE => VALUE.
+sub register_language (%)
+{
+    my (%option) = @_;
+
+    # Set the defaults.
+    $option{'ansi'} = 0
+      unless defined $option{'ansi'};
+    $option{'autodep'} = 'no'
+      unless defined $option{'autodep'};
+    $option{'linker'} = ''
+      unless defined $option{'linker'};
+    $option{'define_flag'} = 1
+      unless defined $option{'define_flag'};
+
+    my $lang = new Language (%option);
+
+    # Fill indexes.
+    grep ($extension_map{$_} = $lang->name, @{$lang->extensions});
+    $languages{$lang->name} = $lang;
+}
+
+# This function is used to find a path from a user-specified suffix to
+# `o' or to some other suffix we recognize internally, eg `cc'.
+sub derive_suffix
 {
-    local ($language, $linker, $deansi_p, @extensions) = @_;
+    my ($source_ext) = @_;
 
-    local ($iter);
-    foreach $iter (@extensions)
+    # FIXME: hard-coding `o' is a mistake.  Doing something
+    # intelligent is harder.
+    while (! $extension_map{$source_ext}
+          && $source_ext ne 'o'
+          && defined $suffix_rules{$source_ext})
     {
-       if (defined $extension_map{$iter})
-       {
-           print STDERR
-               "automake: programming error: duplicate extension $iter\n";
-           exit 1;
-       }
-       $extension_map{$iter} = $language;
+       $source_ext = $suffix_rules{$source_ext};
     }
 
-    $language_map{$language . '-ansi-p'} = $deansi_p;
-    $language_map{$language . '-linker'} = $linker;
+    return $source_ext;
 }
 
 
@@ -5023,18 +5266,17 @@ sub register_language
 # beginning of every subsequent line.
 sub pretty_print_internal
 {
-    local ($head, $fill, @values) = @_;
+    my ($head, $fill, @values) = @_;
 
-    local ($column) = length ($head);
-    local ($result) = $head;
+    my $column = length ($head);
+    my $result = $head;
 
     # Fill length is number of characters.  However, each Tab
     # character counts for eight.  So we count the number of Tabs and
     # multiply by 7.
-    local ($fill_length) = length ($fill);
+    my $fill_length = length ($fill);
     $fill_length += 7 * ($fill =~ tr/\t/\t/d);
 
-    local ($bol) = ($head eq '');
     foreach (@values)
     {
        # "71" because we also print a space.
@@ -5042,13 +5284,10 @@ sub pretty_print_internal
        {
            $result .= " \\\n" . $fill;
            $column = $fill_length;
-           $bol = 1;
        }
-
-       $result .= ' ' unless ($bol);
+       $result .= ' ' if $result =~ /\S\z/;
        $result .= $_;
        $column += length ($_) + 1;
-       $bol = 0;
     }
 
     $result .= "\n";
@@ -5070,144 +5309,492 @@ sub pretty_print_rule
 
 ################################################################
 
-# See if a target exists.
-sub target_defined
-{
-    local ($target) = @_;
-    return defined $targets{$target};
-}
 
-# See if two conditionals are the same.
-sub conditional_same
+# $STRING
+# &conditional_string(@COND-STACK)
+# --------------------------------
+# Build a string which denotes the conditional in @COND-STACK.  Some
+# simplifications are done: `TRUE' entries are elided, and any `FALSE'
+# entry results in a return of `FALSE'.
+sub conditional_string
 {
-    local ($cond1, $cond2) = @_;
+  my (@stack) = @_;
 
-    return (&conditional_true_when ($cond1, $cond2)
-           && &conditional_true_when ($cond2, $cond1));
+  if (grep (/^FALSE$/, @stack))
+    {
+      return 'FALSE';
+    }
+  else
+    {
+      return join (' ', uniq sort grep (!/^TRUE$/, @stack));
+    }
 }
 
+
+# $BOOLEAN
+# &conditional_true_when ($COND, $WHEN)
+# -------------------------------------
 # See if a conditional is true.  Both arguments are conditional
 # strings.  This returns true if the first conditional is true when
 # the second conditional is true.
-sub conditional_true_when
+# For instance with $COND = `BAR FOO', and $WHEN = `BAR BAZ FOO',
+# obviously return 1, and 0 when, for instance, $WHEN = `FOO'.
+sub conditional_true_when ($$)
 {
-    local ($cond, $when) = @_;
+    my ($cond, $when) = @_;
+
+    # Make a hash holding all the values from $WHEN.
+    my %cond_vals = map { $_ => 1 } split (' ', $when);
 
-    # Check the easy case first.
-    if ($cond eq $when)
+    # Check each component of $cond, which looks `COND1 COND2'.
+    foreach my $comp (split (' ', $cond))
     {
-       return 1;
+       # TRUE is always true.
+       next if $comp eq 'TRUE';
+       return 0 if ! defined $cond_vals{$comp};
     }
 
-    # Check each component of $cond, which looks @COND1@@address@hidden
-    foreach $comp (split ('@', $cond))
-    {
-       # The way we split will give null strings between each
-       # condition.
-       next if ! $comp;
+    return 1;
+}
 
-       if (index ($when, '@' . $comp . '@') == -1)
+
+# $BOOLEAN
+# &conditional_is_redundant ($COND, @WHENS)
+# ----------------------------------------
+# Determine whether $COND is redundant with respect to @WHENS.
+#
+# Returns true if $COND is true for any of the conditions in @WHENS.
+#
+# If there are no @WHENS, then behave as if @WHENS contained a single empty
+# condition.
+sub conditional_is_redundant ($@)
+{
+    my ($cond, @whens) = @_;
+
+    if (@whens == 0)
+    {
+       return 1 if conditional_true_when ($cond, "");
+    }
+    else
+    {
+       foreach my $when (@whens)
        {
-           return 0;
+           return 1 if conditional_true_when ($cond, $when);
        }
     }
 
-    return 1;
+    return 0;
+}
+
+
+# $NEGATION
+# condition_negate ($COND)
+# ------------------------
+sub condition_negate ($)
+{
+    my ($cond) = @_;
+
+    $cond =~ s/TRUE$/TRUEO/;
+    $cond =~ s/FALSE$/TRUE/;
+    $cond =~ s/TRUEO$/FALSE/;
+
+    return $cond;
 }
 
+
+# Compare condition names.
+# Issue them in alphabetical order, foo_TRUE before foo_FALSE.
+sub by_condition
+{
+    # Be careful we might be comparing `' or `#'.
+    $a =~ /^(.*)_(TRUE|FALSE)$/;
+    my ($aname, $abool) = ($1 || '', $2 || '');
+    $b =~ /^(.*)_(TRUE|FALSE)$/;
+    my ($bname, $bbool) = ($1 || '', $2 || '');
+    return ($aname cmp $bname
+           # Don't bother with IFs, given that TRUE is after FALSE
+           # just cmp in the reverse order.
+           || $bbool cmp $abool
+           # Just in case...
+           || $a cmp $b);
+}
+
+
+# &make_condition (@CONDITIONS)
+# -----------------------------
+# Transform a list of conditions (themselves can be an internal list
+# of conditions, e.g., @CONDITIONS = ('cond1 cond2', 'cond3')) into a
+# Make conditional (a pattern for AC_SUBST).
+# Correctly returns the empty string when there are no conditions.
+sub make_condition
+{
+    my $res = conditional_string (@_);
+
+    # There are no conditions.
+    if ($res eq '')
+      {
+       # Nothing to do.
+      }
+    # It's impossible.
+    elsif ($res eq 'FALSE')
+      {
+       $res = '#';
+      }
+    # Build it.
+    else
+      {
+       $res = '@' . $res . '@';
+       $res =~ s/ /@@/g;
+      }
+
+    return $res;
+}
+
+
+
+## ------------------------------ ##
+## Handling the condition stack.  ##
+## ------------------------------ ##
+
+
+# $COND_STRING
+# cond_stack_if ($NEGATE, $COND, $WHERE)
+# --------------------------------------
+sub cond_stack_if ($$$)
+{
+  my ($negate, $cond, $where) = @_;
+
+  &am_file_error ($where, "$cond does not appear in AM_CONDITIONAL")
+    if ! $configure_cond{$cond} && $cond !~ /^TRUE|FALSE$/;
+
+  $cond = "${cond}_TRUE"
+    unless $cond =~ /^TRUE|FALSE$/;
+  $cond = condition_negate ($cond)
+    if $negate;
+
+  push (@cond_stack, $cond);
+
+  return conditional_string (@cond_stack);
+}
+
+
+# $COND_STRING
+# cond_stack_else ($NEGATE, $COND, $WHERE)
+# ----------------------------------------
+sub cond_stack_else ($$$)
+{
+  my ($negate, $cond, $where) = @_;
+
+  if (! @cond_stack)
+    {
+      &am_file_error ($where, "else without if");
+      return;
+    }
+
+  $cond_stack[$#cond_stack] = condition_negate ($cond_stack[$#cond_stack]);
+
+  # If $COND is given, check against it.
+  if (defined $cond)
+    {
+      $cond = "${cond}_TRUE"
+       unless $cond =~ /^TRUE|FALSE$/;
+      $cond = condition_negate ($cond)
+       if $negate;
+
+      &am_file_error ($where,
+                     "else reminder ($negate$cond) incompatible with "
+                     . "current conditional: $cond_stack[$#cond_stack]")
+       if $cond_stack[$#cond_stack] ne $cond;
+    }
+
+  return conditional_string (@cond_stack);
+}
+
+
+# $COND_STRING
+# cond_stack_endif ($NEGATE, $COND, $WHERE)
+# -----------------------------------------
+sub cond_stack_endif ($$$)
+{
+  my ($negate, $cond, $where) = @_;
+  my $old_cond;
+
+  if (! @cond_stack)
+    {
+      &am_file_error ($where, "endif without if: $negate$cond");
+      return;
+    }
+
+
+  # If $COND is given, check against it.
+  if (defined $cond)
+    {
+      $cond = "${cond}_TRUE"
+       unless $cond =~ /^TRUE|FALSE$/;
+      $cond = condition_negate ($cond)
+       if $negate;
+
+      &am_file_error ($where,
+                     "endif reminder ($negate$cond) incompatible with "
+                     . "current conditional: $cond_stack[$#cond_stack]")
+       if $cond_stack[$#cond_stack] ne $cond;
+    }
+
+  pop @cond_stack;
+
+  return conditional_string (@cond_stack);
+}
+
+
+
+
+
+## ------------------------ ##
+## Handling the variables.  ##
+## ------------------------ ##
+
+
+# check_ambiguous_conditional ($VAR, $COND)
+# -----------------------------------------
 # Check for an ambiguous conditional.  This is called when a variable
-# or target is being defined conditionally.  If we already know about
-# a definition that is true under the same conditions, then we have an
+# is being defined conditionally.  If we already know about a
+# definition that is true under the same conditions, then we have an
 # ambiguity.
-sub check_ambiguous_conditional
+sub check_ambiguous_conditional ($$)
 {
-    local ($var_name, $cond) = @_;
-    local (@cond_vals) = split (' ', $conditional{$var_name});
-    while (@cond_vals)
+    my ($var, $cond) = @_;
+    foreach my $vcond (keys %{$var_value{$var}})
     {
-       local ($vcond) = shift (@cond_vals);
-       shift (@cond_vals);
-       if (&conditional_true_when ($vcond, $cond)
-           || &conditional_true_when ($cond, $vcond))
+       my $message;
+       if ($vcond eq $cond)
+       {
+          $message = "$var multiply defined in condition $cond";
+       }
+       elsif (&conditional_true_when ($vcond, $cond))
+       {
+        $message = ("$var was already defined in condition $vcond, "
+                    . "which implies condition $cond");
+       }
+       elsif (&conditional_true_when ($cond, $vcond))
+       {
+          $message = ("$var was already defined in condition $vcond, "
+                      . "which is implied by condition $cond");
+       }
+       if ($message)
+       {
+          &am_line_error ($var, $message);
+          macro_dump ($var);
+       }
+   }
+}
+
+
+# &macro_define($VAR, $VAR_IS_AM, $TYPE, $COND, $VALUE, $WHERE)
+# -------------------------------------------------------------
+# The $VAR can go from Automake to user, but not the converse.
+sub macro_define ($$$$$$)
+{
+  my ($var, $var_is_am, $type, $cond, $value, $where) = @_;
+
+  am_file_error ($where, "bad macro name `$var'")
+    if $var !~ /$MACRO_PATTERN/o;
+
+  $cond ||= 'TRUE';
+
+  # An Automake variable must be consistently defined with the same
+  # sign by Automake.  A user variable must be set by either `=' or
+  # `:=', and later promoted to `+='.
+  if ($var_is_am)
+    {
+      if (defined $var_type{$var} && $var_type{$var} ne $type)
        {
-           &am_line_error ($var_name,
-                           "$var_name multiply defined in condition");
+         am_line_error ($var,
+                        ("$var was set with `$var_type{$var}=' "
+                         . "and is now set with `$type='"));
        }
     }
-}
+  else
+    {
+      if (!defined $var_type{$var} && $type eq '+')
+       {
+         am_line_error ($var, "$var must be set with `=' before using `+='");
+       }
+    }
+  $var_type{$var} = $type;
 
-# See if a variable exists.  The first argument is the variable name,
-# and the optional second argument is the condition which we should
-# check.  If no condition is given, we currently return true if the
-# variable is defined under any condition.
-sub variable_defined
-{
-    local ($var, $cond) = @_;
-    if (defined $targets{$var})
+  # When adding, since we rewrite, don't try to preserve the
+  # Automake continuation backslashes.
+  $value =~ s/\\$//mg
+    if $type eq '+' && $var_is_am;
+
+  # Differentiate the first assignment (including with `+=').
+  if ($type eq '+' && defined $var_value{$var}{$cond})
     {
-       &am_line_error ($var, "\`$var' is target; expected variable");
-       return 0;
+      if (substr ($var_value{$var}{$cond}, -1) eq "\n")
+       {
+         # Insert a backslash before a trailing newline.
+         $var_value{$var}{$cond} =
+           substr ($var_value{$var}{$cond}, 0, -1) . "\\\n";
+       }
+      elsif ($var_value{$var}{$cond})
+       {
+         # Insert a separator.
+         $var_value{$var}{$cond} .= ' ';
+       }
+       $var_value{$var}{$cond} .= $value;
     }
-    elsif (defined $contents{$var})
+  else
     {
-       if ($cond && $conditional{$var})
+      # The first assignment to a macro sets the line number.  Ideally I
+      # suppose we would associate line numbers with random bits of text.
+      # FIXME: We sometimes redefine some variables, but we want to keep
+      # the original location.  More subs are needed to handle
+      # properly variables.  Once this done, remove this hack.
+      $var_line{$var} = $where
+       unless defined $var_line{$var};
+
+      # If Automake tries to override a value specified by the user,
+      # just don't let it do.
+      if (defined $var_value{$var}{$cond} && !$var_is_am{$var} && $var_is_am)
        {
-           # We have been asked to check for a particular condition,
-           # and the variable is defined conditionally.  We need to
-           # look through the conditions under which the variable is
-           # defined, and see if any of them match the conditional we
-           # have been asked to check.
-           local (@cond_vars) = split (' ', $conditional{$var});
-           while (@cond_vars)
+         if ($verbose)
            {
-               if (&conditional_same ($cond, shift (@cond_vars)))
-               {
-                   # Even a conditional examination is good enough
-                   # for us.  FIXME: really should maintain examined
-                   # status on a per-condition basis.
-                   $content_seen{$var} = 1;
-                   return 1;
-               }
-               shift (@cond_vars);
+             print STDERR "$me: refusing to override the user definition 
of:\n";
+             macro_dump ($var);
+             print STDERR "$me: with `$cond' => `$value'\n";
            }
+       }
+      else
+       {
+         # There must be no previous value unless the user is redefining
+         # an Automake variable or an AC_SUBST variable.
+         check_ambiguous_conditional ($var, $cond)
+           unless ($var_is_am{$var} && !$var_is_am
+                   || exists $configure_vars{$var});
 
-           # The variable is not defined for the given condition.
-           return 0;
+         $var_value{$var}{$cond} = $value;
        }
+    }
 
-       $content_seen{$var} = 1;
-       return 1;
+  # An Automake variable can be given to the user, but not the converse.
+  if (! defined $var_is_am{$var} || !$var_is_am)
+    {
+      $var_is_am{$var} = $var_is_am;
     }
-    return 0;
 }
 
-# Mark a variable as examined.
-sub examine_variable
+
+# &variable_delete ($VAR, address@hidden)
+# ---------------------------------
+# Forget about $VAR under the conditions @CONDS, or completely if
+# @CONDS is empty.
+sub variable_delete ($@)
 {
-    local ($var) = @_;
-    &variable_defined ($var);
+  my ($var, @conds) = @_;
+
+  if (address@hidden)
+    {
+      delete $var_value{$var};
+      delete $var_line{$var};
+      delete $var_is_am{$var};
+      delete $var_comment{$var};
+      delete $var_type{$var};
+    }
+  else
+    {
+      foreach my $cond (@conds)
+       {
+         delete $var_value{$var}{$cond};
+       }
+    }
 }
 
-# Quote a value in order to put it in $conditional.  We need to quote
-# spaces, and we need to handle null strings, so that we can later
-# retrieve values by splitting on space.
-sub quote_cond_val
+
+# &macro_dump ($VAR)
+# ------------------
+sub macro_dump ($)
 {
-    local ($val) = @_;
-    $val =~ s/ /\001/g;
-    $val =~ s/\t/\003/g;
-    $val = "\002" if $val eq '';
-    return $val;
+  my ($var) = @_;
+
+  if (!exists $var_value{$var})
+    {
+      print STDERR "  $var does not exist\n";
+    }
+  else
+    {
+      my $var_is_am = $var_is_am{$var} ? "Automake" : "User";
+      my $where = (defined $var_line{$var}
+                  ? $var_line{$var} : "undefined");
+      print STDERR "$var_comment{$var}"
+       if defined $var_comment{$var};
+      print STDERR "  $var ($var_is_am, where = $where) $var_type{$var}=\n";
+      print STDERR "  {\n";
+      foreach my $vcond (sort by_condition keys %{$var_value{$var}})
+       {
+         print STDERR "    $vcond => $var_value{$var}{$vcond}\n";
+       }
+      print STDERR "  }\n";
+    }
 }
 
-# Unquote a value in $conditional.
-sub unquote_cond_val
+
+# &macros_dump ()
+# ---------------
+sub macros_dump ()
 {
-    local ($val) = @_;
-    $val =~ s/\001/ /g;
-    $val =~ s/\003/\t/g;
-    $val =~ s/\002//g;
-    return $val;
+  my ($var) = @_;
+
+  print STDERR "%var_value =\n";
+  print STDERR "{\n";
+  foreach my $var (sort (keys %var_value))
+    {
+      macro_dump ($var);
+    }
+  print STDERR "}\n";
+}
+
+
+# $BOOLEAN
+# &variable_defined ($VAR, [$COND])
+# ---------------------------------
+# See if a variable exists.  $VAR is the variable name, and $COND is
+# the condition which we should check.  If no condition is given, we
+# currently return true if the variable is defined under any
+# condition.
+sub variable_defined ($$)
+{
+    my ($var, $cond) = @_;
+
+    # Unfortunately we can't just check for $var_value{VAR}{COND}
+    # as this would make perl create $condition{VAR}, which we
+    # don't want.
+    if (!exists $var_value{$var})
+      {
+       if (defined $targets{$var})
+         {
+           &am_line_error ($var, "`$var' is a target; expected a variable")
+         }
+       # The variable is not defined
+       return 0;
+      }
+
+    if ($cond && !exists $var_value{$var}{$cond})
+      {
+       # The variable is not defined for the given condition.
+       return 0;
+      }
+
+    # Even a var_value examination is good enough for us.  FIXME:
+    # really should maintain examined status on a per-condition basis.
+    $content_seen{$var} = 1;
+    return 1;
+}
+
+# Mark a variable as examined.
+sub examine_variable
+{
+    my ($var) = @_;
+    &variable_defined ($var);
 }
 
 # Return the set of conditions for which a variable is defined.
@@ -5223,42 +5810,89 @@ sub unquote_cond_val
 # If the variable is defined in terms of any variables which are
 # defined conditionally, then this returns a full set of permutations
 # of the subvariable conditions.  For example, if the variable is
-# defined in terms of a variable which is defined for @COND_TRUE@,
-# then this returns both @COND_TRUE@ and @address@hidden  This is
+# defined in terms of a variable which is defined for COND_TRUE,
+# then this returns both COND_TRUE and COND_FALSE.  This is
 # because we will need to define the variable under both conditions.
 
-sub variable_conditions
+sub variable_conditions ($)
 {
-    local ($var) = @_;
-    local (%uniqify);
-    local ($cond);
+    my ($var) = @_;
+    my %uniqify;
+    my @uniq_list;
 
     %vars_scanned = ();
-    foreach $cond (&variable_conditions_sub ($var, '', ()))
+
+    my @new_conds = &variable_conditions_sub ($var, '');
+    # Now we want to return all permutations of the subvariable
+    # conditions.
+    my %allconds = ();
+    foreach my $item (@new_conds)
+    {
+       foreach (split (' ', $item))
+       {
+           s/^(.*)_(TRUE|FALSE)$/$1_TRUE/;
+           $allconds{$_} = 1;
+       }
+    }
+    @new_conds = &variable_conditions_permutations (sort keys %allconds);
+
+    foreach my $cond (@new_conds)
     {
+       my $reduce = &variable_conditions_reduce (split (' ', $cond));
+        next
+           if $reduce eq 'FALSE';
        $uniqify{$cond} = 1;
     }
 
-    return keys %uniqify;
+    @uniq_list = sort by_condition keys %uniqify;
+    # Note we cannot just do `return sort keys %uniqify', because this
+    # function is sometimes used in a scalar context.
+    return @uniq_list;
+}
+
+
+# $BOOLEAN
+# &variable_conditionally_defined ($VAR)
+# --------------------------------------
+sub variable_conditionally_defined ($)
+{
+    my ($var) = @_;
+    foreach my $cond (variable_conditions ($var))
+      {
+       return 1
+         unless $cond =~ /^TRUE|FALSE$/;
+      }
+    return 0;
 }
 
-# A subroutine of variable_conditions.  We only return conditions
-# which are true for all the conditions in @PARENT_CONDS.
+
+
+# &variable_conditions_sub ($VAR, $PARENT)
+# -------------------------------------------------------
+# A subroutine of variable_conditions.  This returns all the
+# conditions of $VAR, including those of any sub-variables.
 sub variable_conditions_sub
 {
-    local ($var, $parent, @parent_conds) = @_;
-    local (@new_conds) = ();
+    my ($var, $parent) = @_;
+    my @new_conds = ();
 
     if (defined $vars_scanned{$var})
     {
-       &am_line_error ($parent, "variable \`$var' recursively defined");
+       &am_line_error ($parent, "variable `$var' recursively defined");
        return ();
     }
     $vars_scanned{$var} = 1;
 
-    if (! $conditional{$var})
+    my @this_conds = ();
+    # Examine every condition under which $VAR is defined.
+    foreach my $vcond (keys %{$var_value{$var}})
     {
-       foreach (split (' ', $contents{$var}))
+       push (@this_conds, $vcond);
+
+       # If $VAR references some other variable, then compute the
+       # conditions for that subvariable.
+       my @subvar_conds = ();
+       foreach (split (' ', $var_value{$var}{$vcond}))
        {
            # If a comment seen, just leave.
            last if /^#/;
@@ -5266,78 +5900,33 @@ sub variable_conditions_sub
            # Handle variable substitutions.
            if (/^\$\{(.*)\}$/ || /^\$\((.*)\)$/)
            {
-               push (@new_conds,
-                     &variable_conditions_sub ($1, $var, @parent_conds));
-           }
-       }
-
-       # Now we want to return all permutations of the subvariable
-       # conditions.
-       local (%allconds, $item);
-       foreach $item (@new_conds)
-       {
-           foreach (split ('@', $item))
-           {
-               next if ! $_;
-               s/_(TRUE|FALSE)$//;
-               $allconds{$_ . '_TRUE'} = 1;
-           }
-       }
-
-       # Unset our entry in vars_scanned.  We only care about recursive
-       # definitions.
-       delete $vars_scanned{$var};
-
-       return &variable_conditions_permutations (keys %allconds);
-    }
-
-    local (@this_conds) = ();
-    local (@condvals) = split (' ', $conditional{$var});
-    while (@condvals)
-    {
-       local ($cond) = shift (@condvals);
-       local ($val) = &unquote_cond_val (shift (@condvals));
-
-       if (@parent_conds)
-       {
-           local ($ok) = 1;
-           local ($parent_cond);
-           foreach $parent_cond (@parent_conds)
-           {
-               if (! &conditional_true_when ($parent_cond, $cond))
+               my $varname = $1;
+               if ($varname =~ /$SUBST_REF_PATTERN/o)
                {
-                   $ok = 0;
-                   last;
+                   $varname = $1;
                }
-           }
+ 
 
-           next if ! $ok;
-       }
-
-       push (@this_conds, $cond);
-
-       push (@parent_conds, $cond);
-       local (@subvar_conds) = ();
-       foreach (split (' ', $val))
-       {
-           # If a comment seen, just leave.
-           last if /^#/;
-
-           # Handle variable substitutions.
-           if (/^\$\{(.*)\}$/ || /^\$\((.*)\)$/)
-           {
-               push (@subvar_conds,
-                     &variable_conditions_sub ($1, $var, @parent_conds));
+               # Here we compute all the conditions under which the
+               # subvariable is defined.  Then we go through and add
+               # $VCOND to each.
+               my @svc = &variable_conditions_sub ($varname, $var);
+               foreach my $item (@svc)
+               {
+                   my $val = conditional_string ($vcond, split (' ', $item));
+                   $val ||= 'TRUE';
+                   push (@subvar_conds, $val);
+               }
            }
        }
-       pop (@parent_conds);
 
        # If there are no conditional subvariables, then we want to
        # return this condition.  Otherwise, we want to return the
-       # permutations of the subvariables.
+       # permutations of the subvariables, taking into account the
+       # conditions of $VAR.
        if (! @subvar_conds)
        {
-           push (@new_conds, $cond);
+           push (@new_conds, $vcond);
        }
        else
        {
@@ -5349,25 +5938,19 @@ sub variable_conditions_sub
     # definitions.
     delete $vars_scanned{$var};
 
-    return @new_conds
-       if ! $parent;
-
     # If we are being called on behalf of another variable, we need to
     # return all possible permutations of the conditions.  We have
     # already handled everything in @this_conds along with their
     # subvariables.  We now need to add any permutations that are not
     # in @this_conds.
-    local ($this_cond);
-    foreach $this_cond (@this_conds)
+    foreach my $this_cond (@this_conds)
     {
-       local (@perms) =
-           &variable_conditions_permutations (split('@', $this_cond));
-       local ($perm);
-       foreach $perm (@perms)
+       my @perms =
+           &variable_conditions_permutations (split(' ', $this_cond));
+       foreach my $perm (@perms)
        {
-           local ($scan);
-           local ($ok) = 1;
-           foreach $scan (@this_conds)
+           my $ok = 1;
+           foreach my $scan (@this_conds)
            {
                if (&conditional_true_when ($perm, $scan)
                    || &conditional_true_when ($scan, $perm))
@@ -5378,22 +5961,6 @@ sub variable_conditions_sub
            }
            next if ! $ok;
 
-           if (@parent_conds)
-           {
-               local ($ok) = 1;
-               local ($parent_cond);
-               foreach $parent_cond (@parent_conds)
-               {
-                   if (! &conditional_true_when ($parent_cond, $perm))
-                   {
-                       $ok = 0;
-                       last;
-                   }
-               }
-
-               next if ! $ok;
-           }
-
            # This permutation was not already handled, and is valid
            # for the parents.
            push (@new_conds, $perm);
@@ -5403,79 +5970,99 @@ sub variable_conditions_sub
     return @new_conds;
 }
 
-# Subroutine for variable_conditions_sort
-sub variable_conditions_cmp
+
+# Filter a list of conditionals so that only the exclusive ones are
+# retained.  For example, if both `COND1_TRUE COND2_TRUE' and
+# `COND1_TRUE' are in the list, discard the latter.
+# If the list is empty, return TRUE
+sub variable_conditions_reduce
 {
-    local ($as) = $a;
-    $as =~ s/address@hidden//g;
-    local ($bs) = $b;
-    $bs =~ s/address@hidden//g;
-    return (length ($as) <=> length ($bs)
-           || $a cmp $b);
+    my (@conds) = @_;
+    my @ret = ();
+    my $cond;
+    while(@conds > 0)
+    {
+       $cond = shift(@conds);
+
+        # FALSE is absorbent.
+        if ($cond eq 'FALSE')
+         {
+           return ('FALSE');
+         }
+       elsif (!conditional_is_redundant ($cond, @ret, @conds))
+         {
+           push (@ret, $cond);
+         }
+    }
+
+    return "TRUE" if @ret == 0;
+    return @ret;
 }
 
-# Sort a list of conditionals so that only the exclusive ones are
-# retained.  For example, if both @COND1_TRUE@@COND2_TRUE@ and
-# @COND1_TRUE@ are in the list, discard the latter.
-sub variable_conditions_reduce
+# @CONDS
+# invert_conditions (@CONDS)
+# --------------------------
+# Invert a list of conditionals.  Returns a set of conditionals which
+# are never true for any of the input conditionals, and when taken
+# together with the input conditionals cover all possible cases.
+# 
+# For example: invert_conditions("A_TRUE B_TRUE", "A_FALSE B_FALSE") will
+# return ("A_FALSE B_TRUE", "A_TRUE B_FALSE")
+sub invert_conditions
 {
-    local (@conds) = @_;
-    local (@ret) = ();
-    local ($cond);
-    foreach $cond (sort variable_conditions_cmp @conds)
+    my (@conds) = @_;
+
+    my @notconds = ();
+    foreach my $cond (@conds)
     {
-       local ($ok) = 1;
-       local ($scan);
-       foreach $scan (@ret)
+       foreach my $perm (variable_conditions_permutations (split(' ', $cond)))
        {
-           if (&conditional_true_when ($cond, $scan))
-           {
-               $ok = 0;
-               last;
-           }
+           push @notconds, $perm
+                   if ! conditional_is_redundant ($perm, @conds);
        }
-       next if ! $ok;
-       push (@ret, $cond);
     }
-
-    return @ret;
+    return variable_conditions_reduce (@notconds);
 }
 
 # Return a list of permutations of a conditional string.
 sub variable_conditions_permutations
 {
-    local (@comps) = @_;
+    my (@comps) = @_;
     return ()
        if ! @comps;
-    local ($comp) = shift (@comps);
+    my $comp = shift (@comps);
     return &variable_conditions_permutations (@comps)
        if $comp eq '';
-    local ($neg) = $comp;
-    $neg =~ s/TRUE$/TRUEO/;
-    $neg =~ s/FALSE$/TRUE/;
-    $neg =~ s/TRUEO$/FALSE/;
-    local (@ret);
-    local ($sub);
-    foreach $sub (&variable_conditions_permutations (@comps))
+    my $neg = condition_negate ($comp);
+
+    my @ret;
+    foreach my $sub (&variable_conditions_permutations (@comps))
     {
-       push (@ret, '@' . $comp . '@' . $sub);
-       push (@ret, '@' . $neg . '@' . $sub);
+       push (@ret, "$comp $sub");
+       push (@ret, "$neg $sub");
     }
     if (! @ret)
     {
-       push (@ret, '@' . $comp . '@');
-       push (@ret, '@' . $neg . '@');
+       push (@ret, $comp);
+       push (@ret, $neg);
     }
     return @ret;
 }
 
+
+# $BOOL
+# &check_variable_defined_unconditionally($VAR, $PARENT)
+# ------------------------------------------------------
 # Warn if a variable is conditionally defined.  This is called if we
 # are using the value of a variable.
-sub variable_conditionally_defined
+sub check_variable_defined_unconditionally ($$)
 {
-    local ($var, $parent) = @_;
-    if ($conditional{$var})
+    my ($var, $parent) = @_;
+    foreach my $cond (keys %{$var_value{$var}})
     {
+        next
+         if $cond =~ /^TRUE|FALSE$/;
+
        if ($parent)
        {
            &am_line_error ($parent,
@@ -5484,33 +6071,42 @@ sub variable_conditionally_defined
        else
        {
            &am_line_error ($parent,
-                           "warning: automake does not support $var being 
defined conditionally")
+                           "warning: automake does not support $var being 
defined conditionally");
        }
     }
 }
 
-# Get the value of a variable.  This just returns $contents, but warns
-# if the variable is conditionally defined.
+
+# Get the TRUE value of a variable, warn if the variable is
+# conditionally defined.
 sub variable_value
 {
-    local ($var) = @_;
-    &variable_conditionally_defined ($var);
-    return $contents{$var};
+    my ($var) = @_;
+    &check_variable_defined_unconditionally ($var);
+    return $var_value{$var}{'TRUE'};
 }
 
+
+# @VALUES
+# &value_to_list ($VAR, $VAL, $COND)
+# ----------------------------------
 # Convert a variable value to a list, split as whitespace.  This will
 # recursively follow $(...) and ${...} inclusions.  It preserves @...@
-# substitutions.  If COND is 'all', then all values under all
-# conditions should be returned; if COND is a particular condition
-# (all conditions are surrounded by @...@) then only the value for
-# that condition should be returned; otherwise, warn if VAR is
-# conditionally defined.  SCANNED is a global hash listing whose keys
-# are all the variables already scanned; it is an error to rescan a
-# variable.
+# substitutions.
+#
+# If COND is 'all', then all values under all conditions should be
+# returned; if COND is a particular condition (all conditions are
+# surrounded by @...@) then only the value for that condition should
+# be returned; otherwise, warn if VAR is conditionally defined.
+# SCANNED is a global hash listing whose keys are all the variables
+# already scanned; it is an error to rescan a variable.
 sub value_to_list
 {
-    local ($var, $val, $cond) = @_;
-    local (@result);
+    my ($var, $val, $cond) = @_;
+    my @result;
+
+    # Strip backslashes
+    $val =~ s/\\(\n|$)/ /g;
 
     foreach (split (' ', $val))
     {
@@ -5520,15 +6116,15 @@ sub value_to_list
        # Handle variable substitutions.
        if (/^\$\{([^}]*)\}$/ || /^\$\(([^)]*)\)$/)
        {
-           local ($varname) = $1;
+           my $varname = $1;
 
            # If the user uses a losing variable name, just ignore it.
            # This isn't ideal, but people have requested it.
            next if ($varname =~ /address@hidden@/);
 
-           local ($from, $to);
-           local (@temp_list);
-           if ($varname =~ /^([^:]*):([^=]*)=(.*)$/)
+           my ($from, $to);
+           my @temp_list;
+           if ($varname =~ /$SUBST_REF_PATTERN/o)
            {
                $varname = $1;
                $to = $3;
@@ -5539,7 +6135,7 @@ sub value_to_list
            @temp_list = &variable_value_as_list_worker ($1, $cond, $var);
 
            # Now rewrite the value if appropriate.
-           if ($from)
+           if (defined $from)
            {
                grep (s/$from$/$to/, @temp_list);
            }
@@ -5565,61 +6161,54 @@ sub value_to_list
 # the including variable; this is only used for error reports.
 sub variable_value_as_list_worker
 {
-    local ($var, $cond, $parent) = @_;
-    local (@result);
+    my ($var, $cond, $parent) = @_;
+    my @result = ();
 
-    if (defined $targets{$var})
-    {
-       &am_line_error ($var, "\`$var' is target; expected variable");
-    }
-    elsif (! defined $contents{$var})
+    if (! defined $var_value{$var})
     {
-       &am_line_error ($parent, "variable \`$var' not defined");
+        if (defined $targets{$var})
+         {
+           &am_line_error ($var, "`$var' is a target; expected a variable");
+         }
+       else
+         {
+           &am_line_error ($parent, "variable `$var' not defined");
+         }
     }
     elsif (defined $vars_scanned{$var})
     {
        # `vars_scanned' is a global we use to keep track of which
        # variables we've already examined.
-       &am_line_error ($parent, "variable \`$var' recursively defined");
+       &am_line_error ($parent, "variable `$var' recursively defined");
     }
-    elsif ($cond eq 'all' && $conditional{$var})
+    elsif ($cond eq 'all')
     {
        $vars_scanned{$var} = 1;
-       local (@condvals) = split (' ', $conditional{$var});
-       while (@condvals)
+       foreach my $vcond (keys %{$var_value{$var}})
        {
-           shift (@condvals);
-           local ($val) = &unquote_cond_val (shift (@condvals));
+           my $val = $var_value{$var}{$vcond};
            push (@result, &value_to_list ($var, $val, $cond));
        }
     }
-    elsif ($cond && $conditional{$var})
+    else
     {
+        $cond ||= 'TRUE';
        $vars_scanned{$var} = 1;
-       local (@condvals) = split (' ', $conditional{$var});
-       local ($onceflag);
-       while (@condvals)
+       my $onceflag;
+       foreach my $vcond (keys %{$var_value{$var}})
        {
-           local ($vcond) = shift (@condvals);
-           local ($val) = &unquote_cond_val (shift (@condvals));
+           my $val = $var_value{$var}{$vcond};
            if (&conditional_true_when ($vcond, $cond))
            {
                # Warn if we have an ambiguity.  It's hard to know how
                # to handle this case correctly.
-               &variable_conditionally_defined ($var, $parent)
+               &check_variable_defined_unconditionally ($var, $parent)
                    if $onceflag;
                $onceflag = 1;
                push (@result, &value_to_list ($var, $val, $cond));
            }
        }
     }
-    else
-    {
-       $vars_scanned{$var} = 1;
-       &variable_conditionally_defined ($var, $parent);
-       $content_seen{$var} = 1;
-       push (@result, &value_to_list ($var, $contents{$var}, $cond));
-    }
 
     # Unset our entry in vars_scanned.  We only care about recursive
     # definitions.
@@ -5628,28 +6217,68 @@ sub variable_value_as_list_worker
     return @result;
 }
 
+
+# &variable_output ($VAR, address@hidden)
+# ---------------------------------
+# Output all the values of $VAR is @COND is not specified, else only
+# that corresponding to @COND.
+sub variable_output ($@)
+{
+  my ($var, @conds) = @_;
+
+  @conds = sort by_condition keys %{$var_value{$var}}
+    unless @conds;
+
+  $output_vars .= $var_comment{$var}
+    if defined $var_comment{$var};
+
+  foreach my $cond (@conds)
+    {
+      my $val = $var_value{$var}{$cond};
+      my $equals = $var_type{$var} eq ':' ? ':=' : '=';
+      my $output_var = "$var $equals $val";
+      $output_var =~ s/^/make_condition ($cond)/meg;
+      $output_vars .= $output_var . "\n";
+    }
+}
+
+
+# &variable_pretty_output ($VAR, address@hidden)
+# ----------------------------------------
+# Likewise, but pretty, i.e., we *split* the values at spaces.   Use only
+# with variables holding filenames.
+sub variable_pretty_output ($@)
+{
+  my ($var, @conds) = @_;
+
+  @conds = sort by_condition keys %{$var_value{$var}}
+    unless @conds;
+
+  $output_vars .= $var_comment{$var}
+    if defined $var_comment{$var};
+
+  foreach my $cond (@conds)
+    {
+      my $val = $var_value{$var}{$cond};
+      my $equals = $var_type{$var} eq ':' ? ':=' : '=';
+      my $make_condition = make_condition ($cond);
+      $output_vars .= pretty_print_internal ("$make_condition$var $equals",
+                                            "$make_condition\t",
+                                            split (' ' , $val));
+    }
+}
+
+
 # This is just a wrapper for variable_value_as_list_worker that
 # initializes the global hash `vars_scanned'.  This hash is used to
 # avoid infinite recursion.
 sub variable_value_as_list
 {
-    local ($var, $cond, $parent) = @_;
+    my ($var, $cond, $parent) = @_;
     %vars_scanned = ();
     return &variable_value_as_list_worker ($var, $cond, $parent);
 }
 
-# Define a new variable, but only if not already defined.
-sub define_variable
-{
-    local ($var, $value) = @_;
-
-    if (! defined $contents{$var})
-    {
-       $output_vars .= $var . ' = ' . $value . "\n";
-       $contents{$var} = $value;
-       $content_seen{$var} = 1;
-    }
-}
 
 # Like define_variable, but the value is a list, and the variable may
 # be defined conditionally.  The second argument is the conditional
@@ -5659,70 +6288,147 @@ sub define_variable
 # pretty printed in the output file.
 sub define_pretty_variable
 {
-    local ($var, $cond, @value) = @_;
-    if (! defined $contents{$var}
-       || ($cond && ! &variable_defined ($var, $cond)))
+    my ($var, $cond, @value) = @_;
+
+    # Beware that an empty $cond has a different semantics for
+    # macro_define and variable_pretty_output.
+    $cond ||= 'TRUE';
+
+    if (! &variable_defined ($var, $cond))
     {
-       $contents{$var} = join (' ', @value);
-       if ($cond)
-       {
-           if ($conditional{$var})
-           {
-               $conditional{$var} .= ' ';
-           }
-           else
-           {
-               $conditional{$var} = '';
-           }
-           $conditional{$var} .= ($cond
-                                  . ' '
-                                  . &quote_cond_val ($contents{$var}));
-       }
-       &pretty_print ($cond . $var . ' = ', $cond, @value);
+        macro_define ($var, 1, '', $cond, join (' ', @value), undef);
+       variable_pretty_output ($var, $cond || 'TRUE');
        $content_seen{$var} = 1;
     }
 }
 
+
+# define_variable ($VAR, $VALUE)
+# ------------------------------
+# Define a new user variable VAR to VALUE, but only if not already defined.
+sub define_variable
+{
+    my ($var, $value) = @_;
+
+    define_pretty_variable ($var, 'TRUE', $value);
+}
+
+
 # Like define_variable, but define a variable to be the configure
 # substitution by the same name.
 sub define_configure_variable
 {
-    local ($var) = @_;
-    local ($value) = '@' . $var . '@';
+    my ($var) = @_;
+    my $value = '@' . $var . '@';
+    &define_variable ($var, $value);
+}
+
+
+# define_compiler_variable ($LANG)
+# --------------------------------
+# Define a compiler variable.  We also handle defining the `LT'
+# version of the command when using libtool.
+sub define_compiler_variable ($)
+{
+    my ($lang) = @_;
+
+    my ($var, $value) = ($lang->compiler, $lang->compile);
     &define_variable ($var, $value);
+    &define_variable ("LT$var", "\$(LIBTOOL) --mode=compile $value")
+      if $seen_libtool;
 }
 
-# Define a variable that represents a program to run.  If in Cygnus
-# mode, the program is searched for in the build (or source) tree.
-# Otherwise no searching is done at all.  Arguments are:
-# * VAR      Name of variable to define
-# * WHATDIR  Either `src' or `build', depending on where program should
-#            be found.  (runtest is in srcdir!)
-# * SUBDIR   Subdir of top-level dir
-# * PROGRAM  Name of program
-# * OVERRIDE If specified, the name of the program to use when not in
-#            Cygnus mode.  Defaults to PROGRAM.
-sub define_program_variable
+
+# define_linker_variable ($LANG)
+# ------------------------------
+# Define linker variables.
+sub define_linker_variable ($)
 {
-    local ($var, $whatdir, $subdir, $program, $override) = @_;
+    my ($lang) = @_;
 
-    if (! $override)
-    {
-       $override = $program;
-    }
+    my ($var, $value) = ($lang->lder, $lang->ld);
+    # CCLD = $(CC).
+    &define_variable ($lang->lder, $lang->ld);
+    # CCLINK = $(CCLD) blah blah...
+    &define_variable ($lang->linker,
+                     (($seen_libtool ? '$(LIBTOOL) --mode=link ' : '')
+                      . $lang->link));
+}
 
-    if ($cygnus_mode)
-    {
-       local ($full) = ('$(top_' . $whatdir . 'dir)/../'
-                        . $subdir . '/' . $program);
-       &define_variable ($var, ('`if test -f ' . $full
-                                . '; then echo ' . $full . '; else echo '
-                                . $program . '; fi`'));
-    }
-    else
-    {
-       &define_variable ($var, $override);
-    }
+################################################################
+
+## ---------------- ##
+## Handling rules.  ##
+## ---------------- ##
+
+# $BOOL
+# rule_define ($TARGET, $IS_AM, $COND, $WHERE)
+# --------------------------------------------
+# Define a new rule.  $TARGET is the rule name.  $IS_AM is a boolean
+# which is true if the new rule is defined by the user.  $COND is the
+# condition under which the rule is defined.  $WHERE is where the rule
+# is defined (file name or line number).  Returns true if it is ok to
+# define the rule, false otherwise.
+sub rule_define ($$$$)
+{
+  my ($target, $rule_is_am, $cond, $where) = @_;
+
+  # For now `foo:' will override `foo$(EXEEXT):'.  This is temporary,
+  # though, so we emit a warning.
+  (my $noexe = $target) =~ s,\$\(EXEEXT\)$,,;
+  if ($noexe ne $target && defined $targets{$noexe})
+  {
+      # The no-exeext option enables this feature.
+      if (! defined $options{'no-exeext'})
+      {
+         &am_line_error ($noexe,
+                         "deprecated feature: `$noexe' overrides 
`$noexe\$(EXEEXT)'\nchange your target to read `$noexe\$(EXEEXT)'");
+      }
+      # Don't define.
+      return 0;
+  }
+
+  if (defined $targets{$target}
+      && ($cond
+         ? ! defined $target_conditional{$target}
+         : defined $target_conditional{$target}))
+  {
+      &am_line_error ($target,
+                     "$target defined both conditionally and unconditionally");
+  }
+
+  # Value here doesn't matter; for targets we only note existence.
+  $targets{$target} = $where;
+  if ($cond)
+  {
+      if ($target_conditional{$target})
+      {
+         &check_ambiguous_conditional ($target, $cond);
+      }
+      $target_conditional{$target}{$cond} = $where;
+  }
+
+
+  # Check the rule for being a suffix rule. If so, store in a hash.
+
+  if ((my ($source_suffix, $object_suffix)) = ($target =~ 
$SUFFIX_RULE_PATTERN))
+  {
+      $suffix_rules{$source_suffix} = $object_suffix;
+      print "Sources ending in .$source_suffix become .$object_suffix\n"
+         if $verbose;
+      # Set SUFFIXES from suffix_rules.
+      push @suffixes, ".$source_suffix", ".$object_suffix";
+  }
+
+  return 1;
+}
+
+
+# See if a target exists.
+sub target_defined
+{
+    my ($target) = @_;
+    return defined $targets{$target};
 }
 
 
@@ -5734,20 +6440,20 @@ sub define_program_variable
 # user rules to come after our generated stuff.
 sub read_am_file
 {
-    local ($amfile) = @_;
-    local (*AM_FILE);
+    my ($amfile) = @_;
 
-    open (AM_FILE, $amfile) || die "automake: couldn't open \`$amfile': $!\n";
-    print "automake: reading $amfile\n" if $verbose;
+    my $am_file = new IO::File ("< $amfile");
+    if (! $am_file)
+    {
+       die "$me: couldn't open `$amfile': $!\n";
+    }
+    print "$me: reading $amfile\n" if $verbose;
 
-    local ($saw_bk) = 0;
-    local ($was_rule) = 0;
-    local ($spacing) = '';
-    local ($comment) = '';
-    local ($last_var_name) = '';
-    local ($blank) = 0;
+    my $spacing = '';
+    my $comment = '';
+    my $blank = 0;
 
-    while (<AM_FILE>)
+    while ($_ = $am_file->getline)
     {
        if (/$IGNORE_PATTERN/o)
        {
@@ -5778,7 +6484,18 @@ sub read_am_file
     $comment = '';
     $spacing = "\n";
 
-    local ($is_ok_macro);
+    # We save the conditional stack on entry, and then check to make
+    # sure it is the same on exit.  This lets us conditonally include
+    # other files.
+    my @saved_cond_stack = @cond_stack;
+    my $cond = conditional_string (@cond_stack);
+
+    my $saw_bk = 0;
+    my $was_rule = 0;
+    my $last_var_name = '';
+    my $last_var_type = '';
+    my $last_var_value = '';
+    # FIXME: shouldn't use $_ in this loop; it is too big.
     while ($_)
     {
        $_ .= "\n"
@@ -5789,6 +6506,8 @@ sub read_am_file
        $_ =~ s/address@hidden@//g
            unless $seen_maint_mode;
 
+       my $new_saw_bk = /\\$/ && ! /$COMMENT_PATTERN/o;
+
        if (/$IGNORE_PATTERN/o)
        {
            # Merely delete comments beginning with two hashes.
@@ -5812,224 +6531,94 @@ sub read_am_file
        {
            if ($was_rule)
            {
-               $output_trailer .= join ('', @conditional_stack) . $_;
-               $saw_bk = /\\$/;
+               $output_trailer .= &make_condition (@cond_stack);
+               $output_trailer .= $_;
            }
            else
            {
-               $saw_bk = /\\$/;
-               # Chop newline and backslash if this line is
-               # continued.  ensure trailing whitespace exists.
-               chop if $saw_bk;
-               chop if $saw_bk;
-               $contents{$last_var_name} .= ' '
-                   unless $contents{$last_var_name} =~ /\s$/;
-               $contents{$last_var_name} .= $_;
-               if (@conditional_stack)
+             $last_var_value .= ' '
+               unless $last_var_value =~ /\s$/;
+             $last_var_value .= $_;
+
+             if (!/\\$/)
                {
-                   $conditional{$last_var_name} .= &quote_cond_val ($_);
+                 $var_comment{$last_var_name} .= "$spacing"
+                   if (!defined $var_comment{$last_var_name}
+                       || substr ($var_comment{$last_var_name}, -1) ne "\n");
+                 $var_comment{$last_var_name} .= "$comment";
+                 $comment = $spacing = '';
+                 macro_define ($last_var_name, 0,
+                               $last_var_type, $cond,
+                               $last_var_value, $.)
+                   if $cond ne 'FALSE';
+                 push (@var_list, $last_var_name);
                }
            }
        }
+
        elsif (/$IF_PATTERN/o)
-       {
-           &am_line_error ($., "$1 does not appear in AM_CONDITIONAL")
-               if (! $configure_cond{$1});
-           push (@conditional_stack, "\@" . $1 . "_TRUE\@");
-       }
+         {
+           $cond = cond_stack_if ($1, $2, "$amfile:$.");
+         }
        elsif (/$ELSE_PATTERN/o)
-       {
-           if (! @conditional_stack)
-           {
-               &am_line_error ($., "else without if");
-           }
-           elsif ($conditional_stack[$#conditional_stack] =~ /address@hidden/)
-           {
-               &am_line_error ($., "else after else");
-           }
-           else
-           {
-               $conditional_stack[$#conditional_stack]
-                   =~ s/address@hidden/_FALSE\@/;
-           }
-       }
+         {
+           $cond = cond_stack_else ($1, $2, "$amfile:$.");
+         }
        elsif (/$ENDIF_PATTERN/o)
-       {
-           if (! @conditional_stack)
-           {
-               &am_line_error ($., "endif without if");
-           }
-           else
-           {
-               pop @conditional_stack;
-           }
-       }
+         {
+           $cond = cond_stack_endif ($1, $2, "$amfile:$.");
+         }
+
        elsif (/$RULE_PATTERN/o)
        {
            # Found a rule.
            $was_rule = 1;
-           if (defined $contents{$1}
-               && (@conditional_stack
-                   ? ! defined $conditional{$1}
-                   : defined $conditional{$1}))
-           {
-               &am_line_error ($1,
-                               "$1 defined both conditionally and 
unconditionally");
-           }
-           # Value here doesn't matter; for targets we only note
-           # existence.
-           $contents{$1} = 1;
-           $targets{$1} = 1;
-           local ($cond_string) = join ('', @conditional_stack);
-           if (@conditional_stack)
-           {
-               if ($conditional{$1})
-               {
-                   &check_ambiguous_conditional ($1, $cond_string);
-                   $conditional{$1} .= ' ';
-               }
-               else
-               {
-                   $conditional{$1} = '';
-               }
-               $conditional{$1} .= $cond_string . ' 1';
-           }
-           $content_lines{$1} = $.;
-           $output_trailer .= $comment . $spacing . $cond_string . $_;
-           $comment = $spacing = '';
-           $saw_bk = /\\$/;
-
-           # Check the rule for being a suffix rule. If so, store in
-           # a hash.
 
-           local ($source_suffix);
-           local ($object_suffix);
+           rule_define ($1, 0, $cond, $.);
 
-           if (($source_suffix, $object_suffix) = ($1 =~ 
$SUFFIX_RULE_PATTERN)) 
-           {
-             $suffix_rules{$source_suffix} = $object_suffix;
-             print "Sources ending in .$source_suffix become 
.$object_suffix\n" if $verbose;
-             $source_suffix_pattern = "(" . join('|', keys %suffix_rules) . 
")";
-           }
-
-           # FIXME: make sure both suffixes are in SUFFIXES? Or set
-           # SUFFIXES from suffix_rules?
+           $var_line{$1} = $.;
+           $output_trailer .= $comment . $spacing;
+            $output_trailer .= &make_condition (@cond_stack);
+            $output_trailer .= $_;
+           $comment = $spacing = '';
        }
-       elsif (($is_ok_macro = /$MACRO_PATTERN/o)
-              || /$BOGUS_MACRO_PATTERN/o)
+       elsif (/$ASSIGNMENT_PATTERN/o)
        {
            # Found a macro definition.
            $was_rule = 0;
            $last_var_name = $1;
-           if (defined $contents{$1}
-               && (@conditional_stack
-                   ? ! defined $conditional{$1}
-                   : defined $conditional{$1}))
-           {
-               &am_line_error ($1,
-                               "$1 defined both conditionally and 
unconditionally");
-           }
-           local ($value);
+           $last_var_type = $2;
+           $last_var_value = $3;
            if ($3 ne '' && substr ($3, -1) eq "\\")
            {
-               $value = substr ($3, 0, length ($3) - 1);
-           }
-           else
-           {
-               $value = $3;
-           }
-           local ($type) = $2;
-           if ($type eq '+')
-           {
-               if (! defined $contents{$last_var_name}
-                   && defined $configure_vars{$last_var_name})
-               {
-                   $contents{$last_var_name} = '@' . $last_var_name . '@';
-               }
-               $contents{$last_var_name} .= ' ' . $value;
-           }
-           else
-           {
-               $contents{$last_var_name} = $value;
-               # The first assignment to a macro sets the line
-               # number.  Ideally I suppose we would associate line
-               # numbers with random bits of text.
-               $content_lines{$last_var_name} = $.;
-           }
-           local ($cond_string) = join ('', @conditional_stack);
-           if (@conditional_stack)
-           {
-               local ($found) = 0;
-               local ($val);
-               if ($conditional{$last_var_name})
-               {
-                   if ($type eq '+')
-                   {
-                       # If we're adding to the conditional, and it
-                       # exists, then we might want to simply replace
-                       # the old value with the new one.
-                       local (@new_vals, @cond_vals);
-                       @cond_vals = split (' ', $conditional{$last_var_name});
-                       while (@cond_vals)
-                       {
-                           local ($vcond) = shift (@cond_vals);
-                           push (@new_vals, $vcond);
-                           if (&conditional_same ($vcond, $cond_string))
-                           {
-                               $found = 1;
-                               $val = (&unquote_cond_val (shift (@cond_vals))
-                                       . ' ' . $value);
-                               push (@new_vals, &quote_cond_val ($val));
-                           }
-                           else
-                           {
-                               push (@new_vals, shift (@cond_vals));
-                           }
-                       }
-                       if ($found)
-                       {
-                           $conditional{$last_var_name}
-                               = join (' ', @new_vals);
-                       }
-                   }
-
-                   if (! $found)
-                   {
-                       &check_ambiguous_conditional ($last_var_name,
-                                                     $cond_string);
-                       $conditional{$last_var_name} .= ' ';
-                       $val = $value;
-                   }
-               }
-               else
-               {
-                   $conditional{$last_var_name} = '';
-                   $val = $contents{$last_var_name};
-               }
-               if (! $found)
-               {
-                   $conditional{$last_var_name} .= ($cond_string
-                                                    . ' '
-                                                    . &quote_cond_val ($val));
-               }
+               # We preserve the `\' because otherwise the long lines
+               # that are generated will be truncated by broken
+               # `sed's.
+               $last_var_value = $3 . "\n";
            }
 
-           # FIXME: this doesn't always work correctly; it will group
-           # all comments for a given variable, no matter where
-           # defined.
-           $am_vars{$last_var_name} = $comment . $spacing;
-           $def_type{$last_var_name} = ($type eq ':') ? ':' : '';
-           push (@var_list, $last_var_name);
-           $comment = $spacing = '';
-           $saw_bk = /\\$/;
-
-           # Error if bogus.
-           &am_line_error ($., "bad macro name \`$last_var_name'")
-               if ! $is_ok_macro;
+           if (!/\\$/)
+             {
+               # FIXME: this doesn't always work correctly; it will
+               # group all comments for a given variable, no matter
+               # where defined.
+               # Accumulating variables must not be output.
+               $var_comment{$last_var_name} .= "$spacing"
+                 if (!defined $var_comment{$last_var_name}
+                     || substr ($var_comment{$last_var_name}, -1) ne "\n");
+               $var_comment{$last_var_name} .= "$comment";
+               $comment = $spacing = '';
+
+               macro_define ($last_var_name, 0,
+                             $last_var_type, $cond,
+                             $last_var_value, $.)
+                 if $cond ne 'FALSE';
+               push (@var_list, $last_var_name);
+             }
        }
         elsif (/$INCLUDE_PATTERN/o)
         {
-            local ($path) = $1;
+            my $path = $1;
 
             if ($path =~ s/^\$\(top_srcdir\)\///)
             {
@@ -6048,458 +6637,462 @@ sub read_am_file
            # This isn't an error; it is probably a continued rule.
            # In fact, this is what we assume.
            $was_rule = 1;
-           $output_trailer .= ($comment . $spacing
-                               . join ('', @conditional_stack) . $_);
+           $output_trailer .= $comment . $spacing;
+           $output_trailer .= &make_condition  (@cond_stack);
+           $output_trailer .= $_;
            $comment = $spacing = '';
-           $saw_bk = /\\$/;
+           &am_line_error ($., "`#' comment at start of rule is unportable")
+               if $_ =~ /^\t\s*\#/;
        }
 
-       $_ = <AM_FILE>;
+       $saw_bk = $new_saw_bk;
+        $_ = $am_file->getline;
     }
 
     $output_trailer .= $comment;
 
-    &am_error ("unterminated conditionals: " . join (' ', @conditional_stack))
-       if (@conditional_stack);
-}
-
-# Read main am file.
-sub read_main_am_file
-{
-    local ($amfile) = @_;
-
-    $output_vars = ("# $in_file_name generated automatically by automake "
-                   . $VERSION . " from $am_file_name\n");
-
-    # Generate copyright for generated Makefile.in.
-    $output_vars .= $gen_copyright;
-
-    # The keys here are variables we want to dump at the end of this
-    # function.  The values are corresponding comments.
-    local (%am_vars) = ();
-    local (@var_list) = ();
-    local (%def_type) = ();
-
-    &read_am_file ($amfile);
-
-    # Compute relative location of the top object directory.
-    local (@topdir) = ();
-    foreach (split (/\//, $relative_dir))
+    if (join (' ', @saved_cond_stack) ne join (' ', @cond_stack))
     {
-       next if $_ eq '.' || $_ eq '';
-       if ($_ eq '..')
+       if (@cond_stack)
        {
-           pop @topdir;
+           &am_error ("unterminated conditionals: @cond_stack");
        }
        else
        {
-           push (@topdir, '..');
+           # FIXME: better error message here.
+           &am_error ("conditionals not nested in include file");
        }
     }
-    @topdir = ('.') if ! @topdir;
-
-    $top_builddir = join ('/', @topdir);
-    local ($build_rx);
-    ($build_rx = $top_builddir) =~ s/(\W)/\\$1/g;
-    $output_vars .= &file_contents_with_transform
-                        ('s/address@hidden@/' . $build_rx . '/g;',
-                        'header-vars');
+}
 
-    # Generate some useful variables when AC_CANONICAL_* used.  FIXME:
-    # this should use generic %configure_vars method.
-    if ($seen_canonical)
-    {
-       local ($curs, %vars);
-       $vars{'host_alias'} = 'host_alias';
-       $vars{'host_triplet'} = 'host';
-       if ($seen_canonical == $AC_CANONICAL_SYSTEM)
-       {
-           $vars{'build_alias'} = 'build_alias';
-           $vars{'build_triplet'} = 'build';
-           $vars{'target_alias'} = 'target_alias';
-           $vars{'target_triplet'} = 'target';
-       }
-       foreach $curs (sort keys %vars)
-       {
-           $output_vars .= "$curs = address@hidden@\n";
-           $contents{$curs} = "address@hidden@";
-       }
-    }
 
-    local ($curs);
-    foreach $curs (sort keys %configure_vars)
-    {
-       &define_configure_variable ($curs);
-    }
+# define_standard_variables ()
+# ----------------------------
+# A helper for read_main_am_file which initializes configure variables
+# and variables from header-vars.am.  This is a subr so we can call it
+# twice.
+sub define_standard_variables
+{
+    my $saved_output_vars = $output_vars;
+    my ($comments, undef, $rules) =
+      file_contents_internal (1, "$libdir/am/header-vars.am");
 
-    # Now dump the variables that were defined.  We do it in the same
-    # order in which they were defined (skipping duplicates).
-    local (%done);
-    foreach $curs (@var_list)
+    # This will output the definitions in $output_vars, which we don't
+    # want...
+    foreach my $var (sort keys %configure_vars)
     {
-       next if $done{$curs};
-       $done{$curs} = 1;
-
-       $output_vars .= $am_vars{$curs};
-       if ($conditional{$curs})
-       {
-           local (@cond_vals) = split (' ', $conditional{$curs});
-           while (@cond_vals)
-           {
-               local ($vcond) = shift (@cond_vals);
-               local ($val) = &unquote_cond_val (shift (@cond_vals));
-               $output_vars .= ($vcond . $curs
-                                . ' ' . $def_type{$curs} . '= '
-                                . $val . "\n");
-           }
-       }
-       else
-       {
-           $output_vars .= ($curs . ' ' . $def_type{$curs} . '= '
-                            . $contents{$curs} . "\n");
-       }
+        &define_configure_variable ($var);
+        push (@var_list, $var);
     }
-}
 
-################################################################
-
-sub initialize_global_constants
-{
-    # Values for AC_CANONICAL_*
-    $AC_CANONICAL_HOST = 1;
-    $AC_CANONICAL_SYSTEM = 2;
-
-    # Associative array of standard directory names.  Entry is TRUE if
-    # corresponding directory should be installed during
-    # 'install-exec' phase.
-    %exec_dir_p =
-       ('bin', 1,
-        'sbin', 1,
-        'libexec', 1,
-        'data', 0,
-        'sysconf', 1,
-        'localstate', 1,
-        'lib', 1,
-        'info', 0,
-        'man', 0,
-        'include', 0,
-        'oldinclude', 0,
-        'pkgdata', 0,
-        'pkglib', 1,
-        'pkginclude', 0
-        );
-
-    # Commonly found files we look for and automatically include in
-    # DISTFILES.
-    @common_files =
-       (
-        "README", "THANKS", "TODO", "NEWS", "COPYING", "COPYING.LIB",
-        "INSTALL", "ABOUT-NLS", "ChangeLog", "configure", "configure.in",
-        "config.guess", "config.sub", "AUTHORS", "BACKLOG", "ABOUT-GNU",
-        "libversion.in", "mdate-sh", "mkinstalldirs", "install-sh",
-        'texinfo.tex', "ansi2knr.c", "ansi2knr.1", 'elisp-comp',
-        'ylwrap', 'acinclude.m4', @libtoolize_files,
-        'missing'
-        );
-
-    # Commonly used files we auto-include, but only sometimes.
-    @common_sometimes =
-       (
-        "aclocal.m4", "acconfig.h", "config.h.top",
-        "config.h.bot", "stamp-h.in", 'stamp-vti'
-        );
-
-    $USAGE = "\
-  -a, --add-missing     add missing standard files to package
-  --amdir=DIR           directory storing config files
-  --build-dir=DIR       directory where build being done (for dependencies)
-  -c, --copy            with -a, copy missing files (default is symlink)
-  --cygnus              assume program is part of Cygnus-style tree
-  --foreign             set strictness to foreign
-  --gnits               set strictness to gnits
-  --gnu                 set strictness to gnu
-  --help                print this help, then exit
-  -i, --include-deps    include generated dependencies in Makefile.in
-  --no-force            only update Makefile.in's that are out of date
-  -o DIR, --output-dir=DIR
-                        put generated Makefile.in's into DIR
-  --srcdir-name=DIR     name used for srcdir (for dependencies)
-  -v, --verbose         verbosely list files processed
-  --version             print version number, then exit\n";
-
-    # Copyright on generated Makefile.ins.
-    $gen_copyright = "\
-# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-";
-
-    # Ignore return result from chmod, because it might give an error
-    # if we chmod a symlink.
-    $dist_header = "\t" . '-chmod -R a+r $(distdir)' . "\n";
-    $dist{'dist-tarZ'} = ("\t"
-                    . '$(TAR) chf - $(distdir) | compress -c > 
$(distdir).tar.Z'
-                    . "\n");
-    $dist{'dist-shar'} = ("\t"
-                    . 'shar $(distdir) | gzip > $(distdir).shar.gz'
-                    . "\n");
-    $dist{'dist-zip'} = "\t" . 'zip -rq $(distdir).zip $(distdir)' . "\n";
-    $dist{'dist'} = "\t" .  'GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz 
$(distdir)' . "\n";
-    $dist_trailer = "\t" . '-rm -rf $(distdir)' . "\n";
+    # ... hence, we restore $output_vars.
+    $output_vars = $saved_output_vars . $comments . $rules;
 }
 
-# (Re)-Initialize per-Makefile.am variables.
-sub initialize_per_input
+# Read main am file.
+sub read_main_am_file
 {
-    # These two variables are used when generating each Makefile.in.
-    # They hold the Makefile.in until it is ready to be printed.
-    $output_rules = '';
-    $output_vars = '';
-    $output_trailer = '';
-    $output_all = '';
-    $output_header = '';
+    my ($amfile) = @_;
 
-    # Suffixes found during a run.
-    @suffixes = ();
+    # This supports the strange variable tricks we are about to play.
+    if (scalar keys %var_value > 0)
+      {
+       macros_dump ();
+       &prog_error ("variable defined before read_main_am_file");
+      }
 
-    # This holds the contents of a Makefile.am, as parsed by
-    # read_am_file.
-    %contents = ();
+    # Generate copyright header for generated Makefile.in.
+    # We do discard the output of predefined variables, handled below.
+    $output_vars = ("# $in_file_name generated automatically by automake "
+                  . $VERSION . " from $am_file_name.\n");
+    $output_vars .= $gen_copyright;
 
-    # This holds the names which are targets.  These also appear in
-    # %contents.
-    %targets = ();
+    # We want to predefine as many variables as possible.  This lets
+    # the user set them with `+=' in Makefile.am.  However, we don't
+    # want these initial definitions to end up in the output quite
+    # yet.  So we just load them, but output them later.
+    &define_standard_variables;
 
-    # For a variable or target which is defined conditionally, this
-    # holds an array of the conditional values.  The array is composed
-    # of pairs of condition strings (the variables which configure
-    # will substitute) and values (the value of a target is
-    # meaningless).  For an unconditional variable, this is empty.
-    %conditional = ();
+    # Read user file, which might override some of our values.
+    &read_am_file ($amfile);
 
-    # This holds the line numbers at which various elements of
-    # %contents are defined.
-    %content_lines = ();
+    # Ouput all the Automake variables.  If the user changed one, then
+    # it is now marked as owned by the user.
+    foreach my $var (uniq @var_list)
+    {
+       # Don't process user variables.
+        variable_output ($var)
+         unless !$var_is_am{$var};
+    }
 
-    # This holds a 1 if a particular variable was examined.
-    %content_seen = ();
+    # Now dump the user variables that were defined.  We do it in the same
+    # order in which they were defined (skipping duplicates).
+    foreach my $var (uniq @var_list)
+    {
+       # Don't process Automake variables.
+        variable_output ($var)
+         unless $var_is_am{$var};
+    }
+}
 
-    # This is the conditional stack.
-    @conditional_stack = ();
+################################################################
 
-    # This holds the set of included files.
-    @include_stack = ();
+# $FLATTENED
+# &flatten ($STRING)
+# ------------------
+# Flatten the $STRING and return the result.
+sub flatten
+{
+  $_ = shift;
 
-    # This holds the "relative directory" of the current Makefile.in.
-    # Eg for src/Makefile.in, this is "src".
-    $relative_dir = '';
+  s/\\\n//somg;
+  s/\s+/ /g;
+  s/^ //;
+  s/ $//;
 
-    # This holds a list of files that are included in the
-    # distribution.
-    %dist_common = ();
+  return $_;
+}
 
-    # List of dependencies for the obvious targets.
-    @install_data = ();
-    @install_exec = ();
-    @uninstall = ();
-    @installdirs = ();
 
-    @info = ();
-    @dvi = ();
-    @all = ();
-    @check = ();
-    @check_tests = ();
-    @installcheck = ();
-    @clean = ();
+# @PARAGRAPHS
+# &make_paragraphs ($MAKEFILE, [%TRANSFORM])
+# ------------------------------------------
+# Load a $MAKEFILE, apply the %TRANSFORM, and return it as a list of
+# paragraphs.
+sub make_paragraphs ($%)
+{
+    my ($file, %transform) = @_;
 
-    @phony = ();
+    # Complete %transform with global options and make it a Perl
+    # $command.
+    my $command =
+      "s/$IGNORE_PATTERN//gm;"
+       . transform (%transform,
 
-    # A list of files deleted by `maintainer-clean'.
-    @maintainer_clean_files = ();
+                    'CYGNUS'          => $cygnus_mode,
+                    'MAINTAINER-MODE'
+                    => $seen_maint_mode ? subst ('MAINTAINER_MODE_TRUE') : '',
 
-    # These are pretty obvious, too.  They are used to define the
-    # SOURCES and OBJECTS variables.
-    @sources = ();
-    @objects = ();
+                    'SHAR'        => $options{'dist-shar'} || 0,
+                    'BZIP2'       => $options{'dist-bzip2'} || 0,
+                    'ZIP'         => $options{'dist-zip'} || 0,
+                    'COMPRESS'    => $options{'dist-tarZ'} || 0,
 
-    # These variables track inclusion of various compile-related .am
-    # files.  $included_generic_compile is TRUE if the basic code has
-    # been included.  $included_knr_compile is TRUE if the ansi2knr
-    # code has been included.  $included_libtool_compile is TRUE if
-    # libtool support has been included.
-    $included_generic_compile = 0;
-    $included_knr_compile = 0;
-    $included_libtool_compile = 0;
+                    'INSTALL-INFO' => !$options{'no-installinfo'},
+                    'INSTALL-MAN'  => !$options{'no-installman'},
+                    'CK-NEWS'      => $options{'check-news'} || 0,
 
-    # TRUE if install targets should work recursively.
-    $recursive_install = 0;
+                    'SUBDIRS'      => &variable_defined ('SUBDIRS'),
+                    'TOPDIR'       => backname ($relative_dir),
+                    'TOPDIR_P'     => $relative_dir eq '.',
+                    'CONFIGURE-AC' => $configure_ac,
 
-    # All .P files.
-    %dep_files = ();
+                    'BUILD'    => $seen_canonical == $AC_CANONICAL_SYSTEM,
+                    'HOST'     => $seen_canonical,
+                    'TARGET'   => $seen_canonical == $AC_CANONICAL_SYSTEM,
 
-    # Strictness levels.
-    $strictness = $default_strictness;
-    $strictness_name = $default_strictness_name;
+                    'LIBTOOL'      => defined $configure_vars{'LIBTOOL'})
+         # We don't need more than two consecutive new-lines.
+         . 's/\n{3,}/\n\n/g';
 
-    # Options from AUTOMAKE_OPTIONS.
-    %options = ();
+    # Swallow the file and apply the COMMAND.
+    my $fc_file = new IO::File ("< $file");
+    if (! $fc_file)
+    {
+       die "$me: installation error: cannot open `$file'\n";
+    }
+    # Looks stupid?
+    print "$me: reading $file\n"
+      if $verbose;
+    my $saved_dollar_slash = $/;
+    undef $/;
+    $_ = $fc_file->getline;
+    $/ = $saved_dollar_slash;
+    eval $command;
+    $fc_file->close;
+    my $content = $_;
+
+    # Split at unescaped new lines.
+    my @lines = split (/(?<!\\)\n/, $content);
+    my @res;
+
+    while (defined ($_ = shift @lines))
+      {
+       my $paragraph = "$_";
+       # If we are a rule, eat as long as we start with a tab.
+       if (/$RULE_PATTERN/smo)
+         {
+           while (defined ($_ = shift @lines) && $_ =~ /^\t/)
+             {
+               $paragraph .= "\n$_";
+             }
+           unshift (@lines, $_);
+         }
+
+       # If we are a comments, eat as much comments as you can.
+       elsif (/$COMMENT_PATTERN/smo)
+         {
+           while (defined ($_ = shift @lines)
+                  && $_ =~ /$COMMENT_PATTERN/smo)
+             {
+               $paragraph .= "\n$_";
+             }
+           unshift (@lines, $_);
+         }
+
+       push @res, $paragraph;
+       $paragraph = '';
+      }
+
+    return @res;
+}
+
+
+
+# ($COMMENT, $VARIABLES, $RULES)
+# &file_contents_internal ($IS_AM, $FILE, [%TRANSFORM])
+# -----------------------------------------------------
+# Return contents of a file from $libdir/am, automatically skipping
+# macros or rules which are already known. $IS_AM iff the caller is
+# reading an Automake file (as opposed to the user's Makefile.am).
+sub file_contents_internal ($$%)
+{
+    my ($is_am, $file, %transform) = @_;
+
+    my $result_vars = '';
+    my $result_rules = '';
+    my $comment = '';
+    my $spacing = '';
+
+    # We save the conditional stack on entry, and then check to make
+    # sure it is the same on exit.  This lets us conditonally include
+    # other files.
+    my @saved_cond_stack = @cond_stack;
+    my $cond = conditional_string (@cond_stack);
+
+    foreach (make_paragraphs ($file, %transform))
+    {
+        # Sanity checks.
+       &am_file_error ($file, "blank line following trailing backslash:\n$_")
+         if /\\$/;
+       &am_file_error ($file, "comment following trailing backslash:\n$_")
+         if /\\#/;
+
+       if (/^$/)
+       {
+           # Stick empty line before the incoming macro or rule.
+           $spacing = "\n";
+       }
+       elsif (/$COMMENT_PATTERN/mso)
+       {
+           # Stick comments before the incoming macro or rule.
+           $comment = "$_\n";
+       }
 
-    # Whether or not dependencies are handled.  Can be further changed
-    # in handle_options.
-    $use_dependencies = $cmdline_use_dependencies;
+       # Handle inclusion of other files.
+        elsif (/$INCLUDE_PATTERN/o)
+        {
+           if ($cond ne 'FALSE')
+             {
+               my $file = ($is_am ? "$libdir/am/" : '') . $1;
+               # N-ary `.=' fails.
+               my ($com, $vars, $rules)
+                 = file_contents_internal ($is_am, $file, %transform);
+               $comment .= $com;
+               $result_vars .= $vars;
+               $result_rules .= $rules;
+             }
+        }
 
-    # Per Makefile.am.
-    $local_maint_charset = $maint_charset;
+        # Handling the conditionals.
+        elsif (/$IF_PATTERN/o)
+         {
+           $cond = cond_stack_if ($1, $2, $file);
+         }
+       elsif (/$ELSE_PATTERN/o)
+         {
+           $cond = cond_stack_else ($1, $2, $file);
+         }
+       elsif (/$ENDIF_PATTERN/o)
+         {
+           $cond = cond_stack_endif ($1, $2, $file);
+         }
 
-    # All yacc and lex source filenames for this directory.  Use
-    # filenames instead of raw count so that multiple instances are
-    # counted correctly (eg one yacc file can appear in multiple
-    # programs without harm).
-    %yacc_sources = ();
-    %lex_sources = ();
+        # Handling rules.
+       elsif (/$RULE_PATTERN/mso)
+       {
+         # Separate relationship from optional actions: the first
+         # `new-line tab" not preceded by backslash (continuation
+         # line).
+         # I'm quite shoked!  It seems that (\\\n|[^\n]) is not the
+         # same as `([^\n]|\\\n)!!!  Don't swap it, it breaks.
+         my $paragraph = $_;
+         /^((?:\\\n|[^\n])*)(?:\n(\t.*))?$/som;
+         my ($relationship, $actions) = ($1, $2 || '');
+
+         # Separate targets from dependencies: the first colon.
+         $relationship =~ /^([^:]+\S+) *: *(.*)$/som;
+         my ($targets, $dependencies) = ($1, $2);
+         # Remove the escaped new lines.
+         # I don't know why, but I have to use a tmp $flat_deps.
+         my $flat_deps = &flatten ($dependencies);
+         my @deps = split (' ', $flat_deps);
+
+         foreach (split (' ' , $targets))
+           {
+             # FIXME: We are not robust to people defining several targets
+             # at once, only some of them being in %dependencies.
 
-    # This is a list of all targets to run during "make dist".
-    @dist_targets = ();
+             # Output only if not in FALSE.
+             if (defined $dependencies{$_}
+                 && $cond ne 'FALSE')
+               {
+                 &depend ($_, @deps);
+                 $actions{$_} .= $actions;
+               }
+             else
+               {
+                 # Free-lance dependency.  Output the rule for all the
+                 # targets instead of one by one.
 
-    # Keys in this hash are the basenames of files which must depend
-    # on ansi2knr.
-    %de_ansi_files = ();
+                 # Work out all the conditions for which the target hasn't
+                 # been defined
+                 my @undefined_conds;
+                 if (defined $target_conditional{$targets})
+                   {
+                     my @defined_conds = keys %{$target_conditional{$targets}};
+                     @undefined_conds = invert_conditions(@defined_conds);
+                   }
+                 else
+                   {
+                     if (defined $targets{$targets})
+                       {
+                         # No conditions for which target hasn't been defined
+                         @undefined_conds = ();
+                       }
+                     else
+                       {
+                         # Target hasn't been defined for any conditions
+                         @undefined_conds = ("");
+                       }
+                   }
 
-    # This maps the source extension of a suffix rule to its
-    # corresponding output extension.
-    %suffix_rules = ();
+                 if ($cond ne 'FALSE')
+                   {
+                     my $undefined_cond;
+                     for $undefined_cond (@undefined_conds)
+                     {
+                         my $condparagraph = $paragraph;
+                         $condparagraph =~ s/^/make_condition (@cond_stack, 
$undefined_cond)/gme;
+                         $result_rules .= "$spacing$comment$condparagraph\n"
+                             if rule_define ($targets, $is_am,
+                                             "$cond $undefined_cond", $file);
+                     }
+                   }
+                 $comment = $spacing = '';
+                 last;
+               }
+           }
+       }
 
-    # This is the name of the recursive `all' target to use.
-    $all_target = 'all-recursive';
+       elsif (/$ASSIGNMENT_PATTERN/mso)
+       {
+           my ($var, $type, $val) = ($1, $2, $3);
+           &am_file_error ($file, "macro `$var' with trailing backslash")
+             if /\\$/;
+
+           # Accumulating variables must not be output.
+           $var_comment{$var} .= "$spacing"
+             if (!defined $var_comment{$var}
+                 || substr ($var_comment{$var}, -1) ne "\n");
+           $var_comment{$var} .= "$comment";
+           macro_define ($var, $is_am, $type, $cond, $val, $file)
+             if $cond ne 'FALSE';
+           push (@var_list, $var);
+
+           # If the user has set some variables we were in charge
+           # of (which is detected by the first reading of
+           # `header-vars.am'), we must not output them.
+           $result_vars .= "$spacing$comment$_\n"
+             if $type ne '+' && $var_is_am{$var} && $cond ne 'FALSE';
+
+           $comment = $spacing = '';
+       }
+       else
+       {
+           # This isn't an error; it is probably some tokens which
+           # configure is supposed to replace, such as address@hidden@',
+           # or some part of a rule cut by an if/endif.
+           if ($cond ne 'FALSE')
+             {
+               s/^/make_condition (@cond_stack)/gme;
+               $result_rules .= "$spacing$comment$_\n";
+             }
+           $comment = $spacing = '';
+       }
+    }
 
-    # This keeps track of which extensions we've seen (that we care
-    # about).
-    %extension_seen = ();
+    if (join (' ', @saved_cond_stack) ne join (' ', @cond_stack))
+    {
+       if (@cond_stack)
+       {
+           &am_error ("unterminated conditionals: @cond_stack");
+       }
+       else
+       {
+           # FIXME: better error message here.
+           &am_error ("conditionals not nested in include file");
+       }
+    }
 
-    # This is random scratch space for the language finish functions.
-    # Don't randomly overwrite it; examine other uses of keys first.
-    %language_scratch = ();
+    return ($comment, $result_vars, $result_rules);
 }
 
 
-################################################################
-
-# Return contents of a file from $am_dir, automatically skipping
-# macros or rules which are already known.  Runs command on each line
-# as it is read; this command can modify $_.
-sub file_contents_with_transform
+# $CONTENTS
+# &file_contents ($BASENAME, [%TRANSFORM])
+# ----------------------------------------
+# Return contents of a file from $libdir/am, automatically skipping
+# macros or rules which are already known.
+sub file_contents ($%)
 {
-    local ($command, $basename) = @_;
-    local ($file) = $am_dir . '/' . $basename . '.am';
-
-    if ($command ne '' && substr ($command, -1) ne ';')
-    {
-       die "automake: programming error in file_contents_with_transform: 
$command\n";
-    }
+    my ($basename, %transform) = @_;
+    my ($comments, $variables, $rules) =
+      file_contents_internal (1, "$libdir/am/$basename.am", %transform);
+    return "$comments$variables$rules";
+}
 
-    open (FC_FILE, $file)
-       || die "automake: installation error: cannot open \`$file'\n";
-    # Looks stupid?
-    # print "automake: reading $file\n" if $verbose;
 
-    local ($was_rule) = 0;
-    local ($result_vars) = '';
-    local ($result_rules) = '';
-    local ($comment) = '';
-    local ($spacing) = "\n";
-    local ($skipping) = 0;
-    local ($had_chars);
+# $REGEXP
+# &transform (%PAIRS)
+# -------------------
+# Foreach ($TOKEN, $VAL) in %PAIRS produce a replacement expression suitable
+# for file_contents which:
+#   - replaces @$TOKEN@ with $VALUE,
+#   - enables/disables ?$TOKEN?.
+sub transform (%)
+{
+    my (%pairs) = @_;
+    my $result = '';
 
-    while (<FC_FILE>)
+    while (my ($token, $val) = each %pairs)
     {
-       $_ =~ s/address@hidden@//g
-           unless $seen_maint_mode;
-
-       $had_chars = length ($_) && $_ ne "\n";
-       eval $command;
-       # If the transform caused all the characters to go away, then
-       # ignore the line.  Why do this?  Because in Perl 4, a "next"
-       # inside of an eval doesn't affect a loop outside the eval.
-       # So we can't pass in a "transform" that uses next.  We used
-       # to do this.  "Empty" also means consisting of a single
-       # newline.
-       next if $had_chars && ($_ eq '' || $_ eq "\n");
-
-       if (/$IGNORE_PATTERN/o)
-       {
-           # Merely delete comments beginning with two hashes.
-       }
-       elsif (/$WHITE_PATTERN/o)
+        $result .= "s/\Q%$token%\E/\Q$val\E/gm;";
+       if ($val)
        {
-           # Stick a single white line before the incoming macro or rule.
-           $spacing = "\n";
-           &am_line_error ($., "blank line following trailing backslash")
-               if $saw_bk;
-       }
-       elsif (/$COMMENT_PATTERN/o)
-       {
-           # Stick comments before the incoming macro or rule.
-           $comment .= $spacing . $_;
-           $spacing = '';
-           &am_line_error ($., "comment following trailing backslash")
-               if $saw_bk;
-       }
-       elsif ($saw_bk)
-       {
-           if ($was_rule)
-           {
-               $result_rules .= $_ if ! $skipping;
-           }
-           else
-           {
-               $result_vars .= $_ if ! $skipping;
-           }
-           $saw_bk = /\\$/;
-       }
-       elsif (/$RULE_PATTERN/o)
-       {
-           # Found a rule.
-           $was_rule = 1;
-           $skipping = defined $contents{$1};
-           $result_rules .= $comment . $spacing . $_ if ! $skipping;
-           $comment = $spacing = '';
-           $saw_bk = /\\$/;
-       }
-       elsif (/$MACRO_PATTERN/o)
-       {
-           # Found a variable reference.
-           $was_rule = 0;
-           $skipping = defined $contents{$1};
-           $result_vars .= $comment . $spacing . $_ if ! $skipping;
-           $comment = $spacing = '';
-           $saw_bk = /\\$/;
+           $result .= "s/\Q?$token?\E//gm;s/^.*\Q?!$token?\E.*\\n//gm;";
+           $result .= "s/\Q%?$token%\E/TRUE/gm;";
        }
        else
        {
-           # This isn't an error; it is probably a continued rule.
-           # In fact, this is what we assume.
-           $was_rule = 1;
-           $result_rules .= $comment . $spacing . $_ if ! $skipping;
-           $comment = $spacing = '';
-           $saw_bk = /\\$/;
+           $result .= "s/\Q?!$token?\E//gm;s/^.*\Q?$token?\E.*\\n//gm;";
+           $result .= "s/\Q%?$token%\E/FALSE/gm;";
        }
     }
 
-    close (FC_FILE);
-    return $result_vars . $result_rules . $comment;
+    return $result;
 }
 
-# Like file_contents_with_transform, but no transform.
-sub file_contents
-{
-    return &file_contents_with_transform ('', @_);
-}
 
 # Find all variable prefixes that are used for install directories.  A
 # prefix `zar' qualifies iff:
@@ -6507,28 +7100,46 @@ sub file_contents
 # * `zar_PRIMARY' is a variable.
 sub am_primary_prefixes
 {
-    local ($primary, @prefixes) = @_;
+    my ($primary, $can_dist, @prefixes) = @_;
 
-    local (%valid, $varname);
-    grep ($valid{$_} = 0, @prefixes);
+    my %valid = map { $_ => 0 } @prefixes;
     $valid{'EXTRA'} = 0;
-    foreach $varname (keys %contents)
+    foreach my $varname (keys %var_value)
     {
-       if ($varname =~ /^(.*)_$primary$/)
+        # Automake is allowed to define variables that look like they
+        # are magic variables, such as INSTALL_DATA.
+        next
+         if $var_is_am{$varname};
+
+       if ($varname =~ /^(nobase_)?(dist_|nodist_)?(.*)_$primary$/)
        {
-           if (! defined $valid{$1}
-               && ! &variable_defined ($1 . 'dir')
+           my ($base, $dist, $X) = ($1 || '', $2 || '', $3 || '');
+           if ($dist ne '' && ! $can_dist)
+           {
                # Note that a configure variable is always legitimate.
                # It is natural to name such variables after the
                # primary, so we explicitly allow it.
-               && ! defined $configure_vars{$varname})
+               if (! defined $configure_vars{$varname})
+               {
+                   &am_line_error ($varname,
+                                   "invalid variable `$varname': `dist' is 
forbidden");
+               }
+           }
+           elsif (! defined $valid{$X} && ! &variable_defined ("${X}dir"))
            {
-               &am_line_error ($varname, "invalid variable \`$varname'");
+               # Note that a configure variable is always legitimate.
+               # It is natural to name such variables after the
+               # primary, so we explicitly allow it.
+               if (! defined $configure_vars{$varname})
+               {
+                   &am_line_error ($varname,
+                                   "invalid variable `$varname'");
+               }
            }
            else
            {
                # Ensure all extended prefixes are actually used.
-               $valid{$1} = 1;
+               $valid{"$base$dist$X"} = 1;
            }
        }
     }
@@ -6549,42 +7160,25 @@ sub am_primary_prefixes
 # Usage is: am_install_var (OPTION..., file, HOW, where...)
 sub am_install_var
 {
-    local (@args) = @_;
-
-    local ($do_clean) = 0;
-    local ($do_require) = 1;
-
-    local ($ltxform);
-    if (defined $configure_vars{'LIBTOOL'})
-    {
-       # Transform '@LIBTOOL ...@' to '$(LIBTOOL) ...'
-       $ltxform = 's/address@hidden(address@hidden)\@/\$(LIBTOOL) $1/;';
-    }
-    else
-    {
-       # Delete '@LIBTOOL ...@'
-       $ltxform = 's/address@hidden(address@hidden)\@//;';
-    }
-
-    local ($cygxform);
-    if (! $seen_exeext)
-    {
-       $cygxform = 's/address@hidden@//g;';
-    }
-    else
-    {
-       $cygxform = 's/address@hidden@/\$(EXEEXT)/g;';
-    }
+    my (@args) = @_;
 
+    my $do_require = 1;
+    my $can_dist = 0;
+    my $default_dist = 0;
     while (@args)
     {
-       if ($args[0] eq '-clean')
+       if ($args[0] eq '-noextra')
        {
-           $do_clean = 1;
+           $do_require = 0;
        }
-       elsif ($args[0] eq '-noextra')
+       elsif ($args[0] eq '-candist')
        {
-           $do_require = 0;
+           $can_dist = 1;
+       }
+       elsif ($args[0] eq '-defaultdist')
+       {
+           $default_dist = 1;
+           $can_dist = 1;
        }
        elsif ($args[0] !~ /^-/)
        {
@@ -6592,17 +7186,17 @@ sub am_install_var
        }
        shift (@args);
     }
-    local ($file, $primary, @prefixes) = @args;
 
-    local (@used) = ();
-    local (@result) = ();
+    my ($file, $primary, @prefixes) = @args;
 
     # Now that configure substitutions are allowed in where_HOW
     # variables, it is an error to actually define the primary.  We
     # allow `JAVA', as it is customarily used to mean the Java
-    # interpreter.  This is but one of several Java hacks.
-    &am_line_error ($primary, "\`$primary' is an anachronism")
-       if &variable_defined ($primary) && $primary ne 'JAVA';
+    # interpreter.  This is but one of several Java hacks.  Similarly,
+    # `PYTHON' is customarily used to mean the Python interpreter.
+    &am_line_error ($primary, "`$primary' is an anachronism")
+       if &variable_defined ($primary)
+           && ($primary ne 'JAVA' && $primary ne 'PYTHON');
 
 
     # Look for misspellings.  It is an error to have a variable ending
@@ -6611,186 +7205,161 @@ sub am_install_var
     # variable of the same name (with "dir" appended) exists.  For
     # instance, if the variable "zardir" is defined, then
     # "zar_PROGRAMS" becomes valid.  This is to provide a little extra
-    # flexibility in those cases which need it.  Perhaps it should be
-    # disallowed in the Gnits case?  The problem is, sometimes it is
-    # useful to put things in a subdir of eg pkgdatadir, perhaps even
-    # for Gnitsoids.
-    local (%valid) = &am_primary_prefixes ($primary, @prefixes);
+    # flexibility in those cases which need it.
+    my %valid = &am_primary_prefixes ($primary, $can_dist, @prefixes);
 
     # If a primary includes a configure substitution, then the EXTRA_
     # form is required.  Otherwise we can't properly do our job.
-    local ($require_extra);
-    local ($warned_about_extra) = 0;
+    my $require_extra;
+    my $warned_about_extra = 0;
+
+    my @used = ();
+    my @result = ();
+
+    # True if the iteration is the first one.  Used for instance to
+    # output parts of the associated file only once.
+    my $first = 1;
+    foreach my $X (sort keys %valid)
+    {
+       my $one_name = $X . '_' . $primary;
+       next
+         unless (&variable_defined ($one_name));
+
+       my $strip_subdir = 1;
+       # If subdir prefix should be preserved, do so.
+       if ($X =~ /^nobase_/)
+         {
+           $strip_subdir = 0;
+           $X =~ s/^nobase_//;
+         }
+
+       my $nodir_name = $X;
+       # If files should be distributed, do so.
+       my $dist_p = 0;
+       if ($can_dist)
+         {
+           $dist_p = (($default_dist && $one_name !~ /^nodist_/)
+                      || (! $default_dist && $one_name =~ /^dist_/));
+           $nodir_name =~ s/^(dist|nodist)_//;
+         }
+
+       # Append actual contents of where_PRIMARY variable to
+       # result.
+       foreach my $rcurs (&variable_value_as_list ($one_name, 'all'))
+         {
+           # Skip configure substitutions.  Possibly bogus.
+           if ($rcurs =~ /address@hidden@$/)
+             {
+               if ($X eq 'EXTRA')
+                 {
+                   if (! $warned_about_extra)
+                     {
+                       $warned_about_extra = 1;
+                       &am_line_error ($one_name,
+                                       "`$one_name' contains configure 
substitution, but shouldn't");
+                     }
+                 }
+               # Check here to make sure variables defined in
+               # configure.ac do not imply that EXTRA_PRIMARY
+               # must be defined.
+               elsif (! defined $configure_vars{$one_name})
+                 {
+                   $require_extra = $one_name
+                     if $do_require;
+                 }
 
-    local ($clean_file) = $file . '-clean';
-    local ($one_name);
-    local ($X);
-    foreach $X (sort keys %valid)
-    {
-       $one_name = $X . '_' . $primary;
-       if (&variable_defined ($one_name))
+               next;
+             }
+
+           push (@result, $rcurs);
+         }
+
+       # A blatant hack: we rewrite each _PROGRAMS primary to include
+       # EXEEXT.
+       if ($primary eq 'PROGRAMS')
        {
-           # Append actual contents of where_PRIMARY variable to
-           # result.
-           local ($rcurs);
-           foreach $rcurs (&variable_value_as_list ($one_name, 'all'))
+           my @conds = &variable_conditions ($one_name);
+
+           my @condvals;
+           foreach my $cond (@conds)
            {
-               # Skip configure substitutions.  Possibly bogus.
-               if ($rcurs =~ /address@hidden@$/)
+               my @one_binlist = ();
+               my @condval = &variable_value_as_list ($one_name,
+                                                      $cond);
+               foreach my $rcurs (@condval)
                {
-                   if ($X eq 'EXTRA')
+                   # Skip autoconf substs.  Also skip if the user
+                   # already applied $(EXEEXT).
+                   if ($rcurs =~ /address@hidden@$/ || $rcurs =~ 
/\$\(EXEEXT\)$/)
                    {
-                       if (! $warned_about_extra)
-                       {
-                           $warned_about_extra = 1;
-                           {
-                               &am_line_error ($one_name,
-                                               "\`$one_name' contains 
configure substitution, but shouldn't");
-                           }
-                       }
+                       push (@one_binlist, $rcurs);
                    }
-                   # Check here to make sure variables defined in
-                   # configure.in do not imply that EXTRA_PRIMARY
-                   # must be defined.
-                   elsif (! defined $configure_vars{$one_name})
+                   else
                    {
-                       $require_extra = $one_name
-                           if $do_require;
+                       push (@one_binlist, $rcurs . '$(EXEEXT)');
                    }
-
-                   next;
                }
 
-               push (@result, $rcurs);
+               push (@condvals, $cond);
+               push (@condvals, join (' ', @one_binlist));
            }
 
-           # "EXTRA" shouldn't be used when generating clean targets,
-           # all, or install targets.
-           if ($X eq 'EXTRA')
+           variable_delete ($one_name);
+           while (@condvals)
            {
-               if (! $warned_about_extra && ! $do_require)
-               {
-                   $warned_about_extra = 1;
-                   &am_line_error ($one_name,
-                                   "\`$one_name' should not be defined");
-               }
-               next;
+               my $cond = shift (@condvals);
+               my @val = split (' ', shift (@condvals));
+               &define_pretty_variable ($one_name, $cond, @val);
            }
+       }
 
-           # A blatant hack: we rewrite each _PROGRAMS primary to
-           # include EXEEXT when in Cygwin32 mode.
-           if ($seen_exeext && $primary eq 'PROGRAMS')
-           {
-               local (@conds) = &variable_conditions ($one_name);
-               local (@one_binlist);
-
-               # FIXME: this definitely loses aesthetically; it
-               # redefines $ONE_NAME.  Instead we should arrange for
-               # variable definitions to be output later, instead of
-               # at scan time.
-
-               if (! @conds)
-               {
-                   @one_binlist = ();
-                   foreach $rcurs (&variable_value_as_list ($one_name, ''))
-                   {
-                       if ($rcurs =~ /\./ || $rcurs =~ /address@hidden@$/)
-                       {
-                           push (@one_binlist, $rcurs);
-                       }
-                       else
-                       {
-                           push (@one_binlist, $rcurs . '$(EXEEXT)');
-                       }
-                   }
-
-                   delete $contents{$one_name};
-                   &define_pretty_variable ($one_name, '', @one_binlist);
-               }
-               else
-               {
-                   local ($cond);
-                   local ($condvals) = '';
-                   foreach $cond (@conds)
-                   {
-                       @one_binlist = ();
-                       local (@condval) = &variable_value_as_list ($one_name,
-                                                                   $cond);
-                       foreach $rcurs (@condval)
-                       {
-                           if ($rcurs =~ /\./ || $rcurs =~ /address@hidden@$/)
-                           {
-                               push (@one_binlist, $rcurs);
-                           }
-                           else
-                           {
-                               push (@one_binlist, $rcurs . '$(EXEEXT)');
-                           }
-                       }
+       # "EXTRA" shouldn't be used when generating clean targets,
+       # all, or install targets.
+       if ($X eq 'EXTRA')
+         {
+           # We used to warn if EXTRA_FOO was defined uselessly,
+           # but this was annoying.
+           next;
+         }
 
-                       push (@condvals, $cond);
-                       push (@condvals, join (' ', @one_binlist));
-                   }
+       if ($X eq 'check')
+         {
+           push (@check, '$(' . $one_name . ')');
+         }
+       else
+         {
+           push (@used, '$(' . $one_name . ')');
+         }
 
-                   delete $contents{$one_name};
+       # Is this to be installed?
+       my $install_p = $X ne 'noinst' && $X ne 'check';
 
-                   while (@condvals)
-                   {
-                       $cond = shift (@condvals);
-                       local (@val) = split (' ', shift (@condvals));
-                       &define_pretty_variable ($one_name, $cond, @val);
-                   }
-               }
-           }
+       # If so, with install-exec? (or install-data?).
+       my $exec_p = (defined $exec_dir_p {$X}
+                     ? $exec_dir_p {$X}
+                     : ($X =~ /exec/));
 
-           if ($do_clean)
-           {
-               $output_rules .=
-                   &file_contents_with_transform ('s/address@hidden@/' . $X . 
'/go;'
-                                                  . $cygxform,
-                                                  $clean_file);
+       # Singular form of $PRIMARY.
+       (my $one_primary = $primary) =~ s/S$//;
+       $output_rules .= &file_contents ($file,
+                                        ('FIRST' => $first,
 
-               push (@clean, $X . $primary);
-               &push_phony_cleaners ($X . $primary);
-           }
+                                         'PRIMARY'     => $primary,
+                                         'ONE_PRIMARY' => $one_primary,
+                                         'DIR'         => $X,
+                                         'NDIR'        => $nodir_name,
+                                         'BASE'        => $strip_subdir,
 
-           if ($X eq 'check')
-           {
-               push (@check, '$(' . $one_name . ')');
-           }
-           else
-           {
-               push (@used, '$(' . $one_name . ')');
-           }
-           if ($X eq 'noinst' || $X eq 'check')
-           {
-               # Objects which don't get installed by default.
-               next;
-           }
+                                         'EXEC'    => $exec_p,
+                                         'INSTALL' => $install_p,
+                                         'DIST'    => $dist_p));
 
-           $output_rules .=
-               &file_contents_with_transform ('s/address@hidden@/' . $X . '/g;'
-                                              . $ltxform . $cygxform,
-                                              $file);
-
-           push (@uninstall, 'uninstall-' . $X . $primary);
-           push (@phony, 'uninstall-' . $X . $primary);
-           push (@installdirs, '$(DESTDIR)$(' . $X . 'dir)');
-           if (defined $exec_dir_p{$X} ? $exec_dir_p{$X} : ($X =~ /exec/))
-           {
-               push (@install_exec, 'install-' . $X . $primary);
-               push (@phony, 'install-' . $X . $primary);
-           }
-           else
-           {
-               push (@install_data, 'install-' . $X . $primary);
-               push (@phony, 'install-' . $X . $primary);
-           }
-       }
+       $first = 0;
     }
 
     # The JAVA variable is used as the name of the Java interpreter.
-    if (@used && $primary ne 'JAVA')
+    # The PYTHON variable is used as the name of the Python interpreter.
+    if (@used && $primary ne 'JAVA' && $primary ne 'PYTHON')
     {
        # Define it.
        &define_pretty_variable ($primary, '', @used);
@@ -6800,50 +7369,104 @@ sub am_install_var
     if ($require_extra && ! &variable_defined ('EXTRA_' . $primary))
     {
        &am_line_error ($require_extra,
-                       "\`$require_extra' contains configure substitution, but 
\`EXTRA_$primary' not defined");
+                       "`$require_extra' contains configure substitution, but 
`EXTRA_$primary' not defined");
     }
 
     # Push here because PRIMARY might be configure time determined.
     push (@all, '$(' . $primary . ')')
-       if @used && $primary ne 'JAVA';
+       if @used && $primary ne 'JAVA' && $primary ne 'PYTHON';
 
-    return (@result);
+    # Make the result unique.  This lets the user use conditionals in
+    # a natural way, but still lets us program lazily -- we don't have
+    # to worry about handling a particular object more than once.
+    return uniq (sort @result);
 }
 
 
 ################################################################
 
+# Each key in this hash is the name of a directory holding a
+# Makefile.in.  These variables are local to `is_make_dir'.
+my %make_dirs = ();
+my $make_dirs_set = 0;
+
+sub is_make_dir
+{
+    my ($dir) = @_;
+    if (! $make_dirs_set)
+    {
+       foreach my $iter (@configure_input_files)
+       {
+           $make_dirs{dirname ($iter)} = 1;
+       }
+       # We also want to notice Makefile.in's.
+       foreach my $iter (@other_input_files)
+       {
+           if ($iter =~ /Makefile\.in$/)
+           {
+               $make_dirs{dirname ($iter)} = 1;
+           }
+       }
+       $make_dirs_set = 1;
+    }
+    return defined $make_dirs{$dir};
+}
+
+################################################################
+
 # This variable is local to the "require file" set of functions.
address@hidden = ();
+my @require_file_paths = ();
+
+# If a file name appears as a key in this hash, then it has already
+# been checked for.  This variable is local to the "require file"
+# functions.
+%require_file_found = ();
 
-# Verify that the file must exist in the current directory.  Usage:
-# require_file (isconfigure, line_number, strictness, file) strictness
-# is the strictness level at which this file becomes required.  Must
-# set require_file_paths before calling this function.
+# See if we want to push this file onto dist_common.  This function
+# encodes the rules for deciding when to do so.
+sub maybe_push_required_file
+{
+    my ($dir, $file, $fullfile) = @_;
+
+    if ($dir eq $relative_dir)
+    {
+       &push_dist_common ($file);
+    }
+    elsif ($relative_dir eq '.' && ! &is_make_dir ($dir))
+    {
+       # If we are doing the topmost directory, and the file is in a
+       # subdir which does not have a Makefile, then we distribute it
+       # here.
+       &push_dist_common ($fullfile);
+    }
+}
+
+
+# &require_file_internal ($IS_CONFIGURE, $LINE, $MYSTRICT, @FILES)
+# ----------------------------------------------------------------
+# Verify that the file must exist in the current directory.
+# $MYSTRICT is the strictness level at which this file becomes required.
+#
+# Must set require_file_paths before calling this function.
 # require_file_paths is set to hold a single directory (the one in
 # which the first file was found) before return.
 sub require_file_internal
 {
-    local ($is_configure, $line, $mystrict, @files) = @_;
-    local ($file, $fullfile);
-    local ($found_it, $errfile, $errdir);
-    local ($save_dir);
+    my ($is_configure, $line, $mystrict, @files) = @_;
 
-    foreach $file (@files)
+    foreach my $file (@files)
     {
-       $found_it = 0;
-       foreach $dir (@require_file_paths)
+        my $fullfile;
+       my $errdir;
+       my $errfile;
+       my $save_dir;
+
+       my $found_it = 0;
+       my $dangling_sym = 0;
+       foreach my $dir (@require_file_paths)
        {
-           if ($dir eq '.')
-           {
-               $fullfile = $relative_dir . "/" . $file;
-               $errdir = $relative_dir unless $errdir;
-           }
-           else
-           {
-               $fullfile = $dir . "/" . $file;
-               $errdir = $dir unless $errdir;
-           }
+           $fullfile = $dir . "/" . $file;
+           $errdir = $dir unless $errdir;
 
            # Use different name for "error filename".  Otherwise on
            # an error the bad file will be reported as eg
@@ -6851,104 +7474,153 @@ sub require_file_internal
            # config_aux_path.
            $errfile = $errdir . '/' . $file;
 
-           if (-f $fullfile)
+           if (-l $fullfile && ! -f $fullfile)
+           {
+               $dangling_sym = 1;
+               last;
+           }
+           elsif (-f $fullfile)
            {
                $found_it = 1;
-               # FIXME: Once again, special-case `.'.
-               &push_dist_common ($file)
-                   if $dir eq $relative_dir || $dir eq '.';
+               &maybe_push_required_file ($dir, $file, $fullfile);
                $save_dir = $dir;
                last;
            }
        }
 
-       if ($found_it)
+       # `--force-missing' only has an effect if `--add-missing' is
+       # specified.
+       if ($found_it && (! $add_missing || ! $force_missing))
        {
            # Prune the path list.
            @require_file_paths = $save_dir;
        }
        else
        {
+           # If we've already looked for it, we're done.  You might
+           # wonder why we don't do this before searching for the
+           # file.  If we do that, then something like
+           # AC_OUTPUT(subdir/foo foo) will fail to put foo.in into
+           # DIST_COMMON.
+           if (! $found_it)
+           {
+               next if defined $require_file_found{$file};
+               $require_file_found{$file} = 1;
+           }
+
            if ($strictness >= $mystrict)
            {
-               local ($trailer) = '';
-               local ($suppress) = 0;
+               if ($dangling_sym && $add_missing)
+               {
+                   unlink ($fullfile);
+               }
+
+               my $trailer = '';
+               my $suppress = 0;
 
                # Only install missing files according to our desired
                # strictness level.
-               local ($message) = "required file \`$errfile' not found";
+               my $message = "required file `$errfile' not found";
                if ($add_missing)
                {
                    $suppress = 1;
 
                    # Maybe run libtoolize.
+                   my @syslist = ('libtoolize', '--automake');
+                   push @syslist, '--copy'
+                       if $copy_missing;
                    if ($seen_libtool
                        && grep ($_ eq $file, @libtoolize_files)
-                       && system ('libtoolize', '--automake'))
+                       && system (@syslist))
                    {
-                       $message = "installing \`$errfile'";
+                       $message = "installing `$errfile'";
                        $suppress = 0;
-                       $trailer = "; cannot run \`libtoolize': $!";
+                       $trailer = "; cannot run `libtoolize': $!";
                    }
-                   elsif (-f ($am_dir . '/' . $file))
+                   elsif (-f ("$libdir/$file"))
                    {
                        # Install the missing file.  Symlink if we
                        # can, copy if we must.  Note: delete the file
                        # first, in case it is a dangling symlink.
-                       $message = "installing \`$errfile'";
+                       $message = "installing `$errfile'";
                        # Windows Perl will hang if we try to delete a
                        # file that doesn't exist.
                        unlink ($errfile) if -f $errfile;
                        if ($symlink_exists && ! $copy_missing)
                        {
-                           if (! symlink ($am_dir . '/' . $file, $errfile))
+                           if (! symlink ("$libdir/$file", $errfile))
                            {
                                $suppress = 0;
-                               $trailer = "; error while making link: $!\n";
+                               $trailer = "; error while making link: $!";
                            }
                        }
-                       elsif (! system ('cp', $am_dir . '/' . $file, $errfile))
+                       elsif (system ('cp', "$libdir/$file", $errfile))
                        {
                            $suppress = 0;
-                           $trailer = "\n    error while copying\n";
+                           $trailer = "\n    error while copying";
                        }
                    }
+
+                   &maybe_push_required_file (dirname ($errfile),
+                                              $file, $errfile);
+
+                   # Prune the path list.
+                   @require_file_paths = &dirname ($errfile);
                }
 
-               local ($save) = $exit_status;
-               if ($is_configure)
+               # If --force-missing was specified, and we have
+               # actually found the file, then do nothing.
+               next
+                   if $found_it && $force_missing;
+
+               if ($suppress)
                {
-                   # FIXME: allow actual file to be specified.
-                   &am_conf_line_error ('configure.in', $line,
-                                        "$message$trailer");
+                   if ($is_configure)
+                   {
+                       # FIXME: allow actual file to be specified.
+                       &am_conf_line_warning ($configure_ac, $line,
+                                              "$message$trailer");
+                   }
+                   else
+                   {
+                       &am_line_warning ($line, "$message$trailer");
+                   }
                }
                else
                {
-                   &am_line_error ($line, "$message$trailer");
+                   if ($is_configure)
+                   {
+                       # FIXME: allow actual file to be specified.
+                       &am_conf_line_error ($configure_ac, $line,
+                                            "$message$trailer");
+                   }
+                   else
+                   {
+                       &am_line_error ($line, "$message$trailer");
+                   }
                }
-               $exit_status = $save if $suppress;
            }
        }
     }
 }
 
 # Like require_file_with_line, but error messages refer to
-# configure.in, not the current Makefile.am.
+# configure.ac, not the current Makefile.am.
 sub require_file_with_conf_line
 {
-    @require_file_paths = '.';
+    @require_file_paths = $relative_dir;
     &require_file_internal (1, @_);
 }
 
 sub require_file_with_line
 {
-    @require_file_paths = '.';
+    @require_file_paths = $relative_dir;
     &require_file_internal (0, @_);
 }
 
 sub require_file
 {
-    @require_file_paths = '.';
+    @require_file_paths = $relative_dir;
     &require_file_internal (0, '', @_);
 }
 
@@ -6958,16 +7630,10 @@ sub require_config_file
 {
     @require_file_paths = @config_aux_path;
     &require_file_internal (1, '', @_);
-    local ($dir) = $require_file_paths[0];
+    my $dir = $require_file_paths[0];
     @config_aux_path = @require_file_paths;
-    if ($dir eq '.')
-    {
-       $config_aux_dir = '.';
-    }
-    else
-    {
-       $config_aux_dir = '$(top_srcdir)/' . $dir;
-    }
+     # Avoid unsightly '/.'s.
+    $config_aux_dir = '$(top_srcdir)' . ($dir eq '.' ? "" : "/$dir");
 }
 
 # Assumes that the line number is in Makefile.am.
@@ -6975,60 +7641,82 @@ sub require_conf_file_with_line
 {
     @require_file_paths = @config_aux_path;
     &require_file_internal (0, @_);
-    local ($dir) = $require_file_paths[0];
+    my $dir = $require_file_paths[0];
     @config_aux_path = @require_file_paths;
-    if ($dir eq '.')
-    {
-       $config_aux_dir = '.';
-    }
-    else
-    {
-       $config_aux_dir = '$(top_srcdir)/' . $dir;
-    }
+     # Avoid unsightly '/.'s.
+    $config_aux_dir = '$(top_srcdir)' . ($dir eq '.' ? "" : "/$dir");
 }
 
-# Assumes that the line number is in Makefile.am.
+# Assumes that the line number is in configure.ac.
 sub require_conf_file_with_conf_line
 {
     @require_file_paths = @config_aux_path;
     &require_file_internal (1, @_);
-    local ($dir) = $require_file_paths[0];
+    my $dir = $require_file_paths[0];
     @config_aux_path = @require_file_paths;
-    if ($dir eq '.')
-    {
-       $config_aux_dir = '.';
-    }
-    else
-    {
-       $config_aux_dir = '$(top_srcdir)/' . $dir;
-    }
+    # avoid unsightly '/.'s.
+    $config_aux_dir = '$(top_srcdir)' . ($dir eq '.' ? "" : "/$dir");
 }
 
 ################################################################
 
-# Push a list of files onto dist_common.
-sub push_dist_common
+# &require_build_directory ($DIRECTORY)
+# ------------------------------------
+# Emit rules to create $DIRECTORY if needed, and return
+# the file that any target requiring this directory should be made
+# dependent upon.
+sub require_build_directory ($)
 {
-    local (@files) = @_;
-    local ($file);
+    my $directory = shift;
+    my $dirstamp = "$directory/.dirstamp";
 
-    foreach $file (@files)
+    # Don't emit the rule twice.
+    if (! defined $directory_map{$directory})
     {
-       $dist_common{$file} = 1;
+       $directory_map{$directory} = 1;
+
+       # Directory must be removed by `make distclean'.
+       $compile_clean_files{$dirstamp} = $DIST_CLEAN;
+
+       $output_rules .= ("$dirstamp:\n"
+                         . "address@hidden(mkinstalldirs) $directory\n"
+                         . "\t\@: > $dirstamp\n");
     }
+
+    return $dirstamp;
 }
 
-# Push a list of clean targets onto phony.
-sub push_phony_cleaners
+# &require_build_directory_maybe ($FILE)
+# --------------------------------------
+# If $FILE lies in a subdirectory, emit a rule to create this
+# directory and return the file that $FILE should be made
+# dependent upon.  Otherwise, just return the empty string.
+sub require_build_directory_maybe ($)
 {
-    local ($base) = @_;
-    local ($target);
-    foreach $target ('mostly', 'dist', '', 'maintainer-')
+    my $file = shift;
+    my $directory = dirname ($file);
+
+    if ($directory ne '.')
     {
-       push (@phony, $target . 'clean-' . $base);
+       return &require_build_directory ($directory);
+    }
+    else
+    {
+       return '';
     }
 }
 
+################################################################
+
+# Push a list of files onto dist_common.
+sub push_dist_common
+{
+    &prog_error ("push_dist_common run after handle_dist")
+        if $handle_dist_run;
+    macro_define ('DIST_COMMON', 1, '+', '', join (' ', @_), '');
+}
+
+
 # Set strictness.
 sub set_strictness
 {
@@ -7047,82 +7735,115 @@ sub set_strictness
     }
     else
     {
-       die "automake: level \`$strictness_name' not recognized\n";
+       die "$me: level `$strictness_name' not recognized\n";
     }
 }
 
 
 ################################################################
 
-# Return directory name of file.
-sub dirname
-{
-    local ($file) = @_;
-    local ($sub);
-
-    ($sub = $file) =~ s,/+[^/]+$,,g;
-    $sub = '.' if $sub eq $file;
-    return $sub;
-}
-
-# Return file name of a file.
-sub basename
-{
-    local ($file) = @_;
-    local ($sub);
-
-    ($sub = $file) =~s,^.*/+,,g;
-    return $sub;
-}
-
 # Ensure a file exists.
 sub create
 {
-    local ($file) = @_;
+    my ($file) = @_;
 
-    open (TOUCH, ">> $file");
-    close (TOUCH);
+    my $touch = new IO::File (">> $file");
+    $touch->close;
 }
 
 # Glob something.  Do this to avoid indentation screwups everywhere we
 # want to glob.  Gross!
 sub my_glob
 {
-    local ($pat) = @_;
+    my ($pat) = @_;
     return <${pat}>;
 }
 
+# Remove one level of brackets and strip leading spaces,
+# as does m4 to function arguments.
+sub unquote_m4_arg
+{
+    $_ = shift;
+    s/^\s*//;
+
+    my @letters = split //;
+    my @result = ();
+    my $depth = 0;
+
+    foreach (@letters)
+    {
+       if ($_ eq '[')
+       {
+           ++$depth;
+           next if $depth == 1;
+       }
+       elsif ($_ eq ']')
+       {
+           --$depth;
+           next if $depth == 0;
+           # don't count orphan right brackets
+           $depth = 0 if $depth < 0;
+       }
+       push @result, $_;
+    }
+    return join '', @result;
+}
+
 ################################################################
 
+# am_print_error ($LEADER, @ARGS)
+# -------------------------------
+# Do the work of printing the error message.  Join @ARGS with spaces,
+# then split at newlines and add $LEADER to each line.  Uses `warn' to
+# print message.
+sub am_print_error
+{
+    my ($leader, @args) = @_;
+    my $text = join (' ', @args);
+    @args = split ("\n", $text);
+    $text = $leader . join ("\n" . $leader, @args) . "\n";
+    warn $text;
+}
+
 # Print an error message and set exit status.
 sub am_error
 {
-    warn "automake: ${am_file}.am: ", join (' ', @_), "\n";
+    am_print_error ("$me: ${am_file}.am: ", @_);
+    $exit_status = 1;
+}
+
+# am_file_error ($FILE, @ARGS)
+# ----------------------------
+sub am_file_error
+{
+    my ($file, @args) = @_;
+
+    am_print_error ("$file: ", @args);
     $exit_status = 1;
 }
 
 sub am_line_error
 {
-    local ($symbol, @args) = @_;
+    my ($symbol, @args) = @_;
 
     if ($symbol && "$symbol" ne '-1')
     {
-       local ($file) = "${am_file}.am";
+       my $file = "${am_file}.am";
 
        if ($symbol =~ /^\d+$/)
        {
            # SYMBOL is a line number, so just add the colon.
            $file .= ':' . $symbol;
        }
-       elsif (defined $content_lines{$symbol})
+       elsif (defined $var_line{$symbol})
        {
            # SYMBOL is a variable defined in Makefile.am, so add the
            # line number we saved from there.
-           $file .= ':' . $content_lines{$symbol};
+           $file .= ':' . $var_line{$symbol};
        }
        elsif (defined $configure_vars{$symbol})
        {
-           # SYMBOL is a variable defined in configure.in, so add the
+           # SYMBOL is a variable defined in configure.ac, so add the
            # appropriate line number.
            $file = $configure_vars{$symbol};
        }
@@ -7130,7 +7851,8 @@ sub am_line_error
        {
            # Couldn't find the line number.
        }
-       warn $file, ": ", join (' ', @args), "\n";
+
+       am_print_error ("$file: ", @args);
        $exit_status = 1;
     }
     else
@@ -7139,22 +7861,22 @@ sub am_line_error
     }
 }
 
-# Like am_error, but while scanning configure.in.
+# Like am_error, but while scanning configure.ac.
 sub am_conf_error
 {
     # FIXME: can run in subdirs.
-    warn "automake: configure.in: ", join (' ', @_), "\n";
+    am_print_error ("$me: $configure_ac: ", @_);
     $exit_status = 1;
 }
 
-# Error message with line number referring to configure.in.
+# Error message with line number referring to configure.ac.
 sub am_conf_line_error
 {
-    local ($file, $line, @args) = @_;
+    my ($file, $line, @args) = @_;
 
     if ($line)
     {
-       warn "$file: $line: ", join (' ', @args), "\n";
+       am_print_error ("$file: $line: ", @args);
        $exit_status = 1;
     }
     else
@@ -7163,57 +7885,111 @@ sub am_conf_line_error
     }
 }
 
-# Warning message with line number referring to configure.in.
+# Warning message with line number referring to configure.ac.
 # Does not affect exit_status
 sub am_conf_line_warning
 {
-    local ($saved_exit_status) = $exit_status;
-    &am_conf_line_error (@_);
+    my $saved_exit_status = $exit_status;
+    my $sig = $SIG{'__WARN__'};
+    $SIG{'__WARN__'} = 'DEFAULT';
+    am_conf_line_error (@_);
     $exit_status = $saved_exit_status;
+    $SIG{'__WARN__'} = $sig;
+}
+
+# Like am_line_error, but doesn't affect exit status.
+sub am_line_warning
+{
+    my $saved_exit_status = $exit_status;
+    my $sig = $SIG{'__WARN__'};
+    $SIG{'__WARN__'} = 'DEFAULT';
+    am_line_error (@_);
+    $exit_status = $saved_exit_status;
+    $SIG{'__WARN__'} = $sig;
 }
 
 # Tell user where our aclocal.m4 is, but only once.
 sub keyed_aclocal_warning
 {
-    local ($key) = @_;
-    warn "automake: macro \`$key' can be generated by \`aclocal'\n";
+    my ($key) = @_;
+    warn "$me: macro `$key' can be generated by `aclocal'\n";
 }
 
 # Print usage information.
 sub usage
 {
-    print "Usage: automake [OPTION] ... [Makefile]...\n\n";
-    print "Generate Makefile.in for autoconf from Makefile.am\n";
-    print $USAGE;
-    print "\nFiles which are automatically distributed, if found:\n";
-    $~ = "USAGE_FORMAT";
-    local ($last, $iter, @lcomm);
+    print <<EOF;
+Usage: $0 [OPTION] ... [Makefile]...
+
+Generate Makefile.in for configure from Makefile.am.
+
+Operation modes:
+      --help             print this help, then exit
+      --version          print version number, then exit
+  -v, --verbose          verbosely list files processed
+  -o, --output-dir=DIR   put generated Makefile.in's into DIR
+      --no-force         only update Makefile.in's that are out of date
+
+Dependency tracking:
+  -i, --ignore-deps      disable dependency tracking code
+      --include-deps     enable dependency tracking code
+
+Flavors:
+      --cygnus           assume program is part of Cygnus-style tree
+      --foreign          set strictness to foreign
+      --gnits            set strictness to gnits
+      --gnu              set strictness to gnu
+
+Library files:
+  -a, --add-missing      add missing standard files to package
+      --libdir=DIR       directory storing library files
+  -c, --copy             with -a, copy missing files (default is symlink)
+  -f, --force-missing    force update of standard files
+EOF
+
+    my ($last, @lcomm);
     $last = '';
-    foreach $iter (sort ((@common_files, @common_sometimes)))
+    foreach my $iter (sort ((@common_files, @common_sometimes)))
     {
        push (@lcomm, $iter) unless $iter eq $last;
        $last = $iter;
     }
 
-    local ($one, $two, $three, $four, $i, $max);
-    $max = int (($#lcomm + 1) / 4);
+    my @four;
+    print "\nFiles which are automatically distributed, if found:\n";
+    format USAGE_FORMAT =
+  @<<<<<<<<<<<<<<<<   @<<<<<<<<<<<<<<<<   @<<<<<<<<<<<<<<<<   @<<<<<<<<<<<<<<<<
+  $four[0],           $four[1],           $four[2],           $four[3]
+.
+    $~ = "USAGE_FORMAT";
 
-    for ($i = 0; $i < $max; ++$i)
+    my $cols = 4;
+    my $rows = int(@lcomm / $cols);
+    my $rest = @lcomm % $cols;
+
+    if ($rest)
     {
-       $one = $lcomm[$i];
-       $two = $lcomm[$max + $i];
-       $three = $lcomm[2 * $max + $i];
-       $four = $lcomm[3 * $max + $i];
-       write;
+       $rows++;
+    }
+    else
+    {
+       $rest = $cols;
     }
 
-    local ($mod) = ($#lcomm + 1) % 4;
-    if ($mod != 0)
+    for (my $y = 0; $y < $rows; $y++)
     {
-       $one = $lcomm[$max];
-       $two = ($mod > 1) ? $lcomm[2 * $max] : '';
-       $three = ($mod > 2) ? $lcomm[3 * $max] : '';
-       $four = ($mod > 3) ? $lcomm[4 * $max] : '';
+       @four = ("", "", "", "");
+       for (my $x = 0; $x < $cols; $x++)
+       {
+           last if $y + 1 == $rows && $x == $rest;
+
+           my $idx = (($x > $rest)
+                      ?  ($rows * $rest + ($rows - 1) * ($x - $rest))
+                      : ($rows * $x));
+
+           $idx += $y;
+           $four[$x] = $lcomm[$idx];
+       }
        write;
     }
 
@@ -7222,7 +7998,19 @@ sub usage
     exit 0;
 }
 
-format USAGE_FORMAT =
-  @<<<<<<<<<<<<<<<<   @<<<<<<<<<<<<<<<<   @<<<<<<<<<<<<<<<<   @<<<<<<<<<<<<<<<<
-  $one,               $two,               $three,             $four
-.
+# &version ()
+# -----------
+# Print version information
+sub version ()
+{
+  print <<EOF;
+automake (GNU $PACKAGE) $VERSION
+Written by Tom Tromey <address@hidden>.
+
+Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+Free Software Foundation, Inc.
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+EOF
+  exit 0;
+}
diff --git a/automake.texi b/automake.texi
index 80008ce..0efb4fd 100644
--- a/automake.texi
+++ b/automake.texi
@@ -7,7 +7,7 @@
 
 @include version.texi
 
address@hidden GNU admin
address@hidden GNU programming tools
 @direntry
 * automake: (automake).                Making Makefile.in's
 @end direntry
@@ -20,7 +20,7 @@
 @ifinfo
 This file documents GNU automake @value{VERSION}
 
-Copyright (C) 1995, 96, 97, 98 Free Software Foundation, Inc.
+Copyright 1995, 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
 
 Permission is granted to make and distribute verbatim copies of
 this manual provided the copyright notice and this permission notice
@@ -52,7 +52,7 @@ by the Foundation.
 
 @page
 @vskip 0pt plus 1filll
-Copyright @copyright{} 1995, 96 Free Software Foundation, Inc.
+Copyright @copyright{} 1995, 1996, 2000, 2001 Free Software Foundation, Inc.
 @sp 2
 This is the first edition of the GNU Automake documentation,@*
 and is consistent with GNU Automake @address@hidden
@@ -98,22 +98,24 @@ approved by the Free Software Foundation.
 @syncodeindex tr cp
 @syncodeindex cm cp
 
address@hidden
address@hidden
 @node Top, Introduction, (dir), (dir)
 @comment  node-name,  next,  previous,  up
 @top GNU Automake
 
-This file documents the GNU Automake package for creating GNU
-Standards-compliant Makefiles from template files.  This edition
-documents version @value{VERSION}.
+This file documents the GNU Automake package.  Automake is a program
+which creates GNU standards-compliant Makefiles from template files.
+This edition documents version @value{VERSION}.
 
 @menu
 * Introduction::                Automake's purpose
 * Generalities::                General ideas
 * Examples::                    Some example packages
 * Invoking Automake::           Creating a Makefile.in
-* configure::                   Scanning configure.in
+* configure::                   Scanning configure.ac or configure.in
 * Top level::                   The top-level Makefile.am
+* Alternative::                 An alternative approach to subdirectories
+* Rebuilding::                  Automatic rebuilding of Makefile
 * Programs::                    Building programs and libraries
 * Other objects::               Other derived objects
 * Other GNU Tools::             Other GNU Tools
@@ -130,12 +132,11 @@ documents version @value{VERSION}.
 * Cygnus::                      The effect of @code{--cygnus}
 * Extending::                   Extending Automake
 * Distributing::                Distributing the Makefile.in
-* Future::                      Some ideas for the future
-* Macro and Variable Index::    
-* General Index::               
+* Macro and Variable Index::
+* General Index::
 @end menu
 
address@hidden ifinfo
address@hidden ifnottex
 
 
 @node Introduction, Generalities, Top, Top
@@ -166,7 +167,10 @@ should generally be one @file{Makefile.am} per directory 
of a project.
 Automake does constrain a project in certain ways; for instance it
 assumes that the project uses Autoconf (@pxref{Top, , Introduction,
 autoconf, The Autoconf Manual}), and enforces certain restrictions on
-the @file{configure.in} contents.
+the @file{configure.in} address@hidden 2.50 promotes
address@hidden over @file{configure.in}.  The rest of this
+documentation will refer to @file{configure.in} as this use is not yet
+spread, but Automake supports @file{configure.ac} too.}.
 
 @cindex Automake requirements
 @cindex Requirements, Automake
@@ -192,14 +196,15 @@ understand how Automake works.
 
 @menu
 * General Operation::           General operation of Automake
-* Depth::                       The kinds of packages
 * Strictness::                  Standards conformance checking
 * Uniform::                     The Uniform Naming Scheme
 * Canonicalization::            How derived variables are named
+* User Variables::             Variables reserved for the user
+* Auxiliary Programs::          Programs automake might require
 @end menu
 
 
address@hidden General Operation, Depth, Generalities, Generalities
address@hidden General Operation, Strictness, Generalities, Generalities
 @section General Operation
 
 Automake works by reading a @file{Makefile.am} and generating a
@@ -268,8 +273,8 @@ contents of @code{foo_SOURCES}.
 @cindex Comment, special to Automake
 
 Automake also allows a form of comment which is @emph{not} copied into
-the output; all lines beginning with @samp{##} are completely ignored by
-Automake.
+the output; all lines beginning with @samp{##} (leading spaces allowed)
+are completely ignored by Automake.
 
 It is customary to make the first line of @file{Makefile.am} read:
 
@@ -286,41 +291,7 @@ It is customary to make the first line of 
@file{Makefile.am} read:
 @c FIXME document customary ordering of Makefile.am here!
 
 
address@hidden Depth, Strictness, General Operation, Generalities
address@hidden Depth
-
address@hidden Flat package
address@hidden Package, Flat
address@hidden Shallow package
address@hidden Package, shallow
address@hidden Deep package
address@hidden Package, deep
-
address@hidden supports three kinds of directory hierarchy:
address@hidden, @samp{shallow}, and @samp{deep}.
-
-A @dfn{flat} package is one in which all the files are in a single
-directory.  The @file{Makefile.am} for such a package by definition
-lacks a @code{SUBDIRS} macro.  An example of such a package is
address@hidden
address@hidden SUBDIRS
-
address@hidden SUBDIRS, deep package
-
-A @dfn{deep} package is one in which all the source lies in
-subdirectories; the top level directory contains mainly configuration
-information.  GNU @code{cpio} is a good example of such a package, as is
-GNU @code{tar}.  The top level @file{Makefile.am} for a deep package
-will contain a @code{SUBDIRS} macro, but no other macros to define
-objects which are built.
-
-A @dfn{shallow} package is one in which the primary source resides in
-the top-level directory, while various parts (typically libraries)
-reside in subdirectories.  Automake is one such package (as is GNU
address@hidden, which does not currently use @code{automake}).
-
-
address@hidden Strictness, Uniform, Depth, Generalities
address@hidden Strictness, Uniform, General Operation, Generalities
 @section Strictness
 
 @cindex Non-GNU packages
@@ -361,12 +332,17 @@ Automake will check for compliance to the 
as-yet-unwritten @dfn{Gnits
 standards}.  These are based on the GNU standards, but are even more
 detailed.  Unless you are a Gnits standards contributor, it is
 recommended that you avoid this option until such time as the Gnits
-standard is actually published.
+standard is actually published (which may never happen).
 @end table
 
 For more information on the precise implications of the strictness
 level, see @ref{Gnits}.
 
+Automake also has a special ``cygnus'' mode which is similar to
+strictness but handled differently.  This mode is useful for packages
+which are put into a ``Cygnus'' style tree (e.g., the GCC tree).  For
+more information on this mode, see @ref{Cygnus}.
+
 
 @node Uniform, Canonicalization, Strictness, Generalities
 @section The Uniform Naming Scheme
@@ -386,8 +362,11 @@ determination of what should be built.
 @cindex Primary variable, defined
 
 At @code{make} time, certain variables are used to determine which
-objects are to be built.  These variables are called @dfn{primary
-variables}.  For instance, the primary variable @code{PROGRAMS} holds a
+objects are to be built.  The variable names are made of several pieces
+which are concatenated together.
+
+The piece which tells automake what is being built is commonly called
+the @dfn{primary}.  For instance, the primary @code{PROGRAMS} holds a
 list of programs which are to be compiled and linked.
 @vindex PROGRAMS
 
@@ -399,16 +378,15 @@ list of programs which are to be compiled and linked.
 @vindex pkgincludedir
 @vindex pkgdatadir
 
-A different set of variables is used to decide where the built objects
-should be installed.  These variables are named after the primary
-variables, but have a prefix indicating which standard directory should
-be used as the installation directory.  The standard directory names are
-given in the GNU standards (@pxref{Directory Variables, , , standards,
-The GNU Coding Standards}).  Automake extends this list with
address@hidden, @code{pkgincludedir}, and @code{pkgdatadir}; these are
-the same as the address@hidden versions, but with @samp{@@PACKAGE@@}
-appended.  For instance, @code{pkglibdir} is defined as
address@hidden(datadir)/@@PACKAGE@@}.
+A different set of names is used to decide where the built objects
+should be installed.  These names are prefixes to the primary which
+indicate which standard directory should be used as the installation
+directory.  The standard directory names are given in the GNU standards
+(@pxref{Directory Variables, , , standards, The GNU Coding Standards}).
+Automake extends this list with @code{pkglibdir}, @code{pkgincludedir},
+and @code{pkgdatadir}; these are the same as the address@hidden
+versions, but with @samp{@@PACKAGE@@} appended.  For instance,
address@hidden is defined as @code{$(libdir)/@@PACKAGE@@}.
 @cvindex PACKAGE
 
 @cindex EXTRA_, prepending
@@ -431,11 +409,11 @@ are installed in @code{sbindir}:
 @example
 EXTRA_PROGRAMS = mt rmt
 bin_PROGRAMS = cpio pax
-sbin_PROGRAMS = @@PROGRAMS@@
+sbin_PROGRAMS = @@MORE_PROGRAMS@@
 @end example
 
-Defining a primary variable without a prefix (e.g. @code{PROGRAMS}) is
-an error.
+Defining a primary without a prefix as a variable, e.g.,
address@hidden, is an error.
 
 Note that the common @samp{dir} suffix is left off when constructing the
 variable names; thus one writes @samp{bin_PROGRAMS} and not
@@ -475,32 +453,140 @@ should not be installed at all.
 The special prefix @samp{check} indicates that the objects in question
 should not be built until the @code{make check} command is run.
 
-Possible primary names are @samp{PROGRAMS}, @samp{LIBRARIES},
address@hidden, @samp{SCRIPTS}, @samp{DATA}, @samp{HEADERS}, @samp{MANS},
-and @samp{TEXINFOS}.
+The current primary names are @samp{PROGRAMS}, @samp{LIBRARIES},
address@hidden, @samp{PYTHON}, @samp{JAVA}, @samp{SCRIPTS}, @samp{DATA},
address@hidden, @samp{MANS}, and @samp{TEXINFOS}.
 @vindex PROGRAMS
 @vindex LIBRARIES
 @vindex LISP
address@hidden PYTHON
address@hidden JAVA
 @vindex SCRIPTS
 @vindex DATA
 @vindex HEADERS
 @vindex MANS
 @vindex TEXINFOS
 
+Some primaries also allow additional prefixes which control other
+aspects of @code{automake}'s behavior.  The currently defined prefixes
+are @samp{dist_}, @samp{nodist_}, and @samp{nobase_}.  These prefixes
+are explained later.
 
address@hidden Canonicalization,  , Uniform, Generalities
+
address@hidden Canonicalization, User Variables, Uniform, Generalities
 @section How derived variables are named
 
 @cindex canonicalizing Automake macros
 
-Sometimes a Makefile variable name is derived from some text the user
-supplies.  For instance, program names are rewritten into Makefile macro
-names.  Automake canonicalizes this text, so that it does not have to
-follow Makefile macro naming rules.  All characters in the name except
-for letters, numbers, and the underscore are turned into underscores
-when making macro references.  For example, if your program is named
address@hidden, the derived variable name would be
address@hidden, not @code{sniff-glue_SOURCES}.
+Sometimes a Makefile variable name is derived from some text the
+maintainer supplies.  For instance, a program name listed in
address@hidden is rewritten into the name of a @samp{_SOURCES}
+variable.  In cases like this, Automake canonicalizes the text, so that
+program names and the like do not have to follow Makefile macro naming
+rules.  All characters in the name except for letters, numbers, the
+strudel (@@), and the underscore are turned into underscores when making
+macro references.
+
+For example, if your program is named @code{sniff-glue}, the derived
+variable name would be @code{sniff_glue_SOURCES}, not
address@hidden
+
+The strudel is an addition, to make the use of Autoconf substitutions in
+macro names less obfuscating.
+
+
address@hidden User Variables, Auxiliary Programs, Canonicalization, 
Generalities
address@hidden Variables reserved for the user
+
address@hidden variables, reserved for the user
address@hidden user variables
+
+Some @code{Makefile} variables are reserved by the GNU Coding Standards
+for the use of the ``user'' -- the person building the package.  For
+instance, @code{CFLAGS} is one such variable.
+
+Sometimes package developers are tempted to set user variables such as
address@hidden because it appears to make their job easier -- they don't
+have to introduce a second variable into every target.
+
+However, the package itself should never set a user variable,
+particularly not to include switches which are required for proper
+compilation of the package.  Since these variables are documented as
+being for the package builder, that person rightfully expects to be able
+to override any of these variables at build time.
+
+To get around this problem, automake introduces an automake-specific
+shadow variable for each user flag variable.  (Shadow variables are not
+introduced for variables like @code{CC}, where they would make no
+sense.)  The shadow variable is named by prepending @samp{AM_} to the
+user variable's name.  For instance, the shadow variable for
address@hidden is @code{AM_YFLAGS}.
+
+
address@hidden Auxiliary Programs, , User Variables, Generalities
address@hidden Programs automake might require
+
address@hidden Programs, auxiliary
address@hidden Auxiliary programs
+
+Automake sometimes requires helper programs so that the generated
address@hidden can do its work properly.  There are a fairly large
+number of them, and we list them here.
+
address@hidden @code
address@hidden ansi2knr.c
address@hidden ansi2knr.1
+These two files are used by the automatic de-ANSI-fication support
+(@pxref{ANSI}).
+
address@hidden compile
+This is a wrapper for compilers which don't accept both @samp{-c} and
address@hidden at the same time.  It is only used when absolutely required.
+Such compilers are rare.
+
address@hidden config.guess
address@hidden config.sub
+These programs compute the canonical triplets for the given build, host,
+or target architecture.
+
address@hidden depcomp
+This program understands how to run a compiler so that it will generate
+not only the desired output but also dependency information which is
+then used by the automatic dependency tracking feature.
+
address@hidden elisp-comp
+This program is used to byte-compile Emacs Lisp code.
+
address@hidden install-sh
+This is a replacement for the @code{install} program which works on
+platforms where @code{install} is unavailable or unusable.
+
address@hidden mdate-sh
+This script is used to generate a @file{version.texi} file.  It examines
+a file and prints some date information about it.
+
address@hidden missing
+This wraps a number of programs which are typically only required by
+maintainers.  If the program in question doesn't exist, @code{missing}
+prints an informative warning and attempts to fix things so that the
+build can continue.
+
address@hidden mkinstalldirs
+This works around the fact that @code{mkdir -p} is not portable.
+
address@hidden py-compile
+This is used to byte-compile Python scripts.
+
address@hidden texinfo.tex
+Not a program, this file is required for @code{make dvi} to work when
+Texinfo sources are in the package.
+
address@hidden ylwrap
+This program wraps @code{lex} and @code{yacc} and ensures that, for
+instance, multiple @code{yacc} instances can be invoked in a single
+directory in parallel.
+
address@hidden table
 
 
 @node Examples, Invoking Automake, Generalities, Top
@@ -526,8 +612,8 @@ ad-hoc.  You want to make them bulletproof, so you turn to 
Automake.
 @cindex AM_INIT_AUTOMAKE, example use
 
 The first step is to update your @file{configure.in} to include the
-commands that @code{automake} needs.  The simplest way to do this is to
-add an @code{AM_INIT_AUTOMAKE} call just after @code{AC_INIT}:
+commands that @code{automake} needs.  The way to do this is to add an
address@hidden call just after @code{AC_INIT}:
 
 @example
 AM_INIT_AUTOMAKE(zardoz, 1.0)
@@ -592,7 +678,7 @@ maintainer-only code stripped out, as well as all copyright 
comments.
 
 Of course, GNU Hello is somewhat more featureful than your traditional
 two-liner.  GNU Hello is internationalized, does option processing, and
-has a manual and a test suite.  GNU Hello is a deep package.
+has a manual and a test suite.
 
 @cindex configure.in, from GNU Hello
 @cindex GNU Hello, configure.in
@@ -680,7 +766,7 @@ Last we have @file{src/Makefile.am}, where all the real 
work is done:
 
 @example
 bin_PROGRAMS = hello
-hello_SOURCES = hello.c version.c getopt.c getopt1.c getopt.h system.h 
+hello_SOURCES = hello.c version.c getopt.c getopt1.c getopt.h system.h
 hello_LDADD = @@INTLLIBS@@ @@ALLOCA@@
 localedir = $(datadir)/locale
 INCLUDES = -I../intl -DLOCALEDIR=\"$(localedir)\"
@@ -742,6 +828,28 @@ ctags._o: etags._c
         $(COMPILE) -DCTAGS -c etags.c && mv etags._o ctags.o
 @end example
 
+As it turns out, there is also a much easier way to do this same task.
+Some of the above techniques are useful enough that we've kept the
+example in the manual.  However if you were to build @code{etags} and
address@hidden in real life, you would probably use per-program
+compilation flags, like so:
+
address@hidden
+bin_PROGRAMS = ctags etags
+
+ctags_SOURCES = etags.c
+ctags_CFLAGS = -DCTAGS
+
+etags_SOURCES = etags.c
+etags_CFLAGS = -DETAGS_REGEXPS
address@hidden example
+
+In this case Automake will cause @file{etags.c} to be compiled twice,
+with different flags.  De-ANSI-fication will work automatically.  In
+this instance, the names of the object files would be chosen by
+automake; they would be @file{ctags-etags.o} and @file{etags-etags.o}.
+(The name of the object files rarely matters.)
+
 
 @node Invoking Automake, configure, Examples, Top
 @chapter Creating a @file{Makefile.in}
@@ -794,19 +902,15 @@ file is missing, try using this option.  By default 
Automake tries to
 make a symbolic link pointing to its own copy of the missing file; this
 can be changed with @code{--copy}.
 
address@hidden address@hidden
address@hidden --amdir
address@hidden address@hidden
address@hidden --libdir
 Look for Automake data files in directory @var{dir} instead of in the
 installation directory.  This is typically used for debugging.
 
address@hidden address@hidden
address@hidden --build-dir
-Tell Automake where the build directory is.  This option is used when
-including dependencies into a @file{Makefile.in} generated by @code{make
-dist}; it should not be used otherwise.
-
 @item -c
address@hidden --copy
address@hidden -c
address@hidden --copy
address@hidden --copy
 When used with @code{--add-missing}, causes installed files to be
 copied.  The default is to make a symbolic link.
 
@@ -815,6 +919,15 @@ copied.  The default is to make a symbolic link.
 Causes the generated @file{Makefile.in}s to follow Cygnus rules, instead
 of GNU or Gnits rules.  For more information, see @ref{Cygnus}.
 
address@hidden -f
address@hidden -f
address@hidden --force-missing
address@hidden --force-missing
+When used with @code{--add-missing}, causes standard files to be rebuilt
+even if they already exist in the source tree.  This involves removing
+the file from the source tree before creating the new symlink (or, with
address@hidden, copying the new file).
+
 @item --foreign
 @opindex --foreign
 Set the global strictness to @samp{foreign}.  For more information, see
@@ -835,24 +948,15 @@ Set the global strictness to @samp{gnu}.  For more 
information, see
 Print a summary of the command line options and exit.
 
 @item -i
address@hidden --include-deps
address@hidden --ignore-deps
 @opindex -i
+This disables the dependency tracking feature; see @ref{Dependencies}.
+
address@hidden --include-deps
 @opindex --include-deps
-Include all automatically generated dependency information
-(@pxref{Dependencies}) in the generated
address@hidden  This is generally done when making a distribution;
-see @ref{Dist}.
-
address@hidden --generate-deps
address@hidden --generate-deps
-Generate a file concatenating all automatically generated dependency
-information (@pxref{Dependencies}) into one file, @file{.dep_segment}.
-This is generally done when making a distribution; see @ref{Dist}.  It
-is useful when maintaining a @file{SMakefile} or makefiles for other
-platforms (@file{Makefile.DOS}, etc.)  It can only be used in
-conjunction with @samp{--include-deps}, @samp{--srcdir-name}, and
address@hidden  Note that if this option is given, no other
-processing is done.
+This enables the dependency tracking feature.  This feature is enabled
+by default.  This option is provided for historical reasons only and
+probably should not be used.
 
 @item --no-force
 @opindex --no-force
@@ -870,13 +974,6 @@ Ordinarily each @file{Makefile.in} is created in the 
directory of the
 corresponding @file{Makefile.am}.  This option is used when making
 distributions.
 
address@hidden address@hidden
address@hidden --srcdir-name
-Tell Automake the name of the source directory associated with the
-current build.  This option is used when including dependencies into a
address@hidden generated by @code{make dist}; it should not be used
-otherwise.
-
 @item -v
 @itemx --verbose
 @opindex -v
@@ -887,6 +984,15 @@ created.
 @item --version
 @opindex --version
 Print the version number of Automake and exit.
+
address@hidden --Werror
address@hidden --Wno-error
address@hidden --Werror
address@hidden --Wno-error
address@hidden will cause all warnings issued by @code{automake} to
+become errors.  Errors affect the exit status of @code{automake}, while
+warnings do not.  @samp{--Wno-error}, the default, causes warnings to be
+treated as warnings only.
 @end table
 
 
@@ -921,62 +1027,11 @@ easier.  These macros can automatically be put into your
 @cindex Automake requirements
 @cindex Requirements of Automake
 
-The simplest way to meet the basic Automake requirements is to use the
-macro @code{AM_INIT_AUTOMAKE} (@pxref{Macros}).  But if you prefer, you
-can do the required steps by hand:
+The one real requirement of Automake is that your @file{configure.in}
+call @code{AM_INIT_AUTOMAKE}.  This macro does several things which are
+required for proper Automake operation.
 @cvindex AM_INIT_AUTOMAKE
 
address@hidden @bullet
address@hidden
-Define the variables @code{PACKAGE} and @code{VERSION} with
address@hidden
address@hidden PACKAGE
address@hidden VERSION
address@hidden should be the name of the package as it appears when
-bundled for distribution.  For instance, Automake defines @code{PACKAGE}
-to be @samp{automake}.  @code{VERSION} should be the version number of
-the release that is being developed.  We recommend that you make
address@hidden the only place in your package where the version
-number is defined; this makes releases simpler.
-
-Automake doesn't do any interpretation of @code{PACKAGE} or
address@hidden, except in @samp{Gnits} mode (@pxref{Gnits}).
-
address@hidden
-Use the macro @code{AC_ARG_PROGRAM} if a program or script is installed.
address@hidden Names, , Transforming Program Names When Installing,
-autoconf, The Autoconf}.
address@hidden AC_ARG_PROGRAM
-
address@hidden
-Use @code{AC_PROG_MAKE_SET} if the package is not flat.  @xref{Output, ,
-Creating Output Files, autoconf, The Autoconf Manual}.
address@hidden AC_PROG_MAKE_SET
-
address@hidden
-Use @code{AM_SANITY_CHECK} to make sure the build environment is sane.
-
address@hidden
-Call @code{AC_PROG_INSTALL}
-(@pxref{Particular Programs, , Particular Program Checks, autoconf, The
-Autoconf Manual}).
address@hidden AC_PROG_INSTALL
-
address@hidden
-Use @code{AM_MISSING_PROG} to see whether the programs @code{aclocal},
address@hidden, @code{automake}, @code{autoheader}, and @code{makeinfo}
-are in the build environment.  Here is how this is done:
address@hidden
-missing_dir=`cd $ac_aux_dir && pwd`
-AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
-AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
-AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
-AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
-AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
address@hidden example
address@hidden itemize
-
-
 Here are the other macros which Automake requires but which are not run
 by @code{AM_INIT_AUTOMAKE}:
 
@@ -994,6 +1049,25 @@ are removed by @code{make clean}.
 @cvindex AC_OUTPUT
 @end table
 
+You may need the following macros in some conditions, even though they
+are not required.
+
address@hidden @code
address@hidden AC_CHECK_TOOL([STRIP],[strip])
address@hidden STRIP, how to setup
address@hidden install-strip and STRIP
address@hidden AC_CHECK_TOOL([STRIP],[strip])
+Installed binaries are usually stripped using @code{strip} when you run
address@hidden install-strip}.  However @code{strip} might not be the
+right tool to use in cross-compilation environments, therefore
+Automake will honor the @code{STRIP} environment variable to overrule
+the program used to perform stripping.  Automake will not set @code{STRIP}
+itself.  If your package is not setup for cross-compilation you do not
+have to care (@code{strip} is ok), otherwise you can set @code{STRIP}
+automatically by calling @code{AC_CHECK_TOOL([STRIP],[strip])} from
+your @file{configure.in}.
address@hidden table
+
 
 @node Optional, Invoking aclocal, Requirements, configure
 @section Other things Automake recognizes
@@ -1059,6 +1133,7 @@ Autoconf Manual}.
 @itemx AC_FUNC_MEMCMP
 @itemx AC_STRUCT_ST_BLOCKS
 @itemx AC_FUNC_FNMATCH
address@hidden AC_FUNC_MKTIME
 @itemx AM_FUNC_STRTOD
 @itemx AC_REPLACE_FUNCS
 @itemx AC_REPLACE_GNU_GETOPT
@@ -1080,6 +1155,7 @@ Functions, , Particular Function Checks, autoconf, The 
Autoconf Manual}.
 @cvindex AC_REPLACE_GNU_GETOPT
 @cvindex AM_FUNC_STRTOD
 @cvindex AM_WITH_REGEX
address@hidden AC_FUNC_MKTIME
 
 @item LIBOBJS
 Automake will detect statements which put @file{.o} files into
@@ -1111,10 +1187,10 @@ languages that include Fortran 77 (@pxref{Mixing 
Fortran 77 With C and
 C++}).  @xref{Macros, , Autoconf macros supplied with Automake}.
 @cvindex AC_F77_LIBRARY_LDFLAGS
 
address@hidden AM_PROG_LIBTOOL
address@hidden AC_PROG_LIBTOOL
 Automake will turn on processing for @code{libtool} (@pxref{Top, ,
 Introduction, libtool, The Libtool Manual}).
address@hidden AM_PROG_LIBTOOL
address@hidden AC_PROG_LIBTOOL
 
 @item AC_PROG_YACC
 If a Yacc source file is seen, then you must either use this macro or
@@ -1136,13 +1212,6 @@ If a Lex source file is seen, then this macro must be 
used.
 Autoconf Manual}.
 @cvindex AC_PROG_LEX
 
address@hidden ALL_LINGUAS
-If Automake sees that this variable is set in @file{configure.in}, it
-will check the @file{po} directory to ensure that all the named
address@hidden files exist, and that all the @samp{.po} files that exist are
-named.
address@hidden ALL_LINGUAS
-
 @item AM_C_PROTOTYPES
 This is required when using automatic de-ANSI-fication; see @ref{ANSI}.
 @cvindex AM_C_PROTOTYPES
@@ -1211,6 +1280,13 @@ The contents of @file{acinclude.m4}, if it exists, are 
also
 automatically included in @file{aclocal.m4}.  This is useful for
 incorporating local macros into @file{configure}.
 
address@hidden tries to be smart about looking for new @code{AC_DEFUN}s
+in the files it scans.  It will warn if it finds duplicates.  It also
+tries to copy the full text of the scanned file into @file{aclocal.m4},
+including both @samp{#} and @samp{dnl} comments.  If you want to make a
+comment which will be completely ignored by @code{aclocal}, use
address@hidden as the comment leader.
+
 @code{aclocal} accepts the following options:
 
 @table @code
@@ -1262,14 +1338,20 @@ header.  If you do use this macro, you must create the 
file
 @cvindex AM_CONFIG_HEADER
 
 @item AM_ENABLE_MULTILIB
-This is used when a ``multilib'' library is being built.  A
address@hidden library is one that is built multiple times, once per
-target flag combination.  This is only useful when the library is
-intended to be cross-compiled.  The first optional argument is the name
-of the @file{Makefile} being generated; it defaults to @samp{Makefile}.
-The second option argument is used to find the top source directory; it
-defaults to the empty string (generally this should not be used unless
-you are familiar with the internals).
+This is used when a ``multilib'' library is being built.  The first
+optional argument is the name of the @file{Makefile} being generated; it
+defaults to @samp{Makefile}.  The second option argument is used to find
+the top source directory; it defaults to the empty string (generally
+this should not be used unless you are familiar with the internals).
address@hidden
+
address@hidden _AM_DEPENDENCIES
address@hidden AM_SET_DEPDIR
address@hidden AM_DEP_TRACK
address@hidden AM_OUTPUT_DEPENDENCY_COMMANDS
+These macros are used to implement automake's automatic dependency
+tracking scheme.  They are called automatically by automake when
+required, and there should be no need to invoke them manually.
 
 @item AM_FUNC_STRTOD
 If the @code{strtod} function is not available, or does not work
@@ -1282,11 +1364,6 @@ If the function @code{error_at_line} is not found, then 
add
 @file{error.o} to @code{LIBOBJS}.
 @cvindex AM_FUNC_ERROR_AT_LINE
 
address@hidden AM_FUNC_MKTIME
-Check for a working @code{mktime} function.  If not found, add
address@hidden to @samp{LIBOBJS}.
address@hidden AM_FUNC_MKTIME
-
 @item AM_FUNC_OBSTACK
 Check for the GNU obstacks code; if not found, add @file{obstack.o} to
 @samp{LIBOBJS}.
@@ -1312,13 +1389,28 @@ two required arguments, the package and the version 
number.  By default
 this macro @code{AC_DEFINE}'s @samp{PACKAGE} and @samp{VERSION}.  This
 can be avoided by passing in a non-empty third argument.
 
address@hidden AM_MAKE_INCLUDE
+This macro is used to discover how the user's @code{make} handles
address@hidden statements.  This macro is automatically invoked when
+needed; there should be no need to invoke it manually.
+
 @item AM_PATH_LISPDIR
 Searches for the program @code{emacs}, and, if found, sets the output
 variable @code{lispdir} to the full path to Emacs' site-lisp directory.
 @cvindex AM_PATH_LISPDIR
 
address@hidden AM_PROG_AS
+Use this macro when you have assembly code in your project.  This will
+choose the assembler for you (by default the C compiler), and will set
address@hidden if required.
+
address@hidden AM_PROG_CC_C_O
+This is like @code{AC_PROG_CC_C_O}, but it generates its results in the
+manner required by automake.  You must use this instead of
address@hidden when you need this functionality.
+
 @item AM_PROG_CC_STDC
-If the C compiler in not in ANSI C mode by default, try to add an option
+If the C compiler is not in ANSI C mode by default, try to add an option
 to output variable @code{CC} to make it so.  This macro tries various
 options that select ANSI C on some system or another.  It considers the
 compiler to be in ANSI C mode if it handles function prototypes correctly.
@@ -1337,6 +1429,26 @@ Programs, , Particular Program Checks, autoconf, The 
Autoconf Manual}),
 but uses the @code{missing} script on systems that do not have
 @code{lex}.  @samp{HP-UX 10} is one such system.
 
+Autoconf 2.50 and higher, in order to simplify the interface, includes
+the body of @code{AC_DECL_YYTEXT} in @code{AC_PROG_LEX}.  To ensure
+backward compatibility, @code{AC_DECL_YYTEXT} is nevertheless defined as
+an invocation of @code{AC_PROG_LEX}.  Since @code{AM_PROG_LEX} invokes
+both, it causes an annoying but benign warning (@code{AC_PROG_LEX}
+invoked multiple times) which you should just ignore.  In the future,
+once Automake requires Autoconf 2.50, this issue will be fixed, but the
+current compatibility with Autoconf 2.13 prevents this.
+
address@hidden AM_PROG_GCJ
+This macro finds the @code{gcj} program or causes an error.  It sets
address@hidden and @samp{GCJFLAGS}.  @code{gcj} is the Java front-end to the
+GNU Compiler Collection.
address@hidden AM_PROG_GCJ
+
address@hidden AM_PROG_INSTALL_STRIP
+This is used to find a version of @code{install} which can be used to
address@hidden a program at installation time.  This macro is
+automatically included when required.
+
 @item AM_SANITY_CHECK
 This checks to make sure that a file created in the build directory is
 newer than a file in the source directory.  This can fail on systems
@@ -1406,14 +1518,14 @@ A macro file's name should end in @file{.m4}.  Such 
files should be
 installed in @file{$(datadir)/aclocal}.
 
 
address@hidden Top level, Programs, configure, Top
address@hidden Top level, Alternative, configure, Top
 @chapter The top-level @file{Makefile.am}
 
 @cindex SUBDIRS, explained
 
-In non-flat packages, the top level @file{Makefile.am} must tell
-Automake which subdirectories are to be built.  This is done via the
address@hidden variable.
+In packages with subdirectories, the top level @file{Makefile.am} must
+tell Automake which subdirectories are to be built.  This is done via
+the @code{SUBDIRS} variable.
 @vindex SUBDIRS
 
 The @code{SUBDIRS} macro holds a list of subdirectories in which
@@ -1427,9 +1539,9 @@ mentioned in @code{SUBDIRS} must be direct children of 
the current
 directory.  For instance, you cannot put @samp{src/subdir} into
 @code{SUBDIRS}.
 
-In a deep package, the top-level @file{Makefile.am} is often very short.
-For instance, here is the @file{Makefile.am} from the GNU Hello
-distribution:
+In packages that use subdirectories, the top-level @file{Makefile.am} is
+often very short.  For instance, here is the @file{Makefile.am} from the
+GNU Hello distribution:
 
 @example
 EXTRA_DIST = BUGS ChangeLog.O README-alpha
@@ -1444,16 +1556,20 @@ case of GNU @code{Inetutils}, you want to only build a 
subset of the
 entire package.  In your @file{Makefile.am} include:
 
 @example
-SUBDIRS = @@SUBDIRS@@
+SUBDIRS = @@MY_SUBDIRS@@
 @end example
 
 Then in your @file{configure.in} you can specify:
 
 @example
-SUBDIRS = "src doc lib po"
-AC_SUBST(SUBDIRS)
+MY_SUBDIRS="src doc lib po"
+AC_SUBST(MY_SUBDIRS)
 @end example
 
+(Note that we don't use the variable name @code{SUBDIRS} in our
address@hidden; that would cause Automake to believe that every
address@hidden should recurse into the listed subdirectories.)
+
 The upshot of this is that Automake is tricked into building the package
 to take the subdirs, but doesn't actually bind that list until
 @code{configure} is run.
@@ -1463,7 +1579,13 @@ Although the @code{SUBDIRS} macro can contain configure 
substitutions
 contents of this variable.
 
 If @code{SUBDIRS} is defined, then your @file{configure.in} must include
address@hidden
address@hidden  When Automake invokes @code{make} in a
+subdirectory, it uses the value of the @code{MAKE} variable.  It passes
+the value of the variable @code{AM_MAKEFLAGS} to the @code{make}
+invocation; this can be set in @file{Makefile.am} if there are flags you
+must always pass to @code{make}.
address@hidden MAKE
address@hidden MAKEFLAGS
 
 The use of @code{SUBDIRS} is not restricted to just the top-level
 @file{Makefile.am}.  Automake can be used to construct packages of
@@ -1473,10 +1595,76 @@ By default, Automake generates @file{Makefiles} which 
work depth-first
 (@samp{postfix}).  However, it is possible to change this ordering.  You
 can do this by putting @samp{.} into @code{SUBDIRS}.  For instance,
 putting @samp{.}  first will cause a @samp{prefix} ordering of
-directories.
+directories.  All @samp{clean} targets are run in reverse order of build
+targets.
+
+Sometimes, such as when running @code{make dist}, you want all possible
+subdirectories to be examined.  In this case Automake will use
address@hidden, instead of @code{SUBDIRS}, to determine where to
+recurse.  This variable will also be used when the user runs
address@hidden or @code{maintainer-clean}.  It should be set to the
+full list of subdirectories in the project.  If this macro is not set,
+Automake will attempt to set it for you.
 
 
address@hidden Programs, Other objects, Top level, Top
address@hidden Alternative, Rebuilding, Top level, Top
address@hidden An Alternative Approach to Subdirectories
+
+If you've ever read Peter Miller's excellent paper,
address@hidden://www.pcug.org.au/~millerp/rmch/recu-make-cons-harm.html,
+Recursive Make Considered Harmful}, the preceding section on the use of
+subdirectories will probably come as unwelcome advice.  For those who
+haven't read the paper, Miller's main thesis is that recursive
address@hidden invocations are both slow and error-prone.
+
+Automake provides sufficient cross-directory support @footnote{We
+believe.  This work is new and there are probably warts.
address@hidden, for information on reporting bugs.} to enable you
+to write a single @file{Makefile.am} for a complex multi-directory
+package.
+
+
+By default an installable file specified in a subdirectory will have its
+directory name stripped before installation.  For instance, in this
+example, the header file will be installed as
address@hidden(includedir)/stdio.h}:
+
address@hidden
+include_HEADERS = inc/stdio.h
address@hidden example
+
address@hidden nobase_
address@hidden Path stripping, avoiding
address@hidden Avoiding path stripping
+
+However, the @samp{nobase_} prefix can be used to circumvent this path
+stripping.  In this example, the header file will be installed as
address@hidden(includedir)/sys/types.h}:
+
address@hidden
+nobase_include_HEADERS = sys/types.h
address@hidden example
+
+
address@hidden Rebuilding, Programs, Alternative, Top
address@hidden Rebuilding Makefiles
+
+Automake generates rules to automatically rebuild @file{Makefile}s,
address@hidden, and other derived files like @file{Makefile.in}.
+
+If you are using @code{AM_MAINTAINER_MODE} in @file{configure.in}, then
+these automatic rebuilding rules are only enabled in maintainer mode.
+
+Sometimes you need to run @code{aclocal} with an argument like @code{-I}
+to tell it where to find @file{.m4} files.  Since sometimes @code{make}
+will automatically run @code{aclocal}, you need a way to specify these
+arguments.  You can do this by defining @code{ACLOCAL_AMFLAGS}; this
+holds arguments which are passed verbatim to @code{aclocal}.  This macro
+is only useful in the top-level @file{Makefile.am}.
address@hidden ACLOCAL_AMFLAGS
+
+
address@hidden Programs, Other objects, Rebuilding, Top
 @chapter Building Programs and Libraries
 
 A large part of Automake's functionality is dedicated to making it easy
@@ -1485,21 +1673,29 @@ to build programs and libraries.
 @menu
 * A Program::                   Building a program
 * A Library::                   Building a library
-* LIBOBJS::                     Special handling for LIBOBJS and ALLOCA
 * A Shared Library::            Building a Libtool library
+* Program and Library Variables::
+                               Variables controlling program and
+                                library builds
+* LIBOBJS::                     Special handling for LIBOBJS and ALLOCA
 * Program variables::           Variables used when building a program
 * Yacc and Lex::                Yacc and Lex support
-* C++ Support::                 
-* Fortran 77 Support::          
-* Support for Other Languages::  
+* C++ Support::
+* Assembly Support::
+* Fortran 77 Support::
+* Java Support::
+* Support for Other Languages::
 * ANSI::                        Automatic de-ANSI-fication
 * Dependencies::                Automatic dependency tracking
+* EXEEXT::                     Support for executable extensions
 @end menu
 
 
 @node A Program, A Library, Programs, Programs
 @section Building a program
 
address@hidden Introductory blathering
+
 @cindex PROGRAMS, bindir
 @vindex bin_PROGRAMS
 @vindex sbin_PROGRAMS
@@ -1510,7 +1706,8 @@ to build programs and libraries.
 In a directory containing source that gets built into a program (as
 opposed to a library), the @samp{PROGRAMS} primary is used.  Programs
 can be installed in @code{bindir}, @code{sbindir}, @code{libexecdir},
address@hidden, or not at all (@samp{noinst}).
address@hidden, or not at all (@samp{noinst}).  They can also be built
+only for @code{make check}, in which case the prefix is @samp{check}.
 
 For instance:
 
@@ -1519,12 +1716,18 @@ bin_PROGRAMS = hello
 @end example
 
 In this simple case, the resulting @file{Makefile.in} will contain code
-to generate a program named @code{hello}.  The variable
address@hidden is used to specify which source files get built
-into an executable:
+to generate a program named @code{hello}.
+
+Associated with each program are several assisting variables which are
+named after the program.  These variables are all optional, and have
+reasonable defaults.  Each variable, its use, and default is spelled out
+below; we use the ``hello'' example throughout.
+
+The variable @code{hello_SOURCES} is used to specify which source files
+get built into an executable:
 
 @example
-hello_SOURCES = hello.c version.c getopt.c getopt1.c getopt.h system.h 
+hello_SOURCES = hello.c version.c getopt.c getopt1.c getopt.h system.h
 @end example
 
 This causes each mentioned @samp{.c} file to be compiled into the
@@ -1534,8 +1737,10 @@ corresponding @samp{.o}.  Then all are linked to produce 
@file{hello}.
 @cindex SOURCES primary, defined
 @cindex Primary variable, SOURCES
 
-If @address@hidden is needed, but not specified, then it
-defaults to the single file @file{prog.c}.
+If @samp{hello_SOURCES} is not specified, then it defaults to the single
+file @file{hello.c}; that is, the default is to compile a single C file
+whose base name is the name of the program itself.  (This is a terrible
+default but we are stuck with it for historical reasons.)
 @vindex _SOURCES
 @vindex SOURCES
 
@@ -1548,11 +1753,18 @@ can share a single source file, which must be listed in 
each
 
 Header files listed in a @samp{_SOURCES} definition will be included in
 the distribution but otherwise ignored.  In case it isn't obvious, you
-should not include the header file generated by @file{configure} in an
+should not include the header file generated by @file{configure} in a
 @samp{_SOURCES} variable; this file should not be distributed.  Lex
 (@samp{.l}) and Yacc (@samp{.y}) files can also be listed; see @ref{Yacc
 and Lex}.
 
address@hidden Conditional compilations
+
+You can't put a configure substitution (e.g., @samp{@@FOO@@}) into a
address@hidden variable.  The reason for this is a bit hard to explain,
+but suffice to say that it simply won't work.  Automake will give an
+error if you try to do this.
+
 @cindex EXTRA_prog_SOURCES, defined
 
 Automake must know all the source files that could possibly go into a
@@ -1566,9 +1778,30 @@ appropriate @samp{EXTRA_} variable.  For instance, if
 EXTRA_hello_SOURCES = hello-linux.c
 @end example
 
-Similarly, sometimes it is useful to determine the programs that are to
-be built at configure time.  For instance, GNU @code{cpio} only builds
address@hidden and @code{rmt} under special circumstances.
+In this case, @file{hello-linux.o} would be added, via a
address@hidden substitution, to @code{hello_LDADD} in order to cause
+it to be built and linked in.
+
+An often simpler way to compile source files conditionally is to use
+Automake conditionals.  For instance, you could use this construct to
+conditionally use @file{hello-linux.c} or @file{hello-generic.c} as the
+basis for your program @file{hello}:
+
address@hidden
+if LINUX
+hello_SOURCES = hello-linux.c
+else
+hello_SOURCES = hello-generic.c
+endif
address@hidden example
+
+When using conditionals like this you don't need to use the
address@hidden variable, because Automake will examine the contents of
+each variable to construct the complete list of source files.
+
+Sometimes it is useful to determine the programs that are to be built at
+configure time.  For instance, GNU @code{cpio} only builds @code{mt} and
address@hidden under special circumstances.
 
 @cindex EXTRA_PROGRAMS, defined
 
@@ -1580,6 +1813,11 @@ This is done by having @code{configure} substitute 
values into each
 in @code{EXTRA_PROGRAMS}.
 @vindex EXTRA_PROGRAMS
 
+Of course you can use Automake conditionals to determine the programs to
+be built.
+
address@hidden Linking the program
+
 If you need to link against libraries that are not found by
 @code{configure}, you can use @code{LDADD} to do so.  This variable
 actually can be used to add any options to the linker command line.
@@ -1619,8 +1857,9 @@ rmt_SOURCES = @dots{}
 @cindex _LDFLAGS, defined
 
 @address@hidden is inappropriate for passing program-specific
-linker flags (except for @samp{-l} and @samp{-L}).  So, use the
address@hidden@var{prog}_LDFLAGS} variable for this purpose.
+linker flags (except for @samp{-l}, @samp{-L}, @samp{-dlopen} and
address@hidden).  So, use the @address@hidden variable for
+this purpose.
 @vindex _LDFLAGS
 
 @cindex _DEPENDENCIES, defined
@@ -1634,13 +1873,14 @@ done.
 If @address@hidden is not supplied, it is computed by
 Automake.  The automatically-assigned value is the contents of
 @address@hidden, with most configure substitutions, @samp{-l},
-and @samp{-L} options removed.  The configure substitutions that are
-left in are only @samp{@@LIBOBJS@@} and @samp{@@ALLOCA@@}; these are
-left because it is known that they will not cause an invalid value for
address@hidden@var{prog}_DEPENDENCIES} to be generated.
address@hidden, @samp{-dlopen} and @samp{-dlpreopen} options removed.  The
+configure substitutions that are left in are only @samp{@@LIBOBJS@@} and
address@hidden@@ALLOCA@@}; these are left because it is known that they will not
+cause an invalid value for @address@hidden to be
+generated.
 
 
address@hidden A Library, LIBOBJS, A Program, Programs
address@hidden A Library, A Shared Library, A Program, Programs
 @section Building a library
 
 @cindex _LIBRARIES primary, defined
@@ -1686,25 +1926,12 @@ determined by @code{configure}.  Again from @code{cpio}:
 libcpio_a_LIBADD = @@LIBOBJS@@ @@ALLOCA@@
 @end example
 
-
address@hidden LIBOBJS, A Shared Library, A Library, Programs
address@hidden Special handling for LIBOBJS and ALLOCA
-
address@hidden @@LIBOBJS@@, special handling
address@hidden @@ALLOCA@@, special handling
-
-Automake explicitly recognizes the use of @code{@@LIBOBJS@@} and
address@hidden@@ALLOCA@@}, and uses this information, plus the list of
address@hidden files derived from @file{configure.in} to automatically
-include the appropriate source files in the distribution (@pxref{Dist}).
-These source files are also automatically handled in the
-dependency-tracking scheme; see @xref{Dependencies}.
-
address@hidden@@LIBOBJS@@} and @code{@@ALLOCA@@} are specially recognized in any
address@hidden or @samp{_LIBADD} variable.
+In addition, sources for extra objects that will not exist until
+configure-time must be added to the @code{BUILT_SOURCES} variable
+(@pxref{Sources}).
 
 
address@hidden A Shared Library, Program variables, LIBOBJS, Programs
address@hidden A Shared Library, Program and Library Variables, A Library, 
Programs
 @section Building a Shared Library
 
 @cindex Shared libraries, support for
@@ -1738,8 +1965,8 @@ lib_LTLIBRARIES = libgettext.la
 
 @cindex check_LTLIBRARIES, not allowed
 
-Note that shared libraries @emph{must} be installed, so
address@hidden is not allowed.  However,
+Note that shared libraries @emph{must} be installed in order to work
+properly, so @code{check_LTLIBRARIES} is not allowed.  However,
 @code{noinst_LTLIBRARIES} is allowed.  This feature should be used for
 libtool ``convenience libraries''.
 
@@ -1766,11 +1993,207 @@ installation directory; for such libraries you must 
add the
 @samp{-rpath} option to the appropriate @samp{_LDFLAGS} variable by
 hand.
 
+Ordinarily, Automake requires that a shared library's name start with
address@hidden  However, if you are building a dynamically loadable module
+then you might wish to use a "nonstandard" name.  In this case, put
address@hidden into the @samp{_LDFLAGS} variable.
+
 @xref{Using Automake, Using Automake with Libtool, The Libtool Manual,
 libtool, The Libtool Manual}, for more information.
 
 
address@hidden Program variables, Yacc and Lex, A Shared Library, Programs
address@hidden Program and Library Variables, LIBOBJS, A Shared Library, 
Programs
address@hidden Program and Library Variables
+
+Associated with each program are a collection of variables which can be
+used to modify how that program is built.  There is a similar list of
+such variables for each library.  The canonical name of the program (or
+library) is used as a base for naming these variables.
+
+In the list below, we use the name ``maude'' to refer to the program or
+library.  In your @file{Makefile.am} you would replace this with the
+canonical name of your program.  This list also refers to ``maude'' as a
+program, but in general the same rules apply for both static and dynamic
+libraries; the documentation below notes situations where programs and
+libraries differ.
+
address@hidden @samp
address@hidden maude_SOURCES
+This variable, if it exists, lists all the source files which are
+compiled to build the program.  These files are added to the
+distribution by default.  When building the program, Automake will cause
+each source file to be compiled to a single @file{.o} file (or
address@hidden when using libtool).  Normally these object files are named
+after the source file, but other factors can change this.  If a file in
+the @samp{_SOURCES} variable has an unrecognized extension, Automake
+will do one of two things with it.  If a suffix rule exists for turning
+files with the unrecognized extension into @file{.o} files, then
+automake will treat this file as it will any other source file
+(@pxref{Support for Other Languages}).  Otherwise, the file will be
+ignored as though it were a header file.
+
+The prefixes @samp{dist_} and @samp{nodist_} can be used to control
+whether files listed in a @samp{_SOURCES} variable are distributed.
address@hidden is redundant, as sources are distributed by default, but it
+can be specified for clarity if desired.
+
+It is possible to have both @samp{dist_} and @samp{nodist_} variants of
+a given @samp{_SOURCES} variable at once; this lets you easily
+distribute some files and not others, for instance:
+
address@hidden
+nodist_maude_SOURCES = nodist.c
+dist_maude_SOURCES = dist-me.c
address@hidden example
+
+By default the output file (on Unix systems, the @file{.o} file) will be
+put into the current build directory.  However, if the option
address@hidden is in effect in the current directory then the
address@hidden file will be put into the subdirectory named after the source
+file.  For instance, with @code{subdir-objects} enabled,
address@hidden/dir/file.c} will be compiled to @file{sub/dir/file.o}.  Some
+people prefer this mode of operation.  You can specify
address@hidden in @code{AUTOMAKE_OPTIONS} (@pxref{Options}).
address@hidden Subdirectory, objects in
address@hidden Objects in subdirectory
+
+
address@hidden EXTRA_maude_SOURCES
+Automake needs to know the list of files you intend to compile
address@hidden  For one thing, this is the only way Automake has of
+knowing what sort of language support a given @file{Makefile.in}
+requires.  @footnote{There are other, more obscure reasons reasons for
+this limitation as well.}  This means that, for example, you can't put a
+configure substitution like @samp{@@my_sources@@} into a @samp{_SOURCES}
+variable.  If you intend to conditionally compile source files and use
address@hidden to substitute the appropriate object names into, e.g.,
address@hidden (see below), then you should list the corresponding source
+files in the @samp{EXTRA_} variable.
+
+This variable also supports @samp{dist_} and @samp{nodist_} prefixes,
+e.g., @samp{nodist_EXTRA_maude_SOURCES}.
+
address@hidden maude_AR
+A static library is created by default by invoking @code{$(AR) cru}
+followed by the name of the library and then the objects being put into
+the library.  You can override this by setting the @samp{_AR} variable.
+This is usually used with C++; some C++ compilers require a special
+invocation in order to instantiate all the templates which should go
+into a library.  For instance, the SGI C++ compiler likes this macro set
+like so:
address@hidden
+libmaude_a_AR = $(CXX) -ar -o
address@hidden example
+
address@hidden maude_LIBADD
+Extra objects can be added to a static library using the @samp{_LIBADD}
+variable.  This should be used for objects determined by
address@hidden  Note that @samp{_LIBADD} is not used for shared
+libraries; there you must use @samp{_LDADD}.
+
address@hidden maude_LDADD
+Extra objects can be added to a shared library or a program by listing
+them in the @samp{_LDADD} variable.  This should be used for objects
+determined by @code{configure}.
+
address@hidden is inappropriate for passing program-specific linker flags
+(except for @samp{-l}, @samp{-L}, @samp{-dlopen} and @samp{-dlpreopen}).
+Use the @samp{_LDFLAGS} variable for this purpose.
+
+For instance, if your @file{configure.in} uses @code{AC_PATH_XTRA}, you
+could link your program against the X libraries like so:
+
address@hidden
+maude_LDADD = $(X_PRE_LIBS) $(X_LIBS) $(X_EXTRA_LIBS)
address@hidden example
+
address@hidden maude_LDFLAGS
+This variable is used to pass extra flags to the link step of a program
+or a shared library.
+
address@hidden maude_LINK
+You can override the linker on a per-program basis.  By default the
+linker is chosen according to the languages used by the program.  For
+instance, a program that includes C++ source code would use the C++
+compiler to link.  The @samp{_LINK} variable must hold the name of a
+command which can be passed all the @file{.o} file names as arguments.
+Note that the name of the underlying program is @emph{not} passed to
address@hidden; typically one uses @samp{$@@}:
+
address@hidden
+maude_LINK = $(CCLD) -magic -o $@@
address@hidden example
+
address@hidden maude_CFLAGS
+Automake allows you to set compilation flags on a per-program (or
+per-library) basis.  A single source file can be included in several
+programs, and it will potentially be compiled with different flags for
+each program.  This works for any language directly supported by
+Automake.  The flags are @samp{_CFLAGS}, @samp{_CXXFLAGS},
address@hidden, @samp{_YFLAGS}, @samp{_ASFLAGS}, @samp{_FFLAGS},
address@hidden, and @samp{_GCJFLAGS}.
+
+When using a per-program compilation flag, Automake will choose a
+different name for the intermediate object files.  Ordinarily a file
+like @file{sample.c} will be compiled to produce @file{sample.o}.
+However, if the program's @samp{_CFLAGS} variable is set, then the
+object file will be named, for instance, @file{maude-sample.o}.
+
+In compilations with per-program flags, the ordinary @samp{AM_} form of
+the flags variable is @emph{not} automatically included in the
+compilation (however, the user form of the variable @emph{is} included).
+So for instance, if you want the hypothetical @file{maude} compilations
+to also use the value of @samp{AM_CFLAGS}, you would need to write:
+
address@hidden
+maude_CFLAGS = ... your flags ... $(AM_CFLAGS)
address@hidden example
+
address@hidden maude_DEPENDENCIES
+It is also occasionally useful to have a program depend on some other
+target which is not actually part of that program.  This can be done
+using the @samp{_DEPENDENCIES} variable.  Each program depends on the
+contents of such a variable, but no further interpretation is done.
+
+If @samp{_DEPENDENCIES} is not supplied, it is computed by Automake.
+The automatically-assigned value is the contents of @samp{_LDADD}, with
+most configure substitutions, @samp{-l}, @samp{-L}, @samp{-dlopen} and
address@hidden options removed.  The configure substitutions that are
+left in are only @samp{@@LIBOBJS@@} and @samp{@@ALLOCA@@}; these are
+left because it is known that they will not cause an invalid value for
address@hidden to be generated.
+
address@hidden maude_SHORTNAME
+On some platforms the allowable file names are very short.  In order to
+support these systems and per-program compilation flags at the same
+time, Automake allows you to set a ``short name'' which will influence
+how intermediate object files are named.  For instance, if you set
address@hidden to @samp{m}, then in the above per-program
+compilation flag example the object file would be named
address@hidden rather than @file{maude-sample.o}.  This facility is
+rarely needed in practice, and we recommend avoiding it until you find
+it is required.
address@hidden table
+
+
address@hidden LIBOBJS, Program variables, Program and Library Variables, 
Programs
address@hidden Special handling for LIBOBJS and ALLOCA
+
address@hidden @@LIBOBJS@@, special handling
address@hidden @@ALLOCA@@, special handling
+
+Automake explicitly recognizes the use of @code{@@LIBOBJS@@} and
address@hidden@@ALLOCA@@}, and uses this information, plus the list of
address@hidden files derived from @file{configure.in} to automatically
+include the appropriate source files in the distribution (@pxref{Dist}).
+These source files are also automatically handled in the
+dependency-tracking scheme; see @xref{Dependencies}.
+
address@hidden@@LIBOBJS@@} and @code{@@ALLOCA@@} are specially recognized in any
address@hidden or @samp{_LIBADD} variable.
+
+
address@hidden Program variables, Yacc and Lex, LIBOBJS, Programs
 @section Variables used when building a program
 
 Occasionally it is useful to know which @file{Makefile} variables
@@ -1785,24 +2208,37 @@ Some variables are inherited from Autoconf; these are 
@code{CC},
 There are some additional variables which Automake itself defines:
 
 @vtable @code
address@hidden AM_CPPFLAGS
+The contents of this macro are passed to every compilation which invokes
+the C preprocessor; it is a list of arguments to the preprocessor.  For
+instance, @samp{-I} and @samp{-D} options should be listed here.
+
+Automake already provides some @samp{-I} options automatically.  In
+particular it generates @samp{-I$(srcdir)}, @samp{-I.}, and a @samp{-I}
+pointing to the directory holding @file{config.h} (if you've used
address@hidden or @code{AM_CONFIG_HEADER}).  You can disable
+the default @samp{-I} options using the @samp{nostdinc} option.
+
 @item INCLUDES
-A list of @samp{-I} options.  This can be set in your @file{Makefile.am}
-if you have special directories you want to look in.  Automake already
-provides some @samp{-I} options automatically.  In particular it
-generates @samp{-I$(srcdir)} and a @samp{-I} pointing to the directory
-holding @file{config.h} (if you've used @code{AC_CONFIG_HEADER} or
address@hidden).
+This does the same job as @samp{AM_CPPFLAGS}.  It is an older name for
+the same functionality.  This macro is deprecated; we suggest using
address@hidden instead.
 
address@hidden can actually be used for other @code{cpp} options
-besides @samp{-I}.  For instance, it is sometimes used to pass arbitrary
address@hidden options to the compiler.
address@hidden AM_CFLAGS
+This is the variable which the @file{Makefile.am} author can use to pass
+in additional C compiler flags.  It is more fully documented elsewhere.
+In some situations, this is not used, in preference to the
+per-executable (or per-library) @code{CFLAGS}.
 
 @item COMPILE
 This is the command used to actually compile a C source file.  The
 filename is appended to form the complete command line.
 
 @item LINK
-This is the command used to actually link a C program.
+This is the command used to actually link a C program.  It already
+includes @samp{-o $@@} and the usual variable references (for instance,
address@hidden); it takes as ``arguments'' the names of the object files
+and libraries to link in.
 @end vtable
 
 
@@ -1840,6 +2276,10 @@ define the variable @samp{YACC}.  This is most easily 
done by invoking
 the macro @samp{AC_PROG_YACC} (@pxref{Particular Programs, , Particular
 Program Checks, autoconf, The Autoconf Manual}).
 
+When @code{yacc} is invoked, it is passed @samp{YFLAGS} and
address@hidden  The former is a user variable and the latter is
+intended for the @file{Makefile.am} author.
+
 Similarly, if a @code{lex} source file is seen, then your
 @file{configure.in} must define the variable @samp{LEX}.  You can use
 @samp{AC_PROG_LEX} to do this (@pxref{Particular Programs, , Particular
@@ -1849,6 +2289,12 @@ macro---automake needs to know the value of 
@samp{LEX_OUTPUT_ROOT}.
 This is all handled for you if you use the @code{AM_PROG_LEX} macro
 (@pxref{Macros}).
 
+When @code{lex} is invoked, it is passed @samp{LFLAGS} and
address@hidden  The former is a user variable and the latter is
+intended for the @file{Makefile.am} author.
+
+
+
 @cindex ylwrap
 @cindex yacc, multiple parsers
 @cindex Multiple yacc parsers
@@ -1880,13 +2326,13 @@ We recommend using the following renaming hack used in 
@code{gdb}:
 #define        yylval  c_lval
 #define        yychar  c_char
 #define        yydebug c_debug
-#define        yypact  c_pact  
-#define        yyr1    c_r1                    
-#define        yyr2    c_r2                    
-#define        yydef   c_def           
-#define        yychk   c_chk           
-#define        yypgo   c_pgo           
-#define        yyact   c_act           
+#define        yypact  c_pact
+#define        yyr1    c_r1
+#define        yyr2    c_r2
+#define        yydef   c_def
+#define        yychk   c_chk
+#define        yypgo   c_pgo
+#define        yyact   c_act
 #define        yyexca  c_exca
 #define yyerrflag c_errflag
 #define yynerrs        c_nerrs
@@ -1921,7 +2367,7 @@ These defines work for @code{bison}, @code{byacc}, and 
traditional
 covered here, please report the new name so it can be added to the list.
 
 
address@hidden C++ Support, Fortran 77 Support, Yacc and Lex, Programs
address@hidden C++ Support, Assembly Support, Yacc and Lex, Programs
 @section C++ Support
 
 @cindex C++ support
@@ -1943,6 +2389,9 @@ The name of the C++ compiler.
 @item CXXFLAGS
 Any flags to pass to the C++ compiler.
 
address@hidden AM_CXXFLAGS
+The maintainer's variant of @code{CXXFLAGS}.
+
 @item CXXCOMPILE
 The command used to actually compile a C++ source file.  The file name
 is appended to form the complete command line.
@@ -1952,7 +2401,25 @@ The command used to actually link a C++ program.
 @end vtable
 
 
address@hidden Fortran 77 Support, Support for Other Languages, C++ Support, 
Programs
address@hidden Assembly Support, Fortran 77 Support, C++ Support, Programs
address@hidden Assembly Support
+
+Automake includes some support for assembly code.
+
+The variable @code{AS} holds the name of the compiler used to build
+assembly code.  This compiler must work a bit like a C compiler; in
+particular it must accept @samp{-c} and @samp{-o}.  The value of
address@hidden is passed to the compilation.
address@hidden AS
address@hidden ASFLAGS
+
+You are required to set @code{AS} and @code{ASFLAGS} via
address@hidden  The autoconf macro @code{AM_PROG_AS} will do this
+for you.  Unless they are already set, it simply sets @code{AS} to the C
+compiler and @code{ASFLAGS} to the C compiler flags.
+
+
address@hidden Fortran 77 Support, Java Support, Assembly Support, Programs
 @comment  node-name,  next,  previous,  up
 @section Fortran 77 Support
 
@@ -1978,9 +2445,15 @@ The name of the Fortran 77 compiler.
 @item FFLAGS
 Any flags to pass to the Fortran 77 compiler.
 
address@hidden AM_FFLAGS
+The maintainer's variant of @code{FFLAGS}.
+
 @item RFLAGS
 Any flags to pass to the Ratfor compiler.
 
address@hidden AM_RFLAGS
+The maintainer's variant of @code{RFLAGS}.
+
 @item F77COMPILE
 The command used to actually compile a Fortran 77 source file.  The file
 name is appended to form the complete command line.
@@ -2003,10 +2476,10 @@ Fortran 77 With C and C++}).
 These issues are covered in the following sections.
 
 @menu
-* Preprocessing Fortran 77::    
-* Compiling Fortran 77 Files::  
-* Mixing Fortran 77 With C and C++::  
-* Fortran 77 and Autoconf::     
+* Preprocessing Fortran 77::
+* Compiling Fortran 77 Files::
+* Mixing Fortran 77 With C and C++::
+* Fortran 77 and Autoconf::
 @end menu
 
 
@@ -2132,7 +2605,7 @@ Automake would have issued a warning.
 
 @page
 @menu
-* How the Linker is Chosen::    
+* How the Linker is Chosen::
 @end menu
 
 @node How the Linker is Chosen,  , Mixing Fortran 77 With C and C++, Mixing 
Fortran 77 With C and C++
@@ -2193,19 +2666,56 @@ included by the C++ linker, then they must be manually 
added to an
 @subsection Fortran 77 and Autoconf
 
 The current Automake support for Fortran 77 requires a recent enough
-version Autoconf that also includes support for Fortran 77.  Full
+version of Autoconf that also includes support for Fortran 77.  Full
 Fortran 77 support was added to Autoconf 2.13, so you will want to use
 that version of Autoconf or later.
 
 
address@hidden Support for Other Languages, ANSI, Fortran 77 Support, Programs
address@hidden Java Support, Support for Other Languages, Fortran 77 Support, 
Programs
address@hidden  node-name,  next,  previous,  up
address@hidden Java Support
+
address@hidden Java support
address@hidden Support for Java
+
+Automake includes support for compiled Java, using @code{gcj}, the Java
+front end to the GNU Compiler Collection.
+
+Any package including Java code to be compiled must define the output
+variable @samp{GCJ} in @file{configure.in}; the variable @samp{GCJFLAGS}
+must also be defined somehow (either in @file{configure.in} or
address@hidden).  The simplest way to do this is to use the
address@hidden macro.
+
address@hidden GCJFLAGS
+
+By default, programs including Java source files are linked with
address@hidden
+
+As always, the contents of @samp{AM_GCJFLAGS} are passed to every
+compilation invoking @code{gcj} (in its role as an ahead-of-time
+compiler -- when invoking it to create @file{.class} files,
address@hidden is used instead).  If it is necessary to pass
+options to @code{gcj} from @file{Makefile.am}, this macro, and not the
+user macro @samp{GCJFLAGS}, should be used.
+
address@hidden AM_GCJFLAGS
+
address@hidden can be used to compile @file{.java}, @file{.class},
address@hidden, or @file{.jar} files.
+
+
address@hidden Support for Other Languages, ANSI, Java Support, Programs
 @comment  node-name,  next,  previous,  up
 @section Support for Other Languages
 
 Automake currently only includes full support for C, C++ (@pxref{C++
-Support})and Fortran 77 (@pxref{Fortran 77 Support}).  There is only
-rudimentary support for other languages, support for which will be
-improved based on user demand.
+Support}), Fortran 77 (@pxref{Fortran 77 Support}), and Java
+(@pxref{Java Support}).  There is only rudimentary support for other
+languages, support for which will be improved based on user demand.
+
+Some limited support for adding your own languages is available via the
+suffix rule handling; see @ref{Suffixes}.
 
 
 @node ANSI, Dependencies, Support for Other Languages, Programs
@@ -2215,7 +2725,7 @@ improved based on user demand.
 
 Although the GNU standards allow the use of ANSI C, this can have the
 effect of limiting portability of a package to some older compilers
-(notably SunOS).
+(notably the SunOS C compiler).
 
 Automake allows you to work around this problem on such machines by
 @dfn{de-ANSI-fying} each source file before the actual compilation takes
@@ -2273,63 +2783,114 @@ into your @file{configure.in}, just before the 
@code{AC_OUTPUT} call:
 LIBOBJS=`echo $LIBOBJS|sed 's/\.o /\$U.o /g;s/\.o$/\$U.o/'`
 @end example
 
+Note that automatic de-ANSI-fication will not work when the package is
+being built for a different host architecture.  That is because automake
+currently has no way to build @code{ansi2knr} for the build machine.
+
 
address@hidden Dependencies,  , ANSI, Programs
address@hidden Dependencies, EXEEXT, ANSI, Programs
 @section Automatic dependency tracking
 
 As a developer it is often painful to continually update the
 @file{Makefile.in} whenever the include-file dependencies change in a
 project.  Automake supplies a way to automatically track dependency
-changes, and distribute the dependencies in the generated
address@hidden
-
-Currently this support requires the use of GNU @code{make} and
address@hidden  It might become possible in the future to supply a
-different dependency generating program, if there is enough demand.  In
-the meantime, this mode is enabled by default if any C program or
-library is defined in the current directory, so you may get a @samp{Must
-be a separator} error from non-GNU make.
-
address@hidden dist
+changes.
+
address@hidden Dependency tracking
address@hidden Automatic dependency tracking
+
+Automake always uses complete dependencies for a compilation, including
+system headers.  Automake's model is that dependency computation should
+be a side effect of the build.  To this end, dependencies are computed
+by running all compilations through a special wrapper program called
address@hidden  @code{depcomp} understands how to coax many different C
+and C++ compilers into generating dependency information in the format
+it requires.  @code{automake -a} will install @code{depcomp} into your
+source tree for you.  If @code{depcomp} can't figure out how to properly
+invoke your compiler, dependency tracking will simply be disabled for
+your build.
+
address@hidden depcomp
+
+Experience with earlier versions of Automake @footnote{See
address@hidden://sources.redhat.com/automake/dependencies.html} for more
+information on the history and experiences with automatic dependency
+tracking in Automake} taught us that it is not reliable to generate
+dependencies only on the maintainer's system, as configurations vary too
+much.  So instead Automake implements dependency tracking at build time.
 
-When you decide to make a distribution, the @code{dist} target will
-re-run @code{automake} with @samp{--include-deps} and other options.
address@hidden Automake}, and @ref{Options}.  This will cause the
-previously generated dependencies to be inserted into the generated
address@hidden, and thus into the distribution.  This step also
-turns off inclusion of the dependency generation code, so that those who
-download your distribution but don't use GNU @code{make} and @code{gcc}
-will not get errors.
-
address@hidden OMIT_DEPENDENCIES
-
-When added to the @file{Makefile.in}, the dependencies have all
-system-specific dependencies automatically removed.  This can be done by
-listing the files in @samp{OMIT_DEPENDENCIES}.  For instance all
-references to system header files are removed by Automake.  Sometimes it
-is useful to specify that a certain header file should be removed.  For
-instance if your @file{configure.in} uses @samp{AM_WITH_REGEX}, then any
-dependency on @file{rx.h} or @file{regex.h} should be removed, because
-the correct one cannot be known until the user configures the package.
-
-As it turns out, Automake is actually smart enough to handle the
-particular case of the regular expression header.  It will also
-automatically omit @file{libintl.h} if @samp{AM_GNU_GETTEXT} is used.
+Automatic dependency tracking can be suppressed by putting
address@hidden in the variable @code{AUTOMAKE_OPTIONS}.  Or, you
+can invoke @code{automake} with the @code{-i} option.  Dependency
+tracking is enabled by default.
 
 @vindex AUTOMAKE_OPTIONS
 @opindex no-dependencies
 
-Automatic dependency tracking can be suppressed by putting
address@hidden in the variable @code{AUTOMAKE_OPTIONS}.
+The person building your package also can choose to disable dependency
+tracking by configuring with @code{--disable-dependency-tracking}.
+
address@hidden Disabling dependency tracking
address@hidden Dependency tracking, disabling
+
+
address@hidden EXEEXT, , Dependencies, Programs
address@hidden Support for executable extensions
+
address@hidden Executable extension
address@hidden Extension, executable
address@hidden Windows
+
+On some platforms, such as Windows, executables are expected to have an
+extension such as @samp{.exe}.  On these platforms, some compilers (GCC
+among them) will automatically generate @file{foo.exe} when asked to
+generate @file{foo}.
+
+Automake provides mostly-transparent support for this.  Unfortunately
+the support isn't completely transparent; if you want your package to
+support these platforms then you must assist.
+
+One thing you must be aware of is that, internally, Automake rewrites
+something like this:
+
address@hidden
+bin_PROGRAMS = liver
address@hidden example
+
+to this:
+
address@hidden
+bin_PROGRAMS = liver$(EXEEXT)
address@hidden example
+
+The targets Automake generates are likewise given the @samp{$(EXEEXT)}
+extension.  @code{EXEEXT}
+
+However, Automake cannot apply this rewriting to @code{configure}
+substitutions.  This means that if you are conditionally building a
+program using such a substitution, then your @file{configure.in} must
+take care to add @samp{$(EXEEXT)} when constructing the output variable.
 
-If you unpack a distribution made by @code{make dist}, and you want to
-turn on the dependency-tracking code again, simply re-run
address@hidden
+With Autoconf 2.13 and earlier, you must explicitly use @code{AC_EXEEXT}
+to get this support.  With Autoconf 2.50, @code{AC_EXEEXT} is run
+automatically if you configure a compiler (say, through
address@hidden).
 
-The actual dependency files are put under the build directory, in a
-subdirectory named @file{.deps}.  These dependencies are machine
-specific.  It is safe to delete them if you like; they will be
-automatically recreated during the next build.
+Sometimes maintainers like to write an explicit link rule for their
+program.  Without executable extension support, this is easy---you
+simply write a target with the same name as the program.  However, when
+executable extension support is enabled, you must instead add the
address@hidden(EXEEXT)} suffix.
+
+Unfortunately, due to the change in Autoconf 2.50, this means you must
+always add this extension.  However, this is a problem for maintainers
+who know their package will never run on a platform that has executable
+extensions.  For those maintainers, the @code{no-exeext} option
+(@pxref{Options}) will disable this feature.  This works in a fairly
+ugly way; if @code{no-exeext} is seen, then the presence of a target
+named @code{foo} in @file{Makefile.am} will override an
+automake-generated target of the form @code{foo$(EXEEXT)}.  Without the
address@hidden option, this use will give an error.
 
 
 @node Other objects, Other GNU Tools, Programs, Top
@@ -2398,7 +2959,10 @@ Script objects can be installed in @code{bindir}, 
@code{sbindir},
 
 Header files are specified by the @samp{HEADERS} family of variables.
 Generally header files are not installed, so the @code{noinst_HEADERS}
-variable will be the most used.
+variable will be the most used.  @footnote{However, for the case of a
+non-installed header file that is actually used by a particular program,
+we recommend listing it in the program's @samp{_SOURCES} variable
+instead of in @code{noinst_HEADERS}.  We believe this is more clear.}
 @vindex HEADERS
 
 All header files must be listed somewhere; missing ones will not appear
@@ -2439,7 +3003,9 @@ Such data can be installed in the directories 
@code{datadir},
 @code{sysconfdir}, @code{sharedstatedir}, @code{localstatedir}, or
 @code{pkgdatadir}.
 
-By default, data files are @emph{not} included in a distribution.
+By default, data files are @emph{not} included in a distribution.  Of
+course, you can use the @samp{dist_} prefix to change this on a
+per-variable basis.
 
 Here is how Automake installs its auxiliary data files:
 
@@ -2458,14 +3024,19 @@ Occasionally a file which would otherwise be called 
@samp{source}
 Such files should be listed in the @code{BUILT_SOURCES} variable.
 @vindex BUILT_SOURCES
 
-Built sources are also not compiled by default.  You must explicitly
-mention them in some other @samp{_SOURCES} variable for this to happen.
address@hidden is actually a bit of a misnomer, as any file which
+must be created early in the build process can be listed in this
+variable.
+
+A source file listed in @code{BUILT_SOURCES} is created before the other
address@hidden targets are made.  However, such a source file is not
+compiled unless explicitly requested by mentioning it in some other
address@hidden variable.
 
-Note that, in some cases, @code{BUILT_SOURCES} will work in somewhat
-surprising ways.  In order to get the built sources to work with
-automatic dependency tracking, the @file{Makefile} must depend on
address@hidden(BUILT_SOURCES)}.  This can cause these sources to be rebuilt at
-what might seem like funny times.
+So, for instance, if you had header files which were created by a script
+run at build time, then you would list these headers in
address@hidden, to ensure that they would be built before any
+other compilations (perhaps ones using these headers) were started.
 
 
 @node Other GNU Tools, Documentation, Other objects, Top
@@ -2477,9 +3048,9 @@ use in GNU programs, it tries hard to interoperate with 
other GNU tools.
 @menu
 * Emacs Lisp::                  Emacs Lisp
 * gettext::                     Gettext
-* Guile::                       Guile
 * Libtool::                     Libtool
 * Java::                        Java
+* Python::                      Python
 @end menu
 
 
@@ -2514,7 +3085,7 @@ strange setups to cope for themselves than to make the 
installation less
 nice for everybody else.
 
 
address@hidden gettext, Guile, Emacs Lisp, Other GNU Tools
address@hidden gettext, Libtool, Emacs Lisp, Other GNU Tools
 @section Gettext
 
 @cindex GNU Gettext support
@@ -2531,33 +3102,8 @@ subdirectories to the package, @file{intl} and 
@file{po}.  Automake
 insures that these directories exist and are mentioned in
 @code{SUBDIRS}.
 
-Furthermore, Automake checks that the definition of @code{ALL_LINGUAS}
-in @file{configure.in} corresponds to all the valid @file{.po} files,
-and nothing more.
-
 
address@hidden Guile, Libtool, gettext, Other GNU Tools
address@hidden Guile
-
-Automake provides some automatic support for writing Guile modules.
-Automake will turn on Guile support if the @code{AM_INIT_GUILE_MODULE}
-macro is used in @file{configure.in}.
-
-Right now Guile support just means that the @code{AM_INIT_GUILE_MODULE}
-macro is understood to mean:
address@hidden @bullet
address@hidden
address@hidden is run.
-
address@hidden
address@hidden is run, with a path of @file{..}.
address@hidden itemize
-
-As the Guile module code matures, no doubt the Automake support will
-grow as well.
-
-
address@hidden Libtool, Java, Guile, Other GNU Tools
address@hidden Libtool, Java, gettext, Other GNU Tools
 @section Libtool
 
 Automake provides support for GNU Libtool (@pxref{Top, , Introduction,
@@ -2565,7 +3111,7 @@ libtool, The Libtool Manual}) with the @samp{LTLIBRARIES} 
primary.
 @xref{A Shared Library}.
 
 
address@hidden Java,  , Libtool, Other GNU Tools
address@hidden Java, Python, Libtool, Other GNU Tools
 @section Java
 
 @cindex _JAVA primary, defined
@@ -2586,7 +3132,111 @@ Currently Automake enforces the restriction that only 
one @samp{_JAVA}
 primary can be used in a given @file{Makefile.am}.  The reason for this
 restriction is that, in general, it isn't possible to know which
 @file{.class} files were generated from which @file{.java} files -- so
-it would be impossible to know which files to install where.
+it would be impossible to know which files to install where.  For
+instance, a @file{.java} file can define multiple classes; the resulting
address@hidden file names cannot be predicted without parsing the
address@hidden file.
+
+There are a few variables which are used when compiling Java sources:
+
address@hidden @code
address@hidden JAVAC
+The name of the Java compiler.  This defaults to @samp{javac}.
+
address@hidden JAVACFLAGS
+The flags to pass to the compiler.  This is considered to be a user
+variable (@pxref{User Variables}).
+
address@hidden AM_JAVACFLAGS
+More flags to pass to the Java compiler.  This, and not
address@hidden, should be used when it is necessary to put Java
+compiler flags into @file{Makefile.am}.
+
address@hidden JAVAROOT
+The value of this variable is passed to the @samp{-d} option to
address@hidden  It defaults to @samp{$(top_builddir)}.
+
address@hidden CLASSPATH_ENV
+This variable is an @code{sh} expression which is used to set the
address@hidden environment variable on the @code{javac} command line.
+(In the future we will probably handle class path setting differently.)
address@hidden vtable
+
+
address@hidden Python,  , Java, Other GNU Tools
address@hidden Python
+
address@hidden _PYTHON primary, defined
address@hidden PYTHON primary, defined
address@hidden Primary variable, PYTHON
+
+
+Automake provides support for Python modules.  Automake will turn on
+Python support if the @code{AM_PATH_PYTHON} macro is used in
address@hidden  The @samp{PYTHON} primary is used to hold a list
+of @file{.py} files.  Possible prefixes for this primary are
address@hidden and @samp{noinst_}.  Note that if @code{python_PYTHON} is
+defined, then @file{configure.in} must run @code{AM_PATH_PYTHON}.
+Python source files are included in the distribution by default.
+
address@hidden takes a single optional argument.  This argument,
+if present, is the minimum version of Python which can be used for this
+package.  If the version of Python found on the system is older than the
+required version, then @code{AM_PATH_PYTHON} will cause an error.
+
address@hidden creates several output variables based on the
+Python installation found during configuration.
+
address@hidden @code
address@hidden PYTHON
+The name of the Python executable.
+
address@hidden PYTHON_VERSION
+The Python version number, in the form @address@hidden
+(e.g. @samp{1.5}).  This is currently the value of
address@hidden:3]}.
+
address@hidden PYTHON_PREFIX
+The string @code{$prefix}.  This term may be used in future work
+which needs the contents of Python's @code{sys.prefix}, but general
+consensus is to always use the value from configure.
+
address@hidden PYTHON_EXEC_PREFIX
+The string @code{$exec_prefix}.  This term may be used in future work
+which needs the contents of Python's @code{sys.exec_prefix}, but general
+consensus is to always use the value from configure.
+
address@hidden PYTHON_PLATFORM
+The canonical name used by Python to describe the operating system, as
+given by @code{sys.platform}.  This value is sometimes needed when
+building Python extensions.
+
address@hidden pythondir
+The directory name for the @file{site-packages} subdirectory of the
+standard Python install tree.
+
address@hidden pkgpythondir
+This is is the directory under @code{pythondir} which is named after the
+package.  That is, it is @samp{$(pythondir)/$(PACKAGE)}.  It is provided
+as a convenience.
+
address@hidden pyexecdir
+This is the directory where Python extension modules (shared libraries)
+should be installed.
+
address@hidden pkgpyexecdir
+This is a convenience variable which is defined as
address@hidden(pyexecdir)/$(PACKAGE)}.
address@hidden vtable
+
address@hidden PYCFILES
address@hidden PYOFILES
+
+By default Automake will byte-compile all Python source files to both
address@hidden and @file{.pyo} forms.  If you wish to avoid generating the
+optimized byte-code files, simply define the variable @code{PYOFILES} to
+be empty.  Similarly, if you don't wish to generate the standard
+byte-compiled files, define the variable @code{PYCFILES} to be empty.
 
 
 @node Documentation, Install, Other GNU Tools, Top
@@ -2610,30 +3260,63 @@ Currently Automake provides support for Texinfo and man 
pages.
 If the current directory contains Texinfo source, you must declare it
 with the @samp{TEXINFOS} primary.  Generally Texinfo files are converted
 into info, and thus the @code{info_TEXINFOS} macro is most commonly used
-here.  Note that any Texinfo source file must end in the @file{.texi} or
address@hidden extension.
+here.  Any Texinfo source file must end in the @file{.texi},
address@hidden, or @file{.texinfo} extension.  We recommend @file{.texi}
+for new manuals.
 @vindex TEXINFOS
 @vindex info_TEXINFOS
 
 @cindex Texinfo macro, VERSION
 @cindex Texinfo macro, UPDATED
 @cindex Texinfo macro, EDITION
address@hidden Texinfo macro, UPDATED-MONTH
 
 @cindex VERSION Texinfo macro
 @cindex UPDATED Texinfo macro
 @cindex EDITION Texinfo macro
address@hidden UPDATED-MONTH Texinfo macro
 
 @cindex mdate-sh
 
 If the @file{.texi} file @code{@@include}s @file{version.texi}, then
 that file will be automatically generated.  The file @file{version.texi}
-defines three Texinfo macros you can reference: @code{EDITION},
address@hidden, and @code{UPDATED}.  The first two hold the version
-number of your package (but are kept separate for clarity); the last is
-the date the primary file was last modified.  The @file{version.texi}
-support requires the @code{mdate-sh} program; this program is supplied
-with Automake and automatically included when @code{automake} is invoked
-with the @code{--add-missing} option.
+defines four Texinfo macros you can reference:
+
address@hidden @code
address@hidden EDITION
address@hidden VERSION
+Both of these macros hold the version number of your program.  They are
+kept separate for clarity.
+
address@hidden UPDATED
+This holds the date the primary @file{.texi} file was last modified.
+
address@hidden UPDATED-MONTH
+This holds the name of the month in which the primary @file{.texi} file
+was last modified.
address@hidden table
+
+The @file{version.texi} support requires the @code{mdate-sh} program;
+this program is supplied with Automake and automatically included when
address@hidden is invoked with the @code{--add-missing} option.
+
+If you have multiple Texinfo files, and you want to use the
address@hidden feature, then you have to have a separate version
+file for each Texinfo file.  Automake will treat any include in a
+Texinfo file that matches @samp{vers*.texi} just as an automatically
+generated version file.
+
+When an info file is rebuilt, the program named by the @code{MAKEINFO}
+variable is used to invoke it.  If the @code{makeinfo} program is found
+on the system then it will be used by default; otherwise @code{missing}
+will be used instead.  The flags in the variables @code{MAKEINFOFLAGS}
+and @code{AM_MAKEINFOFLAGS} will be passed to the @code{makeinfo}
+invocation; the first of these is intended for use by the user
+(@pxref{User Variables}) and the second by the @file{Makefile.am}
+writer.
address@hidden MAKEINFO
address@hidden MAKEINFOFLAGS
address@hidden AM_MAKEINFOFLAGS
 
 Sometimes an info file actually depends on more than one @file{.texi}
 file.  For instance, in GNU Hello, @file{hello.texi} includes the file
@@ -2700,10 +3383,32 @@ matter, @ref{Man Pages, , , standards, The GNU Coding 
Standards}.)  Man
 pages are declared using the @samp{MANS} primary.  Generally the
 @code{man_MANS} macro is used.  Man pages are automatically installed in
 the correct subdirectory of @code{mandir}, based on the file extension.
-They are not automatically included in the distribution.
 @vindex MANS
 @vindex man_MANS
 
+File extensions such as @samp{.1c} are handled by looking for the valid
+part of the extension and using that to determine the correct
+subdirectory of @code{mandir}.  Valid section names are the digits
address@hidden through @samp{9}, and the letters @samp{l} and @samp{n}.
+
+Sometimes developers prefer to name a man page something like
address@hidden in the source, and then rename it to have the correct
+suffix, e.g. @file{foo.1}, when installing the file.  Automake also
+supports this mode.  For a valid section named @var{SECTION}, there is a
+corresponding directory named @address@hidden, and a
+corresponding @samp{_MANS} variable.  Files listed in such a variable
+are installed in the indicated section.  If the file already has a
+valid suffix, then it is installed as-is; otherwise the file suffix is
+changed to match the section.
+
+For instance, consider this example:
address@hidden
+man1_MANS = rename.man thesame.1 alsothesame.1c
address@hidden example
+
+In this case, @file{rename.man} will be renamed to @file{rename.1} when
+installed, but the other files will keep their names.
+
 @cindex Target, install-man
 @cindex Target, noinstall-man
 @cindex install-man target
@@ -2719,21 +3424,21 @@ installed by default.  The user can still explicitly 
install them via
 @opindex no-installman
 @trindex install-man
 
-Here is how the documentation is handled in GNU @code{cpio} (which
-includes both Texinfo documentation and man pages):
+Here is how the man pages are handled in GNU @code{cpio} (which includes
+both Texinfo documentation and man pages):
 
 @example
-info_TEXINFOS = cpio.texi
 man_MANS = cpio.1 mt.1
 EXTRA_DIST = $(man_MANS)
 @end example
 
-Texinfo source and info pages are all considered to be source for the
-purposes of making a distribution.
-
 Man pages are not currently considered to be source, because it is not
-uncommon for man pages to be automatically generated.  For the same
-reason, they are not automatically included in the distribution.
+uncommon for man pages to be automatically generated.  Therefore they
+are not automatically included in the distribution.  However, this can
+be changed by use of the @samp{dist_} prefix.
+
+The @samp{nobase_} prefix is meaningless for man pages and is
+disallowed.
 
 
 @node Install, Clean, Documentation, Top
@@ -2742,33 +3447,52 @@ reason, they are not automatically included in the 
distribution.
 @cindex Installation support
 @cindex make install support
 
address@hidden Basics of installation
+
 Naturally, Automake handles the details of actually installing your
-program once it has been built.  All @code{PROGRAMS}, @code{SCRIPTS},
address@hidden, @code{LISP}, @code{DATA} and @code{HEADERS} are
-automatically installed in the appropriate places.
+program once it has been built.  All files named by the various
+primaries are automatically installed in the appropriate places when the
+user runs @code{make install}.
+
+A file named in a primary is installed by copying the built file into
+the appropriate directory.  The base name of the file is used when
+installing.
+
address@hidden
+bin_PROGRAMS = hello subdir/goodbye
address@hidden example
 
-Automake also handles installing any specified info and man pages.
+In this example, both @samp{hello} and @samp{goodbye} will be installed
+in @code{$(bindir)}.
+
+Sometimes it is useful to avoid the basename step at install time.  For
+instance, you might have a number of header files in subdirectories of
+the source tree which are laid out precisely how you want to install
+them.  In this situation you can use the @samp{nobase_} prefix to
+suppress the base name step.  For example:
+
address@hidden
+nobase_include_HEADERS = stdio.h sys/types.h
address@hidden example
+
+Will install @file{stdio.h} in @code{$(includedir)} and @file{types.h}
+in @code{$(includedir)/sys}.
+
address@hidden The two parts of install
 
 Automake generates separate @code{install-data} and @code{install-exec}
 targets, in case the installer is installing on multiple machines which
 share directory structure---these targets allow the machine-independent
-parts to be installed only once.  The @code{install} target depends on
-both of these targets.
+parts to be installed only once.  @code{install-exec} installs
+platform-dependent files, and @code{install-data} installs
+platform-independent files.  The @code{install} target depends on both
+of these targets.  While Automake tries to automatically segregate
+objects into the correct category, the @file{Makefile.am} author is, in
+the end, responsible for making sure this is done correctly.
 @trindex install-data
 @trindex install-exec
 @trindex install
-
-Automake also generates an @code{uninstall} target, an
address@hidden target, and an @code{install-strip} target.
address@hidden uninstall
address@hidden installdirs
address@hidden install-strip
-
-It is possible to extend this mechanism by defining an
address@hidden or @code{install-data-local} target.  If these
-targets exist, they will be run at @samp{make install} time.
address@hidden install-exec-local
address@hidden install-data-local
address@hidden Install, two parts of
 
 Variables using the standard directory prefixes @samp{data},
 @samp{info}, @samp{man}, @samp{include}, @samp{oldinclude},
@@ -2785,6 +3509,24 @@ the name (e.g. @samp{myexecbin_PROGRAMS} is installed by
 @samp{install-exec}.  All other user-defined prefixes are installed by
 @samp{install-data}.
 
address@hidden Extending installation
+
+It is possible to extend this mechanism by defining an
address@hidden or @code{install-data-local} target.  If these
+targets exist, they will be run at @samp{make install} time.  These
+rules can do almost anything; care is required.
address@hidden install-exec-local
address@hidden install-data-local
+
+Automake also supports two install hooks, @code{install-exec-hook} and
address@hidden  These hooks are run after all other install
+rules of the appropriate type, exec or data, have completed.  So, for
+instance, it is possible to perform post-installation modifications
+using an install hook.
address@hidden Install hook
+
address@hidden Staged installs
+
 @vindex DESTDIR
 Automake generates support for the @samp{DESTDIR} variable in all
 install rules.  @samp{DESTDIR} is used during the @samp{make install}
@@ -2806,6 +3548,26 @@ This feature is commonly used to build install images 
and packages.  For
 more information, see @ref{Makefile Conventions, , , standards, The GNU
 Coding Standards}.
 
+Support for @samp{DESTDIR} is implemented by coding it directly into the
+install rules.  If your @file{Makefile.am} uses a local install rule
+(e.g., @code{install-exec-local}) or an install hook, then you must
+write that code to respect @samp{DESTDIR}.
+
address@hidden Rules for the user
+
+Automake also generates an @code{uninstall} target, an
address@hidden target, and an @code{install-strip} target.
address@hidden uninstall
address@hidden installdirs
address@hidden install-strip
+
+Automake supports @code{uninstall-local} and @code{uninstall-hook}.
+There is no notion of separate uninstalls for ``exec'' and ``data'', as
+that does not make sense.
+
+Note that @code{uninstall} is not meant as a replacement for a real
+packaging tool.
+
 
 @node Clean, Dist, Install, Top
 @chapter What Gets Cleaned
@@ -2824,10 +3586,36 @@ be defined to specify additional files to clean.  These 
variables are
 @vindex DISTCLEANFILES
 @vindex MAINTAINERCLEANFILES
 
+As the GNU Standards aren't always explicit as to which files should be
+removed by which target, we've adopted a heuristic which we believe was
+first formulated by Fran@,{c}ois Pinard:
+
address@hidden @bullet 
address@hidden
+If @code{make} built it, and it is commonly something that one would
+want to rebuild (for instance, a @file{.o} file), then
address@hidden should delete it.
+
address@hidden
+Otherwise, if @code{make} built it, then @code{clean} should delete it.
+
address@hidden
+If @code{configure} built it, then @code{distclean} should delete it
+
address@hidden
+If the maintainer built it, then @code{maintainer-clean} should
+delete it.
address@hidden itemize
+
+We recommend that you follow this same set of heuristics in your
address@hidden
+
 
 @node Dist, Tests, Clean, Top
 @chapter What Goes in a Distribution
 
address@hidden Basics of distribution
+
 @cindex make dist
 @cindex make distcheck
 
@@ -2853,11 +3641,50 @@ current directory, are automatically included.  This 
list is printed by
 Still, sometimes there are files which must be distributed, but which
 are not covered in the automatic rules.  These files should be listed in
 the @code{EXTRA_DIST} variable.  You can mention files from
-subdirectories in @code{EXTRA_DIST}.  You can also mention a directory
-there; in this case the entire directory will be recursively copied into
-the distribution.
+subdirectories in @code{EXTRA_DIST}.
+
+You can also mention a directory in @code{EXTRA_DIST}; in this case the
+entire directory will be recursively copied into the distribution.
+Please note that this will also copy @emph{everything} in the directory,
+including CVS/RCS version control files.  We recommend against using
+this feature.
+
 @vindex EXTRA_DIST
 
address@hidden Fine-grained distribution control
+
+Sometimes you need tighter control over what does @emph{not} go into the
+distribution; for instance you might have source files which are
+generated and which you do not want to distribute.  In this case
+Automake gives fine-grained control using the @samp{dist} and
address@hidden prefixes.  Any primary or @samp{_SOURCES} variable can be
+prefixed with @samp{dist_} to add the listed files to the distribution.
+Similarly, @samp{nodist_} can be used to omit the files from the
+distribution.
address@hidden dist_
address@hidden nodist_
+
+As an example, here is how you would cause some data to be distributed
+while leaving some source code out of the distribution:
+
address@hidden
+dist_data_DATA = distribute-this
+bin_PROGRAMS = foo
+nodist_foo_SOURCES = do-not-distribute.c
address@hidden example
+
address@hidden The dist hook
+
+Another way to to use this is for removing unnecessary files that get
+recursively included by specifying a directory in EXTRA_DIST:
+
address@hidden
+EXTRA_DIST = doc
+
+dist-hook:
+       rm -rf `find $(distdir)/doc -name CVS`
address@hidden example
+
 If you define @code{SUBDIRS}, Automake will recursively include the
 subdirectories in the distribution.  If @code{SUBDIRS} is defined
 conditionally (@pxref{Conditionals}), Automake will normally include all
@@ -2881,11 +3708,31 @@ dist-hook:
         cp -p $(srcdir)/random/a1 $(srcdir)/random/a2 $(distdir)/random
 @end example
 
-Automake also generates a @code{distcheck} target which can be help to
-ensure that a given distribution will actually work.  @code{distcheck}
-makes a distribution, and then tries to do a @code{VPATH} build.
address@hidden Checking the distribution
+
+Automake also generates a @code{distcheck} target which can be of help
+to ensure that a given distribution will actually work.
address@hidden makes a distribution, and then tries to do a
address@hidden build.
 @trindex distcheck
address@hidden FIXME: document distcheck-hook here
+
+If the target @code{distcheck-hook} is defined in your
address@hidden, then it will be invoked by @code{distcheck} after
+the new distribution has been unpacked, but before the unpacked copy is
+configured and built.  Your @code{distcheck-hook} can do almost
+anything, though as always caution is advised.  Generally this hook is
+used to check for potential distribution errors not caught by the
+standard mechanism.
+
address@hidden The types of distributions
+
+By default Automake generates a @samp{.tar.gz} file when asked to create
+a distribution.  However, some projects prefer different packaging
+formats.  Automake accomodates most of these using options;
address@hidden
+
+Automake also generates a @code{dist-all} target which can be used to
+make all the requested packaged distributions at once.
 
 
 @node Tests, Options, Dist, Top
@@ -2896,6 +3743,8 @@ makes a distribution, and then tries to do a @code{VPATH} 
build.
 
 Automake supports two forms of test suites.
 
address@hidden Simple Tests
+
 If the variable @code{TESTS} is defined, its value is taken to be a list
 of programs to run in order to do the testing.  The programs can either
 be derived objects or source objects; the generated rule will look both
@@ -2921,18 +3770,36 @@ set @code{TESTS_ENVIRONMENT} to an invocation of the 
shell (e.g.
 @vindex TESTS
 @vindex TESTS_ENVIRONMENT
 
address@hidden Tests, expected failure
address@hidden Expected test failure
+
+You may define the variable @code{XFAIL_TESTS} to a list of tests
+(usually a subset of @code{TESTS}) that are expected to fail.  This will
+reverse the result of those tests.
address@hidden XFAIL_TESTS
+
+Automake ensures that each program listed in @code{TESTS} is built
+before any tests are run; you can list both source and derived programs
+in @code{TESTS}.  For instance, you might want to run a C program as a
+test.  To do this you would list its name in @code{TESTS} and also in
address@hidden, and then specify it as you would any other
+program.
+
address@hidden DejaGNU Tests
+
 If @uref{ftp://prep.ai.mit.edu/pub/gnu/dejagnu-1.3.tar.gz,
 @samp{dejagnu}} appears in @code{AUTOMAKE_OPTIONS}, then a
address@hidden test suite is assumed.  The value of the variable
address@hidden is passed as the @code{--tool} argument to
address@hidden; it defaults to the name of the package.
address@hidden test suite is assumed.  The variable
address@hidden is a list of names which are passed, one at a time, as
+the @code{--tool} argument to @code{runtest} invocations; it defaults to
+the name of the package.
 
 The variable @code{RUNTESTDEFAULTFLAGS} holds the @code{--tool} and
 @code{--srcdir} flags that are passed to dejagnu by default; this can be
 overridden if necessary.
 @vindex RUNTESTDEFAULTFLAGS
 
-The variables @code{EXPECT}, @code{RUNTEST} and @code{RUNTESTFLAGS} can
+The variables @code{EXPECT} and @code{RUNTEST} can
 also be overridden to provide project-specific values.  For instance,
 you will need to do this if you are testing a compiler toolchain,
 because the default values do not take into account host and target
@@ -2941,7 +3808,13 @@ names.
 @vindex DEJATOOL
 @vindex EXPECT
 @vindex RUNTEST
+
+The contents of the variable @code{RUNTESTFLAGS} are passed to the
address@hidden invocation.  This is considered a ``user variable''
+(@pxref{User Variables}).  If you need to set @code{runtest} flags in
address@hidden, you can use @code{AM_RUNTESTFLAGS} instead.
 @vindex RUNTESTFLAGS
address@hidden AM_RUNTESTFLAGS
 @c FIXME xref dejagnu
 
 In either case, the testing is done via @samp{make check}.
@@ -2959,7 +3832,7 @@ Various features of Automake can be controlled by options 
in the
 @item @code{gnits}
 @itemx @code{gnu}
 @itemx @code{foreign}
address@hidden @code{cygnus}
address@hidden @code{cygnus}
 @cindex Option, gnits
 @cindex Option, gnu
 @cindex Option, foreign
@@ -2969,13 +3842,13 @@ Set the strictness as appropriate.  The @code{gnits} 
option also implies
 @code{readme-alpha} and @code{check-news}.
 
 @item @code{ansi2knr}
address@hidden @code{path/ansi2knr}
address@hidden @address@hidden/ansi2knr}
 @cindex Option, ansi2knr
 Turn on automatic de-ANSI-fication.  @xref{ANSI}.  If preceded by a
 path, the generated @file{Makefile.in} will look in the specified
-directory to find the @file{ansi2knr} program.  Generally the path
-should be a relative path to another directory in the same distribution
-(though Automake currently does not check this).
+directory to find the @file{ansi2knr} program.  The path should be a
+relative path to another directory in the same distribution (Automake
+currently does not check this).
 
 @item @code{check-news}
 @cindex Option, check-news
@@ -2986,6 +3859,14 @@ in the first few lines of the @file{NEWS} file.
 @cindex Option, dejagnu
 Cause @code{dejagnu}-specific rules to be generated.  @xref{Tests}.
 
address@hidden @code{dist-bzip2}
address@hidden Option, dist-bzip2
+Generate a @code{dist-bzip2} target as well as the ordinary @code{dist}
+target.  This new target will create a bzip2 tar archive of the
+distribution.  bzip2 archives are frequently smaller than even gzipped
+archives.
address@hidden dist-bzip2
+
 @item @code{dist-shar}
 @cindex Option, dist-shar
 Generate a @code{dist-shar} target as well as the ordinary @code{dist}
@@ -3003,9 +3884,7 @@ target.  This new target will create a zip archive of the 
distribution.
 @cindex Option, dist-tarZ
 Generate a @code{dist-tarZ} target as well as the ordinary @code{dist}
 target.  This new target will create a compressed tar archive of the
-distribution; a traditional @code{tar} and @code{compress} will be
-assumed.  Warning: if you are actually using @code{GNU tar}, then the
-generated archive might contain nonportable constructs.
+distribution.
 @trindex dist-tarZ
 
 @item @code{no-dependencies}
@@ -3015,6 +3894,16 @@ is useful for those situations where you don't have the 
necessary bits
 to make automatic dependency tracking work @xref{Dependencies}.  In this
 case the effect is to effectively disable automatic dependency tracking.
 
address@hidden @code{no-exeext}
address@hidden Option, no-exeext
+If your @file{Makefile.am} defines a target @samp{foo}, it will override
+a target named @samp{foo$(EXEEXT)}.  This is necessary when
address@hidden is found to be empty.  However, by default automake will
+generate an error for this use.  The @code{no-exeext} option will
+disable this error.  This is intended for use only where it is known in
+advance that the package will not be ported to Windows, or any other
+operating system using extensions on executables.
+
 @item @code{no-installinfo}
 @cindex Option, no-installinfo
 The generated @file{Makefile.in} will not cause info pages to be built
@@ -3032,6 +3921,11 @@ be available for optional installation.  This option is 
disallowed at
 @samp{GNU} strictness and above.
 @trindex install-man
 
address@hidden @code{nostdinc}
address@hidden Option, nostdinc
+This option can be used to disable the standard @samp{-I} options which
+are ordinarily automatically provided by Automake.
+
 @item @code{no-texinfo.tex}
 @cindex Option, no-texinfo
 Don't require @file{texinfo.tex}, even if there are texinfo files in
@@ -3048,6 +3942,13 @@ non-alpha releases.  The second form is
 @address@hidden@address@hidden, where @var{ALPHA} is a
 letter; it should be omitted for non-alpha releases.
 
address@hidden @code{subdir-objects}
+If this option is specified, then objects are placed into the
+subdirectory of the build directory corresponding to the subdirectory of
+the source file.  For instance if the source file is
address@hidden/file.cxx}, then the output file would be
address@hidden/file.o}.
+
 @item @var{version}
 @cindex Option, version
 A version number (e.g. @samp{0.30}) can be specified.  If Automake is not
@@ -3066,6 +3967,7 @@ There are a few rules and variables that didn't fit 
anywhere else.
 @menu
 * Tags::                        Interfacing to etags and mkid
 * Suffixes::                    Handling new file extensions
+* Multilibs::                   Support for multilibbing.
 @end menu
 
 
@@ -3086,9 +3988,10 @@ target file will be generated which, when run, will 
generate a
 @file{TAGS} file that includes by reference all @file{TAGS} files from
 subdirectories.
 
-Also, if the variable @code{ETAGS_ARGS} is defined, a @code{tags} target
-will be generated.  This variable is intended for use in directories
-which contain taggable source that @code{etags} does not understand.
+The @code{tags} target will also be generated if the variable
address@hidden is defined.  This variable is intended for use in
+directories which contain taggable source that @code{etags} does not
+understand.
 @vindex ETAGS_ARGS
 
 Here is how Automake generates tags for its source, and for nodes in its
@@ -3109,8 +4012,15 @@ Automake will also generate an @code{ID} target which 
will run
 directory-by-directory basis.
 @trindex id
 
+Automake also supports the @uref{http://www.gnu.org/software/global/,
+GNU Global Tags program}.  The @code{GTAGS} target runs Global Tags
+automatically and puts the result in the top build directory.  The
+variable @code{GTAGS_ARGS} holds arguments which are passed to
address@hidden
address@hidden GTAGS_ARGS
+
 
address@hidden Suffixes,  , Tags, Miscellaneous
address@hidden Suffixes, Multilibs, Tags, Miscellaneous
 @section Handling new file extensions
 
 @cindex Adding new SUFFIXES
@@ -3122,37 +4032,66 @@ notify GNU Make of the new suffixes.  This can be done 
by putting a list
 of new suffixes in the @code{SUFFIXES} variable.
 @vindex SUFFIXES
 
-For instance, currently Automake does not provide any Java support.  If
-you wrote a macro to generate @samp{.class} files from @samp{.java}
-source files, you would also need to add these suffixes to the list:
+For instance, suppose you had a compiler which could compile @samp{.foo}
+files to @samp{.o} files.  Then you would add @samp{.foo} to your suffix
+list:
 
 @example
-SUFFIXES = .java .class
+SUFFIXES = .foo
 @end example
 
+Then you could directly use a @samp{.foo} file in a @samp{_SOURCES}
+variable and expect the correct results:
+
address@hidden
+bin_PROGRAMS = doit
+doit_SOURCES = doit.foo
address@hidden example
+
+Any given @code{SUFFIXES} go at the start of the generated suffixes
+list, followed by automake generated suffixes not already in the list.
+
+
address@hidden Multilibs, , Suffixes, Miscellaneous
address@hidden Support for Multilibs
+
+Automake has support for an obscure feature called multilibs.  A
address@hidden is a library which is built for multiple different ABIs
+at a single time; each time the library is built with a different target
+flag combination.  This is only useful when the library is intended to
+be cross-compiled, and it is almost exclusively used for compiler
+support libraries.
+
+The multilib support is still experimental.  Only use it if you are
+familiar with multilibs and can debug problems you might encounter.
+
 
 @node Include, Conditionals, Miscellaneous, Top
 @chapter Include
 
 @cmindex include
-To include another file (perhaps for common rules),
-the following syntax is supported:
address@hidden Including Makefile fragment
address@hidden Makefile fragment, including
 
-include ($(srcdir)|$(top_srcdir))/filename
+Automake supports an @code{include} directive which can be used to
+include other @file{Makefile} fragments when @code{automake} is run.
+Note that these fragments are read and interpreted by @code{automake},
+not by @code{make}.  As with conditionals, @code{make} has no idea that
address@hidden is in use.
 
-Using files in the current directory:
address@hidden
-include $(srcdir)/Makefile.extra
address@hidden example
+There are two forms of @code{include}:
 
address@hidden
-include Makefile.generated
address@hidden example
address@hidden @code
address@hidden include $(srcdir)/file
+Include a fragment which is found relative to the current source
+directory.
 
-Using a file in the top level directory:
address@hidden
-include $(top_srcdir)/filename
address@hidden example
address@hidden include $(top_srcdir)/file
+Include a fragment which is found relative to the top source directory.
address@hidden table
+
+Note that if a fragment is included inside a conditional, then the
+condition applies to the entire contents of that fragment.
 
 
 @node Conditionals, Gnits, Include, Top
@@ -3165,15 +4104,20 @@ Automake supports a simple type of conditionals.
 @cvindex AM_CONDITIONAL
 Before using a conditional, you must define it by using
 @code{AM_CONDITIONAL} in the @code{configure.in} file (@pxref{Macros}).
-The @code{AM_CONDITIONAL} macro takes two arguments.
 
-The first argument to @code{AM_CONDITIONAL} is the name of the
-conditional.  This should be a simple string starting with a letter and
-containing only letters, digits, and underscores.
address@hidden AM_CONDITIONAL (@var{conditional}, @var{condition})
+The conditional name, @var{conditional}, should be a simple string
+starting with a letter and containing only letters, digits, and
+underscores.  It must be different from @samp{TRUE} and @samp{FALSE}
+which are reserved by Automake.
 
-The second argument to @code{AM_CONDITIONAL} is a shell condition,
-suitable for use in a shell @code{if} statement.  The condition is
-evaluated when @code{configure} is run.
+The shell @var{condition} (suitable for use in a shell @code{if}
+statement) is evaluated when @code{configure} is run.  Note that you
+must arrange for @emph{every} @code{AM_CONDITIONAL} to be invoked every
+time @code{configure} is run -- if @code{AM_CONDITIONAL} is run
+conditionally (e.g., in a shell @code{if} statement), then the result
+will confuse automake.
address@hidden defmac
 
 @cindex --enable-debug, example
 @cindex Example conditional --enable-debug
@@ -3213,9 +4157,23 @@ noinst_PROGRAMS = $(DBG)
 This trivial example could also be handled using EXTRA_PROGRAMS
 (@pxref{A Program}).
 
-You may only test a single variable in an @code{if} statement.  The
address@hidden statement may be omitted.  Conditionals may be nested to any
-depth.
+You may only test a single variable in an @code{if} statement, possibly
+negated using @samp{!}.  The @code{else} statement may be omitted.
+Conditionals may be nested to any depth.  You may specify an argument to
address@hidden in which case it must be the negation of the condition used
+for the current @code{if}.  Similarly you may specify the condition
+which is closed by an @code{end}:
+
address@hidden
+if DEBUG
+DBG = debug
+else !DEBUG
+DBG =
+endif !DEBUG
address@hidden example
+
address@hidden
+Unbalanced conditions are errors.
 
 Note that conditionals in Automake are not the same as conditionals in
 GNU Make.  Automake conditionals are checked at configure time by the
@@ -3267,10 +4225,6 @@ checks the following as well:
 updated to the current version.
 
 @item
-The file @file{COPYING.LIB} is prohibited.  The LGPL is apparently
-considered a failed experiment.
-
address@hidden
 @samp{VERSION} is checked to make sure its format complies with Gnits
 standards.
 @c FIXME xref when standards are finished
@@ -3295,10 +4249,14 @@ The file @file{THANKS} is required.
 
 @cindex Cygnus strictness
 
-Cygnus Solutions has slightly different rules for how a
address@hidden is to be constructed.  Passing @samp{--cygnus} to
address@hidden will cause any generated @file{Makefile.in} to comply
-with Cygnus rules.
+Some packages, notably GNU GCC and GNU gdb, have a build environment
+originally written at Cygnus Support (subsequently renamed Cygnus
+Solutions, and then later purchased by Red Hat).  Packages with this
+ancestry are sometimes referred to as ``Cygnus'' trees.
+
+A Cygnus tree has slightly different rules for how a @file{Makefile.in}
+is to be constructed.  Passing @samp{--cygnus} to @code{automake} will
+cause any generated @file{Makefile.in} to comply with Cygnus rules.
 
 Here are the precise effects of @samp{--cygnus}:
 
@@ -3314,9 +4272,8 @@ place that Automake cannot find.  This assumption is an 
artifact of how
 Cygnus packages are typically bundled.
 
 @item
address@hidden dist} will look for files in the build directory as well as
-the source directory.  This is required to support putting info files
-into the build directory.
address@hidden dist} is not supported, and the rules for it are not
+generated.  Cygnus-style trees use their own distribution mechanism.
 
 @item
 Certain tools will be searched for in the build tree as well as in the
@@ -3339,7 +4296,10 @@ The @code{check} target doesn't depend on @code{all}.
 @end itemize
 
 GNU maintainers are advised to use @samp{gnu} strictness in preference
-to the special Cygnus mode.
+to the special Cygnus mode.  Some day, perhaps, the differences between
+Cygnus trees and GNU trees will disappear (for instance, as GCC is made
+more standards compliant).  At that time the special Cygnus mode will be
+removed.
 
 
 @node Extending, Distributing, Cygnus, Top
@@ -3354,10 +4314,10 @@ worked around by simply adding some @code{make} targets 
and rules to
 
 There are some caveats to doing this.  Although you can overload a
 target already used by Automake, it is often inadvisable, particularly
-in the topmost directory of a non-flat package.  However, various useful
-targets have a @samp{-local} version you can specify in your
address@hidden  Automake will supplement the standard target with
-these user-supplied targets.
+in the topmost directory of a package with subdirectories.  However,
+various useful targets have a @samp{-local} version you can specify in
+your @file{Makefile.in}.  Automake will supplement the standard target
+with these user-supplied targets.
 
 @trindex  all-local
 @trindex  info-local
@@ -3416,7 +4376,7 @@ install-exec-hook:
 @c rules
 
 
address@hidden Distributing, Future, Extending, Top
address@hidden Distributing, Macro and Variable Index, Extending, Top
 @chapter Distributing @file{Makefile.in}s
 
 Automake places no restrictions on the distribution of the resulting
@@ -3425,41 +4385,13 @@ their work under terms like those of the GPL, but doing 
so is not
 required to use Automake.
 
 Some of the files that can be automatically installed via the
address@hidden switch do fall under the GPL; examine each file
-to see.
-
-
address@hidden Future, Macro and Variable Index, Distributing, Top
address@hidden Some ideas for the future
-
address@hidden Future directions
-
-Here are some things that might happen in the future:
-
address@hidden @bullet
address@hidden
-HTML support.
-
address@hidden
-The output will be cleaned up.  For instance, only variables which are
-actually used will appear in the generated @file{Makefile.in}.
-
address@hidden
-There will be support for automatically recoding a distribution.  The
-intent is to allow a maintainer to use whatever character set is most
-convenient locally, but for all distributions to be Unicode or
address@hidden 10646} with the UTF-8 encoding.
-
address@hidden Guile rewrite
-
address@hidden
-Rewrite in Guile.  This won't happen in the near future, but it will
-eventually happen.
address@hidden itemize
address@hidden switch do fall under the GPL.  However, these also
+have a special exception allowing you to distribute them with your
+package, regardless of the licensing you choose.
 
 
 @page
address@hidden Macro and Variable Index, General Index, Future, Top
address@hidden Macro and Variable Index, General Index, Distributing, Top
 @unnumbered Macro and Variable Index
 
 @printindex vr
diff --git a/clean-hdr.am b/clean-hdr.am
deleted file mode 100644
index e0d1170..0000000
--- a/clean-hdr.am
+++ /dev/null
@@ -1,25 +0,0 @@
-## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
-
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2, or (at your option)
-## any later version.
-
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-## 02111-1307, USA.
-mostlyclean-hdr:
-
-clean-hdr:
-
-distclean-hdr:
-       -rm -f @FILES@
-
-maintainer-clean-hdr:
diff --git a/clean-kr.am b/clean-kr.am
deleted file mode 100644
index f7f3f36..0000000
--- a/clean-kr.am
+++ /dev/null
@@ -1,25 +0,0 @@
-## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
-
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2, or (at your option)
-## any later version.
-
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-## 02111-1307, USA.
-mostlyclean-kr:
-       -rm -f *_.c
-
-clean-kr:
-
-distclean-kr:
-
-maintainer-clean-kr:
diff --git a/clean.am b/clean.am
deleted file mode 100644
index 67ec807..0000000
--- a/clean.am
+++ /dev/null
@@ -1,34 +0,0 @@
-## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996, 1998 Free Software Foundation, Inc.
-
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2, or (at your option)
-## any later version.
-
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-## 02111-1307, USA.
-
-## We must test each macro because it might be empty, and an empty "rm
-## -rf" command looks disturbing.  Also, the Solaris 2.4 "rm" will
-## return an error if there are no arguments other than "-f".
-mostlyclean-generic:
-MOSTLYCLEAN    -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
-
-clean-generic:
-CLEAN  -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
-       -rm -f Makefile $(CONFIG_CLEAN_FILES)
-       -rm -f config.cache config.log stamp-h stamp-h[0-9]*
-DISTCLEAN      -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
-
-maintainer-clean-generic:
-MAINTAINERCLEAN        -test -z "@MCFILES@" || rm -f @MFILES@
diff --git a/comp-vars.am b/comp-vars.am
deleted file mode 100644
index c7d773b..0000000
--- a/comp-vars.am
+++ /dev/null
@@ -1,22 +0,0 @@
-## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996, 1998 Free Software Foundation, Inc.
-
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2, or (at your option)
-## any later version.
-
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-## 02111-1307, USA.
-
-DEFS = @DEFS@ -I. -I$(srcdir) @CONFIG_INCLUDE_SPEC@
-CPPFLAGS = @CPPFLAGS@
-LDFLAGS = @LDFLAGS@
-LIBS = @LIBS@
diff --git a/compile.am b/compile.am
deleted file mode 100644
index 6e9f92a..0000000
--- a/compile.am
+++ /dev/null
@@ -1,43 +0,0 @@
-## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
-
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2, or (at your option)
-## any later version.
-
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-## 02111-1307, USA.
-NOTDEPEND.c.o:
-NOTDEPEND      $(COMPILE) -c $<
-
-OBJEXT# FIXME: We should only use cygpath when building on Windows,
-OBJEXT# and only if it is available.
-OBJEXT.c.obj:
-OBJEXT $(COMPILE) -c `cygpath -w $<`
-
-.s.o:
-       $(COMPILE) -c $<
-
-.S.o:
-       $(COMPILE) -c $<
-
-mostlyclean-compile:
-## Don't remove 'core.*' because some distributions have eg "core.c".
-## 4.4BSD systems use `PROG.core'.
-       -rm -f *.o core *.core
-OBJEXT -rm -f *.$(OBJEXT)
-
-clean-compile:
-
-distclean-compile:
-       -rm -f *.tab.c
-
-maintainer-clean-compile:
diff --git a/config.guess b/config.guess
deleted file mode 100755
index 4e5345f..0000000
--- a/config.guess
+++ /dev/null
@@ -1,973 +0,0 @@
-#! /bin/sh
-# Attempt to guess a canonical system name.
-#   Copyright (C) 1992, 93, 94, 95, 96, 97, 1998 Free Software Foundation, Inc.
-#
-# This file is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Written by Per Bothner <address@hidden>.
-# The master version of this file is at the FSF in /home/gd/gnu/lib.
-#
-# This script attempts to guess a canonical system name similar to
-# config.sub.  If it succeeds, it prints the system name on stdout, and
-# exits with 0.  Otherwise, it exits with 1.
-#
-# The plan is that this can be called by configure scripts if you
-# don't specify an explicit system type (host/target name).
-#
-# Only a few systems have been added to this list; please add others
-# (but try to keep the structure clean).
-#
-
-# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
-# (address@hidden 8/24/94.)
-if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
-       PATH=$PATH:/.attbin ; export PATH
-fi
-
-UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
-UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
-UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
-UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
-
-dummy=dummy-$$
-trap 'rm -f $dummy.c $dummy.o $dummy; exit 1' 1 2 15
-
-# Note: order is significant - the case branches are not exclusive.
-
-case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
-    alpha:OSF1:*:*)
-       if test $UNAME_RELEASE = "V4.0"; then
-               UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
-       fi
-       # A Vn.n version is a released version.
-       # A Tn.n version is a released field test version.
-       # A Xn.n version is an unreleased experimental baselevel.
-       # 1.2 uses "1.2" for uname -r.
-       cat <<EOF >$dummy.s
-       .globl main
-       .ent main
-main:
-       .frame \$30,0,\$26,0
-       .prologue 0
-       .long 0x47e03d80 # implver $0
-       lda \$2,259
-       .long 0x47e20c21 # amask $2,$1
-       srl \$1,8,\$2
-       sll \$2,2,\$2
-       sll \$0,3,\$0
-       addl \$1,\$0,\$0
-       addl \$2,\$0,\$0
-       ret \$31,(\$26),1
-       .end main
-EOF
-       ${CC-cc} $dummy.s -o $dummy 2>/dev/null
-       if test "$?" = 0 ; then
-               ./$dummy
-               case "$?" in
-                       7)
-                               UNAME_MACHINE="alpha"
-                               ;;
-                       15)
-                               UNAME_MACHINE="alphaev5"
-                               ;;
-                       14)
-                               UNAME_MACHINE="alphaev56"
-                               ;;
-                       10)
-                               UNAME_MACHINE="alphapca56"
-                               ;;
-                       16)
-                               UNAME_MACHINE="alphaev6"
-                               ;;
-               esac
-       fi
-       rm -f $dummy.s $dummy
-       echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 
's/^[VTX]//' | tr [[A-Z]] [[a-z]]`
-       exit 0 ;;
-    21064:Windows_NT:50:3)
-       echo alpha-dec-winnt3.5
-       exit 0 ;;
-    Amiga*:UNIX_System_V:4.0:*)
-       echo m68k-cbm-sysv4
-       exit 0;;
-    amiga:NetBSD:*:*)
-      echo m68k-cbm-netbsd${UNAME_RELEASE}
-      exit 0 ;;
-    amiga:OpenBSD:*:*)
-       echo m68k-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    *:[Aa]miga[Oo][Ss]:*:*)
-       echo ${UNAME_MACHINE}-unknown-amigaos
-       exit 0 ;;
-    arc64:OpenBSD:*:*)
-       echo mips64el-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    arc:OpenBSD:*:*)
-       echo mipsel-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    hkmips:OpenBSD:*:*)
-       echo mips-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    pmax:OpenBSD:*:*)
-       echo mipsel-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    sgi:OpenBSD:*:*)
-       echo mips-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    wgrisc:OpenBSD:*:*)
-       echo mipsel-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
-       echo arm-acorn-riscix${UNAME_RELEASE}
-       exit 0;;
-    arm32:NetBSD:*:*)
-       echo arm-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
-       exit 0 ;;
-    SR2?01:HI-UX/MPP:*:*)
-       echo hppa1.1-hitachi-hiuxmpp
-       exit 0;;
-    Pyramid*:OSx*:*:*|MIS*:OSx*:*:*|MIS*:SMP_DC-OSx*:*:*)
-       # address@hidden (Earle F. Ake) contributed MIS and NILE.
-       if test "`(/bin/universe) 2>/dev/null`" = att ; then
-               echo pyramid-pyramid-sysv3
-       else
-               echo pyramid-pyramid-bsd
-       fi
-       exit 0 ;;
-    NILE:*:*:dcosx)
-       echo pyramid-pyramid-svr4
-       exit 0 ;;
-    sun4H:SunOS:5.*:*)
-       echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-       exit 0 ;;
-    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
-       echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-       exit 0 ;;
-    i86pc:SunOS:5.*:*)
-       echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-       exit 0 ;;
-    sun4*:SunOS:6*:*)
-       # According to config.sub, this is the proper way to canonicalize
-       # SunOS6.  Hard to guess exactly what SunOS6 will be like, but
-       # it's likely to be more like Solaris than SunOS4.
-       echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-       exit 0 ;;
-    sun4*:SunOS:*:*)
-       case "`/usr/bin/arch -k`" in
-           Series*|S4*)
-               UNAME_RELEASE=`uname -v`
-               ;;
-       esac
-       # Japanese Language versions have a version number like `4.1.3-JL'.
-       echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
-       exit 0 ;;
-    sun3*:SunOS:*:*)
-       echo m68k-sun-sunos${UNAME_RELEASE}
-       exit 0 ;;
-    sun*:*:4.2BSD:*)
-       UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 
2>/dev/null`
-       test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
-       case "`/bin/arch`" in
-           sun3)
-               echo m68k-sun-sunos${UNAME_RELEASE}
-               ;;
-           sun4)
-               echo sparc-sun-sunos${UNAME_RELEASE}
-               ;;
-       esac
-       exit 0 ;;
-    aushp:SunOS:*:*)
-       echo sparc-auspex-sunos${UNAME_RELEASE}
-       exit 0 ;;
-    atari*:NetBSD:*:*)
-       echo m68k-atari-netbsd${UNAME_RELEASE}
-       exit 0 ;;
-    atari*:OpenBSD:*:*)
-       echo m68k-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    sun3*:NetBSD:*:*)
-       echo m68k-sun-netbsd${UNAME_RELEASE}
-       exit 0 ;;
-    sun3*:OpenBSD:*:*)
-       echo m68k-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    mac68k:NetBSD:*:*)
-       echo m68k-apple-netbsd${UNAME_RELEASE}
-       exit 0 ;;
-    mac68k:OpenBSD:*:*)
-       echo m68k-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    mvme68k:OpenBSD:*:*)
-       echo m68k-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    mvme88k:OpenBSD:*:*)
-       echo m88k-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    powerpc:machten:*:*)
-       echo powerpc-apple-machten${UNAME_RELEASE}
-       exit 0 ;;
-    macppc:NetBSD:*:*)
-        echo powerpc-apple-netbsd${UNAME_RELEASE}
-        exit 0 ;;
-    RISC*:Mach:*:*)
-       echo mips-dec-mach_bsd4.3
-       exit 0 ;;
-    RISC*:ULTRIX:*:*)
-       echo mips-dec-ultrix${UNAME_RELEASE}
-       exit 0 ;;
-    VAX*:ULTRIX*:*:*)
-       echo vax-dec-ultrix${UNAME_RELEASE}
-       exit 0 ;;
-    2020:CLIX:*:*)
-       echo clipper-intergraph-clix${UNAME_RELEASE}
-       exit 0 ;;
-    mips:*:*:UMIPS | mips:*:*:RISCos)
-       sed 's/^        //' << EOF >$dummy.c
-       int main (argc, argv) int argc; char **argv; {
-       #if defined (host_mips) && defined (MIPSEB)
-       #if defined (SYSTYPE_SYSV)
-         printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
-       #endif
-       #if defined (SYSTYPE_SVR4)
-         printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
-       #endif
-       #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
-         printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
-       #endif
-       #endif
-         exit (-1);
-       }
-EOF
-       ${CC-cc} $dummy.c -o $dummy \
-         && ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
-         && rm $dummy.c $dummy && exit 0
-       rm -f $dummy.c $dummy
-       echo mips-mips-riscos${UNAME_RELEASE}
-       exit 0 ;;
-    Night_Hawk:Power_UNIX:*:*)
-       echo powerpc-harris-powerunix
-       exit 0 ;;
-    m88k:CX/UX:7*:*)
-       echo m88k-harris-cxux7
-       exit 0 ;;
-    m88k:*:4*:R4*)
-       echo m88k-motorola-sysv4
-       exit 0 ;;
-    m88k:*:3*:R3*)
-       echo m88k-motorola-sysv3
-       exit 0 ;;
-    AViiON:dgux:*:*)
-        # DG/UX returns AViiON for all architectures
-        UNAME_PROCESSOR=`/usr/bin/uname -p`
-        if [ $UNAME_PROCESSOR = mc88100 -o $UNAME_PROCESSOR = mc88110 ] ; then
-       if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx \
-            -o ${TARGET_BINARY_INTERFACE}x = x ] ; then
-               echo m88k-dg-dgux${UNAME_RELEASE}
-       else
-               echo m88k-dg-dguxbcs${UNAME_RELEASE}
-       fi
-        else echo i586-dg-dgux${UNAME_RELEASE}
-        fi
-       exit 0 ;;
-    M88*:DolphinOS:*:*)        # DolphinOS (SVR3)
-       echo m88k-dolphin-sysv3
-       exit 0 ;;
-    M88*:*:R3*:*)
-       # Delta 88k system running SVR3
-       echo m88k-motorola-sysv3
-       exit 0 ;;
-    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
-       echo m88k-tektronix-sysv3
-       exit 0 ;;
-    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
-       echo m68k-tektronix-bsd
-       exit 0 ;;
-    *:IRIX*:*:*)
-       echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
-       exit 0 ;;
-    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
-       echo romp-ibm-aix      # uname -m gives an 8 hex-code CPU id
-       exit 0 ;;              # Note that: echo "'`uname -s`'" gives 'AIX '
-    i?86:AIX:*:*)
-       echo i386-ibm-aix
-       exit 0 ;;
-    *:AIX:2:3)
-       if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
-               sed 's/^                //' << EOF >$dummy.c
-               #include <sys/systemcfg.h>
-
-               main()
-                       {
-                       if (!__power_pc())
-                               exit(1);
-                       puts("powerpc-ibm-aix3.2.5");
-                       exit(0);
-                       }
-EOF
-               ${CC-cc} $dummy.c -o $dummy && ./$dummy && rm $dummy.c $dummy 
&& exit 0
-               rm -f $dummy.c $dummy
-               echo rs6000-ibm-aix3.2.5
-       elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
-               echo rs6000-ibm-aix3.2.4
-       else
-               echo rs6000-ibm-aix3.2
-       fi
-       exit 0 ;;
-    *:AIX:*:4)
-       IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | 
awk '{ print $1 }'`
-       if /usr/sbin/lsattr -EHl ${IBM_CPU_ID} | grep POWER >/dev/null 2>&1; 
then
-               IBM_ARCH=rs6000
-       else
-               IBM_ARCH=powerpc
-       fi
-       if [ -x /usr/bin/oslevel ] ; then
-               IBM_REV=`/usr/bin/oslevel`
-       else
-               IBM_REV=4.${UNAME_RELEASE}
-       fi
-       echo ${IBM_ARCH}-ibm-aix${IBM_REV}
-       exit 0 ;;
-    *:AIX:*:*)
-       echo rs6000-ibm-aix
-       exit 0 ;;
-    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
-       echo romp-ibm-bsd4.4
-       exit 0 ;;
-    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC NetBSD and
-       echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
-       exit 0 ;;                           # report: romp-ibm BSD 4.3
-    *:BOSX:*:*)
-       echo rs6000-bull-bosx
-       exit 0 ;;
-    DPX/2?00:B.O.S.:*:*)
-       echo m68k-bull-sysv3
-       exit 0 ;;
-    9000/[34]??:4.3bsd:1.*:*)
-       echo m68k-hp-bsd
-       exit 0 ;;
-    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
-       echo m68k-hp-bsd4.4
-       exit 0 ;;
-    9000/[34678]??:HP-UX:*:*)
-       case "${UNAME_MACHINE}" in
-           9000/31? )            HP_ARCH=m68000 ;;
-           9000/[34]?? )         HP_ARCH=m68k ;;
-           9000/6?? | 9000/7?? | 9000/80[24] | 9000/8?[13679] | 9000/892 )
-              sed 's/^              //' << EOF >$dummy.c
-              #include <stdlib.h>
-              #include <unistd.h>
-              
-              int main ()
-              {
-              #if defined(_SC_KERNEL_BITS)
-                  long bits = sysconf(_SC_KERNEL_BITS);
-              #endif 
-                  long cpu  = sysconf (_SC_CPU_VERSION);
-              
-                  switch (cpu) 
-               {
-               case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
-               case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
-               case CPU_PA_RISC2_0: 
-              #if defined(_SC_KERNEL_BITS)
-                   switch (bits) 
-                       {
-                       case 64: puts ("hppa2.0w"); break;
-                       case 32: puts ("hppa2.0n"); break;
-                       default: puts ("hppa2.0"); break;
-                       } break;
-              #else  /* !defined(_SC_KERNEL_BITS) */
-                   puts ("hppa2.0"); break;
-              #endif 
-               default: puts ("hppa1.0"); break;
-               }
-                  exit (0);
-              }
-EOF
-       (${CC-cc} $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy`
-       rm -f $dummy.c $dummy
-       esac
-       HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
-       echo ${HP_ARCH}-hp-hpux${HPUX_REV}
-       exit 0 ;;
-    3050*:HI-UX:*:*)
-       sed 's/^        //' << EOF >$dummy.c
-       #include <unistd.h>
-       int
-       main ()
-       {
-         long cpu = sysconf (_SC_CPU_VERSION);
-         /* The order matters, because CPU_IS_HP_MC68K erroneously returns
-            true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
-            results, however.  */
-         if (CPU_IS_PA_RISC (cpu))
-           {
-             switch (cpu)
-               {
-                 case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
-                 case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
-                 case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
-                 default: puts ("hppa-hitachi-hiuxwe2"); break;
-               }
-           }
-         else if (CPU_IS_HP_MC68K (cpu))
-           puts ("m68k-hitachi-hiuxwe2");
-         else puts ("unknown-hitachi-hiuxwe2");
-         exit (0);
-       }
-EOF
-       ${CC-cc} $dummy.c -o $dummy && ./$dummy && rm $dummy.c $dummy && exit 0
-       rm -f $dummy.c $dummy
-       echo unknown-hitachi-hiuxwe2
-       exit 0 ;;
-    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
-       echo hppa1.1-hp-bsd
-       exit 0 ;;
-    9000/8??:4.3bsd:*:*)
-       echo hppa1.0-hp-bsd
-       exit 0 ;;
-    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
-       echo hppa1.1-hp-osf
-       exit 0 ;;
-    hp8??:OSF1:*:*)
-       echo hppa1.0-hp-osf
-       exit 0 ;;
-    i?86:OSF1:*:*)
-       if [ -x /usr/sbin/sysversion ] ; then
-           echo ${UNAME_MACHINE}-unknown-osf1mk
-       else
-           echo ${UNAME_MACHINE}-unknown-osf1
-       fi
-       exit 0 ;;
-    parisc*:Lites*:*:*)
-       echo hppa1.1-hp-lites
-       exit 0 ;;
-    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
-       echo c1-convex-bsd
-        exit 0 ;;
-    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
-       if getsysinfo -f scalar_acc
-       then echo c32-convex-bsd
-       else echo c2-convex-bsd
-       fi
-        exit 0 ;;
-    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
-       echo c34-convex-bsd
-        exit 0 ;;
-    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
-       echo c38-convex-bsd
-        exit 0 ;;
-    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
-       echo c4-convex-bsd
-        exit 0 ;;
-    CRAY*X-MP:*:*:*)
-       echo xmp-cray-unicos
-        exit 0 ;;
-    CRAY*Y-MP:*:*:*)
-       echo ymp-cray-unicos${UNAME_RELEASE}
-       exit 0 ;;
-    CRAY*[A-Z]90:*:*:*)
-       echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
-       | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
-             -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/
-       exit 0 ;;
-    CRAY*TS:*:*:*)
-       echo t90-cray-unicos${UNAME_RELEASE}
-       exit 0 ;;
-    CRAY*T3E:*:*:*)
-       echo t3e-cray-unicosmk${UNAME_RELEASE}
-       exit 0 ;;
-    CRAY-2:*:*:*)
-       echo cray2-cray-unicos
-        exit 0 ;;
-    F300:UNIX_System_V:*:*)
-        FUJITSU_SYS=`uname -p | tr [A-Z] [a-z] | sed -e 's/\///'`
-        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
-        echo "f300-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
-        exit 0 ;;
-    F301:UNIX_System_V:*:*)
-       echo f301-fujitsu-uxpv`echo $UNAME_RELEASE | sed 's/ .*//'`
-       exit 0 ;;
-    hp3[0-9][05]:NetBSD:*:*)
-       echo m68k-hp-netbsd${UNAME_RELEASE}
-       exit 0 ;;
-    hp300:OpenBSD:*:*)
-       echo m68k-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    sparc*:BSD/OS:*:*)
-       echo sparc-unknown-bsdi${UNAME_RELEASE}
-       exit 0 ;;
-    i?86:BSD/386:*:* | i?86:BSD/OS:*:*)
-       echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
-       exit 0 ;;
-    *:BSD/OS:*:*)
-       echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
-       exit 0 ;;
-    *:FreeBSD:*:*)
-       echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 
's/[-(].*//'`
-       exit 0 ;;
-    *:NetBSD:*:*)
-       echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 
's/[-_].*/\./'`
-       exit 0 ;;
-    *:OpenBSD:*:*)
-       echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 
's/[-_].*/\./'`
-       exit 0 ;;
-    i*:CYGWIN*:*)
-       echo ${UNAME_MACHINE}-pc-cygwin
-       exit 0 ;;
-    i*:MINGW*:*)
-       echo ${UNAME_MACHINE}-pc-mingw32
-       exit 0 ;;
-    p*:CYGWIN*:*)
-       echo powerpcle-unknown-cygwin
-       exit 0 ;;
-    prep*:SunOS:5.*:*)
-       echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 
's/[^.]*//'`
-       exit 0 ;;
-    *:GNU:*:*)
-       echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo 
${UNAME_RELEASE}|sed -e 's,/.*$,,'`
-       exit 0 ;;
-    *:Linux:*:*)
-       # uname on the ARM produces all sorts of strangeness, and we need to
-       # filter it out.
-       case "$UNAME_MACHINE" in
-         arm* | sa110*)              UNAME_MACHINE="arm" ;;
-       esac
-
-       # The BFD linker knows what the default object file format is, so
-       # first see if it will tell us.
-       ld_help_string=`ld --help 2>&1`
-       ld_supported_emulations=`echo $ld_help_string \
-                        | sed -ne '/supported emulations:/!d
-                                   s/[         ][      ]*/ /g
-                                   s/.*supported emulations: *//
-                                   s/ .*//
-                                   p'`
-        case "$ld_supported_emulations" in
-         i?86linux)  echo "${UNAME_MACHINE}-pc-linux-gnuaout"      ; exit 0 ;;
-         i?86coff)   echo "${UNAME_MACHINE}-pc-linux-gnucoff"      ; exit 0 ;;
-         sparclinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;;
-         armlinux)   echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;;
-         m68klinux)  echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;;
-         elf32ppc)   echo "powerpc-unknown-linux-gnu"              ; exit 0 ;;
-       esac
-
-       if test "${UNAME_MACHINE}" = "alpha" ; then
-               sed 's/^        //'  <<EOF >$dummy.s
-               .globl main
-               .ent main
-       main:
-               .frame \$30,0,\$26,0
-               .prologue 0
-               .long 0x47e03d80 # implver $0
-               lda \$2,259
-               .long 0x47e20c21 # amask $2,$1
-               srl \$1,8,\$2
-               sll \$2,2,\$2
-               sll \$0,3,\$0
-               addl \$1,\$0,\$0
-               addl \$2,\$0,\$0
-               ret \$31,(\$26),1
-               .end main
-EOF
-               LIBC=""
-               ${CC-cc} $dummy.s -o $dummy 2>/dev/null
-               if test "$?" = 0 ; then
-                       ./$dummy
-                       case "$?" in
-                       7)
-                               UNAME_MACHINE="alpha"
-                               ;;
-                       15)
-                               UNAME_MACHINE="alphaev5"
-                               ;;
-                       14)
-                               UNAME_MACHINE="alphaev56"
-                               ;;
-                       10)
-                               UNAME_MACHINE="alphapca56"
-                               ;;
-                       16)
-                               UNAME_MACHINE="alphaev6"
-                               ;;
-                       esac    
-
-                       objdump --private-headers $dummy | \
-                         grep ld.so.1 > /dev/null
-                       if test "$?" = 0 ; then
-                               LIBC="libc1"
-                       fi
-               fi      
-               rm -f $dummy.s $dummy
-               echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ; exit 0
-       elif test "${UNAME_MACHINE}" = "mips" ; then
-         cat >$dummy.c <<EOF
-main(argc, argv)
-     int argc;
-     char *argv[];
-{
-#ifdef __MIPSEB__
-  printf ("%s-unknown-linux-gnu\n", argv[1]);
-#endif
-#ifdef __MIPSEL__
-  printf ("%sel-unknown-linux-gnu\n", argv[1]);
-#endif
-  return 0;
-}
-EOF
-         ${CC-cc} $dummy.c -o $dummy 2>/dev/null && ./$dummy 
"${UNAME_MACHINE}" && rm $dummy.c $dummy && exit 0
-         rm -f $dummy.c $dummy
-       else
-         # Either a pre-BFD a.out linker (linux-gnuoldld)
-         # or one that does not give us useful --help.
-         # GCC wants to distinguish between linux-gnuoldld and linux-gnuaout.
-         # If ld does not provide *any* "supported emulations:"
-         # that means it is gnuoldld.
-         echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations:"
-         test $? != 0 && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0
-
-         case "${UNAME_MACHINE}" in
-         i?86)
-           VENDOR=pc;
-           ;;
-         *)
-           VENDOR=unknown;
-           ;;
-         esac
-         # Determine whether the default compiler is a.out or elf
-         cat >$dummy.c <<EOF
-#include <features.h>
-main(argc, argv)
-     int argc;
-     char *argv[];
-{
-#ifdef __ELF__
-# ifdef __GLIBC__
-#  if __GLIBC__ >= 2
-    printf ("%s-${VENDOR}-linux-gnu\n", argv[1]);
-#  else
-    printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]);
-#  endif
-# else
-   printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]);
-# endif
-#else
-  printf ("%s-${VENDOR}-linux-gnuaout\n", argv[1]);
-#endif
-  return 0;
-}
-EOF
-         ${CC-cc} $dummy.c -o $dummy 2>/dev/null && ./$dummy 
"${UNAME_MACHINE}" && rm $dummy.c $dummy && exit 0
-         rm -f $dummy.c $dummy
-       fi ;;
-# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.  earlier versions
-# are messed up and put the nodename in both sysname and nodename.
-    i?86:DYNIX/ptx:4*:*)
-       echo i386-sequent-sysv4
-       exit 0 ;;
-    i?86:UNIX_SV:4.2MP:2.*)
-        # Unixware is an offshoot of SVR4, but it has its own version
-        # number series starting with 2...
-        # I am not positive that other SVR4 systems won't match this,
-       # I just have to hope.  -- rms.
-        # Use sysv4.2uw... so that sysv4* matches it.
-       echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
-       exit 0 ;;
-    i?86:*:4.*:* | i?86:SYSTEM_V:4.*:*)
-       if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
-               echo ${UNAME_MACHINE}-univel-sysv${UNAME_RELEASE}
-       else
-               echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE}
-       fi
-       exit 0 ;;
-    i?86:*:3.2:*)
-       if test -f /usr/options/cb.name; then
-               UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
-               echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
-       elif /bin/uname -X 2>/dev/null >/dev/null ; then
-               UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')`
-               (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486
-               (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \
-                       && UNAME_MACHINE=i586
-               echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
-       else
-               echo ${UNAME_MACHINE}-pc-sysv32
-       fi
-       exit 0 ;;
-    i?86:UnixWare:*:*)
-       if /bin/uname -X 2>/dev/null >/dev/null ; then
-         (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \
-           && UNAME_MACHINE=i586
-       fi
-       echo ${UNAME_MACHINE}-unixware-${UNAME_RELEASE}-${UNAME_VERSION}
-       exit 0 ;;
-    pc:*:*:*)
-        # uname -m prints for DJGPP always 'pc', but it prints nothing about
-        # the processor, so we play safe by assuming i386.
-       echo i386-pc-msdosdjgpp
-        exit 0 ;;
-    Intel:Mach:3*:*)
-       echo i386-pc-mach3
-       exit 0 ;;
-    paragon:*:*:*)
-       echo i860-intel-osf1
-       exit 0 ;;
-    i860:*:4.*:*) # i860-SVR4
-       if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
-         echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
-       else # Add other i860-SVR4 vendors below as they are discovered.
-         echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
-       fi
-       exit 0 ;;
-    mini*:CTIX:SYS*5:*)
-       # "miniframe"
-       echo m68010-convergent-sysv
-       exit 0 ;;
-    M68*:*:R3V[567]*:*)
-       test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
-    3[34]??:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0)
-       OS_REL=''
-       test -r /etc/.relid \
-       && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
-       /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-         && echo i486-ncr-sysv4.3${OS_REL} && exit 0
-       /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
-         && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
-    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
-        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-          && echo i486-ncr-sysv4 && exit 0 ;;
-    m68*:LynxOS:2.*:*)
-       echo m68k-unknown-lynxos${UNAME_RELEASE}
-       exit 0 ;;
-    mc68030:UNIX_System_V:4.*:*)
-       echo m68k-atari-sysv4
-       exit 0 ;;
-    i?86:LynxOS:2.*:*)
-       echo i386-unknown-lynxos${UNAME_RELEASE}
-       exit 0 ;;
-    TSUNAMI:LynxOS:2.*:*)
-       echo sparc-unknown-lynxos${UNAME_RELEASE}
-       exit 0 ;;
-    rs6000:LynxOS:2.*:* | PowerPC:LynxOS:2.*:*)
-       echo rs6000-unknown-lynxos${UNAME_RELEASE}
-       exit 0 ;;
-    SM[BE]S:UNIX_SV:*:*)
-       echo mips-dde-sysv${UNAME_RELEASE}
-       exit 0 ;;
-    RM*:SINIX-*:*:*)
-       echo mips-sni-sysv4
-       exit 0 ;;
-    *:SINIX-*:*:*)
-       if uname -p 2>/dev/null >/dev/null ; then
-               UNAME_MACHINE=`(uname -p) 2>/dev/null`
-               echo ${UNAME_MACHINE}-sni-sysv4
-       else
-               echo ns32k-sni-sysv
-       fi
-       exit 0 ;;
-    PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
-                           # says <address@hidden>
-        echo i586-unisys-sysv4
-        exit 0 ;;
-    *:UNIX_System_V:4*:FTX*)
-       # From Gerald Hewes <address@hidden>.
-       # How about differentiating between stratus architectures? -djm
-       echo hppa1.1-stratus-sysv4
-       exit 0 ;;
-    *:*:*:FTX*)
-       # From address@hidden
-       echo i860-stratus-sysv4
-       exit 0 ;;
-    mc68*:A/UX:*:*)
-       echo m68k-apple-aux${UNAME_RELEASE}
-       exit 0 ;;
-    news*:NEWS-OS:*:6*)
-       echo mips-sony-newsos6
-       exit 0 ;;
-    R3000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R4000:UNIX_SV:*:*)
-       if [ -d /usr/nec ]; then
-               echo mips-nec-sysv${UNAME_RELEASE}
-       else
-               echo mips-unknown-sysv${UNAME_RELEASE}
-       fi
-        exit 0 ;;
-    BeBox:BeOS:*:*)    # BeOS running on hardware made by Be, PPC only.
-       echo powerpc-be-beos
-       exit 0 ;;
-    BeMac:BeOS:*:*)    # BeOS running on Mac or Mac clone, PPC only.
-       echo powerpc-apple-beos
-       exit 0 ;;
-    BePC:BeOS:*:*)     # BeOS running on Intel PC compatible.
-       echo i586-pc-beos
-       exit 0 ;;
-    SX-4:SUPER-UX:*:*)
-       echo sx4-nec-superux${UNAME_RELEASE}
-       exit 0 ;;
-    SX-5:SUPER-UX:*:*)
-       echo sx5-nec-superux${UNAME_RELEASE}
-       exit 0 ;;
-    Power*:Rhapsody:*:*)
-       echo powerpc-apple-rhapsody${UNAME_RELEASE}
-       exit 0 ;;
-    *:Rhapsody:*:*)
-       echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
-       exit 0 ;;
-esac
-
-#echo '(No uname command or uname output not recognized.)' 1>&2
-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
-
-cat >$dummy.c <<EOF
-#ifdef _SEQUENT_
-# include <sys/types.h>
-# include <sys/utsname.h>
-#endif
-main ()
-{
-#if defined (sony)
-#if defined (MIPSEB)
-  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
-     I don't know....  */
-  printf ("mips-sony-bsd\n"); exit (0);
-#else
-#include <sys/param.h>
-  printf ("m68k-sony-newsos%s\n",
-#ifdef NEWSOS4
-          "4"
-#else
-         ""
-#endif
-         ); exit (0);
-#endif
-#endif
-
-#if defined (__arm) && defined (__acorn) && defined (__unix)
-  printf ("arm-acorn-riscix"); exit (0);
-#endif
-
-#if defined (hp300) && !defined (hpux)
-  printf ("m68k-hp-bsd\n"); exit (0);
-#endif
-
-#if defined (NeXT)
-#if !defined (__ARCHITECTURE__)
-#define __ARCHITECTURE__ "m68k"
-#endif
-  int version;
-  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
-  if (version < 4)
-    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
-  else
-    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
-  exit (0);
-#endif
-
-#if defined (MULTIMAX) || defined (n16)
-#if defined (UMAXV)
-  printf ("ns32k-encore-sysv\n"); exit (0);
-#else
-#if defined (CMU)
-  printf ("ns32k-encore-mach\n"); exit (0);
-#else
-  printf ("ns32k-encore-bsd\n"); exit (0);
-#endif
-#endif
-#endif
-
-#if defined (__386BSD__)
-  printf ("i386-pc-bsd\n"); exit (0);
-#endif
-
-#if defined (sequent)
-#if defined (i386)
-  printf ("i386-sequent-dynix\n"); exit (0);
-#endif
-#if defined (ns32000)
-  printf ("ns32k-sequent-dynix\n"); exit (0);
-#endif
-#endif
-
-#if defined (_SEQUENT_)
-    struct utsname un;
-
-    uname(&un);
-
-    if (strncmp(un.version, "V2", 2) == 0) {
-       printf ("i386-sequent-ptx2\n"); exit (0);
-    }
-    if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
-       printf ("i386-sequent-ptx1\n"); exit (0);
-    }
-    printf ("i386-sequent-ptx\n"); exit (0);
-
-#endif
-
-#if defined (vax)
-#if !defined (ultrix)
-  printf ("vax-dec-bsd\n"); exit (0);
-#else
-  printf ("vax-dec-ultrix\n"); exit (0);
-#endif
-#endif
-
-#if defined (alliant) && defined (i860)
-  printf ("i860-alliant-bsd\n"); exit (0);
-#endif
-
-  exit (1);
-}
-EOF
-
-${CC-cc} $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm $dummy.c $dummy && 
exit 0
-rm -f $dummy.c $dummy
-
-# Apollos put the system type in the environment.
-
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
-
-# Convex versions that predate uname can use getsysinfo(1)
-
-if [ -x /usr/convex/getsysinfo ]
-then
-    case `getsysinfo -f cpu_type` in
-    c1*)
-       echo c1-convex-bsd
-       exit 0 ;;
-    c2*)
-       if getsysinfo -f scalar_acc
-       then echo c32-convex-bsd
-       else echo c2-convex-bsd
-       fi
-       exit 0 ;;
-    c34*)
-       echo c34-convex-bsd
-       exit 0 ;;
-    c38*)
-       echo c38-convex-bsd
-       exit 0 ;;
-    c4*)
-       echo c4-convex-bsd
-       exit 0 ;;
-    esac
-fi
-
-#echo '(Unable to guess system type)' 1>&2
-
-exit 1
diff --git a/config.sub b/config.sub
deleted file mode 100644
index da8b7ae..0000000
--- a/config.sub
+++ /dev/null
@@ -1,956 +0,0 @@
-#! /bin/sh
-# Configuration validation subroutine script, version 1.1.
-#   Copyright (C) 1991, 92-97, 1998 Free Software Foundation, Inc.
-# This file is (in principle) common to ALL GNU software.
-# The presence of a machine in this file suggests that SOME GNU software
-# can handle that machine.  It does not imply ALL GNU software can.
-#
-# This file is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Configuration subroutine to validate and canonicalize a configuration type.
-# Supply the specified configuration type as an argument.
-# If it is invalid, we print an error message on stderr and exit with code 1.
-# Otherwise, we print the canonical config type on stdout and succeed.
-
-# This file is supposed to be the same for all GNU packages
-# and recognize all the CPU types, system types and aliases
-# that are meaningful with *any* GNU software.
-# Each package is responsible for reporting which valid configurations
-# it does not support.  The user should be able to distinguish
-# a failure to support a valid configuration from a meaningless
-# configuration.
-
-# The goal of this file is to map all the various variations of a given
-# machine specification into a single specification in the form:
-#      CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
-# or in some cases, the newer four-part form:
-#      CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
-# It is wrong to echo any other type of specification.
-
-if [ x$1 = x ]
-then
-       echo Configuration name missing. 1>&2
-       echo "Usage: $0 CPU-MFR-OPSYS" 1>&2
-       echo "or     $0 ALIAS" 1>&2
-       echo where ALIAS is a recognized configuration type. 1>&2
-       exit 1
-fi
-
-# First pass through any local machine types.
-case $1 in
-       *local*)
-               echo $1
-               exit 0
-               ;;
-       *)
-       ;;
-esac
-
-# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
-# Here we must recognize all the valid KERNEL-OS combinations.
-maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
-case $maybe_os in
-  linux-gnu*)
-    os=-$maybe_os
-    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
-    ;;
-  *)
-    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
-    if [ $basic_machine != $1 ]
-    then os=`echo $1 | sed 's/.*-/-/'`
-    else os=; fi
-    ;;
-esac
-
-### Let's recognize common machines as not being operating systems so
-### that things like config.sub decstation-3100 work.  We also
-### recognize some manufacturers as not being operating systems, so we
-### can provide default operating systems below.
-case $os in
-       -sun*os*)
-               # Prevent following clause from handling this invalid input.
-               ;;
-       -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
-       -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
-       -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
-       -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
-       -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
-       -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
-       -apple)
-               os=
-               basic_machine=$1
-               ;;
-       -hiux*)
-               os=-hiuxwe2
-               ;;
-       -sco5)
-               os=sco3.2v5
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-               ;;
-       -sco4)
-               os=-sco3.2v4
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-               ;;
-       -sco3.2.[4-9]*)
-               os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-               ;;
-       -sco3.2v[4-9]*)
-               # Don't forget version if it is 3.2v4 or newer.
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-               ;;
-       -sco*)
-               os=-sco3.2v2
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-               ;;
-       -isc)
-               os=-isc2.2
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-               ;;
-       -clix*)
-               basic_machine=clipper-intergraph
-               ;;
-       -isc*)
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-               ;;
-       -lynx*)
-               os=-lynxos
-               ;;
-       -ptx*)
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
-               ;;
-       -windowsnt*)
-               os=`echo $os | sed -e 's/windowsnt/winnt/'`
-               ;;
-       -psos*)
-               os=-psos
-               ;;
-esac
-
-# Decode aliases for certain CPU-COMPANY combinations.
-case $basic_machine in
-       # Recognize the basic CPU types without company name.
-       # Some are omitted here because they have special meanings below.
-       tahoe | i860 | m32r | m68k | m68000 | m88k | ns32k | arc | arm \
-               | arme[lb] | pyramid | mn10200 | mn10300 | tron | a29k \
-               | 580 | i960 | h8300 | hppa | hppa1.0 | hppa1.1 | hppa2.0 \
-               | alpha | alphaev5 | alphaev56 | we32k | ns16k | clipper \
-               | i370 | sh | powerpc | powerpcle | 1750a | dsp16xx | pdp11 \
-               | mips64 | mipsel | mips64el | mips64orion | mips64orionel \
-               | mipstx39 | mipstx39el \
-               | sparc | sparclet | sparclite | sparc64 | v850)
-               basic_machine=$basic_machine-unknown
-               ;;
-       # We use `pc' rather than `unknown'
-       # because (1) that's what they normally are, and
-       # (2) the word "unknown" tends to confuse beginning users.
-       i[34567]86)
-         basic_machine=$basic_machine-pc
-         ;;
-       # Object if more than one company name word.
-       *-*-*)
-               echo Invalid configuration \`$1\': machine \`$basic_machine\' 
not recognized 1>&2
-               exit 1
-               ;;
-       # Recognize the basic CPU types with company name.
-       vax-* | tahoe-* | i[34567]86-* | i860-* | m32r-* | m68k-* | m68000-* \
-             | m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | arm-* | c[123]* \
-             | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \
-             | power-* | none-* | 580-* | cray2-* | h8300-* | i960-* \
-             | xmp-* | ymp-* | hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* \
-             | alpha-* | alphaev5-* | alphaev56-* | we32k-* | cydra-* \
-             | ns16k-* | pn-* | np1-* | xps100-* | clipper-* | orion-* \
-             | sparclite-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \
-             | sparc64-* | mips64-* | mipsel-* \
-             | mips64el-* | mips64orion-* | mips64orionel-*  \
-             | mipstx39-* | mipstx39el-* \
-             | f301-*)
-               ;;
-       # Recognize the various machine names and aliases which stand
-       # for a CPU type and a company and sometimes even an OS.
-       3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
-               basic_machine=m68000-att
-               ;;
-       3b*)
-               basic_machine=we32k-att
-               ;;
-       alliant | fx80)
-               basic_machine=fx80-alliant
-               ;;
-       altos | altos3068)
-               basic_machine=m68k-altos
-               ;;
-       am29k)
-               basic_machine=a29k-none
-               os=-bsd
-               ;;
-       amdahl)
-               basic_machine=580-amdahl
-               os=-sysv
-               ;;
-       amiga | amiga-*)
-               basic_machine=m68k-cbm
-               ;;
-       amigaos | amigados)
-               basic_machine=m68k-cbm
-               os=-amigaos
-               ;;
-       amigaunix | amix)
-               basic_machine=m68k-cbm
-               os=-sysv4
-               ;;
-       apollo68)
-               basic_machine=m68k-apollo
-               os=-sysv
-               ;;
-       aux)
-               basic_machine=m68k-apple
-               os=-aux
-               ;;
-       balance)
-               basic_machine=ns32k-sequent
-               os=-dynix
-               ;;
-       convex-c1)
-               basic_machine=c1-convex
-               os=-bsd
-               ;;
-       convex-c2)
-               basic_machine=c2-convex
-               os=-bsd
-               ;;
-       convex-c32)
-               basic_machine=c32-convex
-               os=-bsd
-               ;;
-       convex-c34)
-               basic_machine=c34-convex
-               os=-bsd
-               ;;
-       convex-c38)
-               basic_machine=c38-convex
-               os=-bsd
-               ;;
-       cray | ymp)
-               basic_machine=ymp-cray
-               os=-unicos
-               ;;
-       cray2)
-               basic_machine=cray2-cray
-               os=-unicos
-               ;;
-       [ctj]90-cray)
-               basic_machine=c90-cray
-               os=-unicos
-               ;;
-       crds | unos)
-               basic_machine=m68k-crds
-               ;;
-       da30 | da30-*)
-               basic_machine=m68k-da30
-               ;;
-       decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | 
decstatn)
-               basic_machine=mips-dec
-               ;;
-       delta | 3300 | motorola-3300 | motorola-delta \
-             | 3300-motorola | delta-motorola)
-               basic_machine=m68k-motorola
-               ;;
-       delta88)
-               basic_machine=m88k-motorola
-               os=-sysv3
-               ;;
-       dpx20 | dpx20-*)
-               basic_machine=rs6000-bull
-               os=-bosx
-               ;;
-       dpx2* | dpx2*-bull)
-               basic_machine=m68k-bull
-               os=-sysv3
-               ;;
-       ebmon29k)
-               basic_machine=a29k-amd
-               os=-ebmon
-               ;;
-       elxsi)
-               basic_machine=elxsi-elxsi
-               os=-bsd
-               ;;
-       encore | umax | mmax)
-               basic_machine=ns32k-encore
-               ;;
-       fx2800)
-               basic_machine=i860-alliant
-               ;;
-       genix)
-               basic_machine=ns32k-ns
-               ;;
-       gmicro)
-               basic_machine=tron-gmicro
-               os=-sysv
-               ;;
-       h3050r* | hiux*)
-               basic_machine=hppa1.1-hitachi
-               os=-hiuxwe2
-               ;;
-       h8300hms)
-               basic_machine=h8300-hitachi
-               os=-hms
-               ;;
-       harris)
-               basic_machine=m88k-harris
-               os=-sysv3
-               ;;
-       hp300-*)
-               basic_machine=m68k-hp
-               ;;
-       hp300bsd)
-               basic_machine=m68k-hp
-               os=-bsd
-               ;;
-       hp300hpux)
-               basic_machine=m68k-hp
-               os=-hpux
-               ;;
-       hp9k2[0-9][0-9] | hp9k31[0-9])
-               basic_machine=m68000-hp
-               ;;
-       hp9k3[2-9][0-9])
-               basic_machine=m68k-hp
-               ;;
-       hp9k7[0-9][0-9] | hp7[0-9][0-9] | hp9k8[0-9]7 | hp8[0-9]7)
-               basic_machine=hppa1.1-hp
-               ;;
-       hp9k8[0-9][0-9] | hp8[0-9][0-9])
-               basic_machine=hppa1.0-hp
-               ;;
-       hppa-next)
-               os=-nextstep3
-               ;;
-       i370-ibm* | ibm*)
-               basic_machine=i370-ibm
-               os=-mvs
-               ;;
-# I'm not sure what "Sysv32" means.  Should this be sysv3.2?
-       i[34567]86v32)
-               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-               os=-sysv32
-               ;;
-       i[34567]86v4*)
-               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-               os=-sysv4
-               ;;
-       i[34567]86v)
-               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-               os=-sysv
-               ;;
-       i[34567]86sol2)
-               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-               os=-solaris2
-               ;;
-       iris | iris4d)
-               basic_machine=mips-sgi
-               case $os in
-                   -irix*)
-                       ;;
-                   *)
-                       os=-irix4
-                       ;;
-               esac
-               ;;
-       isi68 | isi)
-               basic_machine=m68k-isi
-               os=-sysv
-               ;;
-       m88k-omron*)
-               basic_machine=m88k-omron
-               ;;
-       magnum | m3230)
-               basic_machine=mips-mips
-               os=-sysv
-               ;;
-       merlin)
-               basic_machine=ns32k-utek
-               os=-sysv
-               ;;
-       miniframe)
-               basic_machine=m68000-convergent
-               ;;
-       mipsel*-linux*)
-               basic_machine=mipsel-unknown
-               os=-linux-gnu
-               ;;
-       mips*-linux*)
-               basic_machine=mips-unknown
-               os=-linux-gnu
-               ;;
-       mips3*-*)
-               basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
-               ;;
-       mips3*)
-               basic_machine=`echo $basic_machine | sed -e 
's/mips3/mips64/'`-unknown
-               ;;
-       ncr3000)
-               basic_machine=i486-ncr
-               os=-sysv4
-               ;;
-       news | news700 | news800 | news900)
-               basic_machine=m68k-sony
-               os=-newsos
-               ;;
-       news1000)
-               basic_machine=m68030-sony
-               os=-newsos
-               ;;
-       news-3600 | risc-news)
-               basic_machine=mips-sony
-               os=-newsos
-               ;;
-       next | m*-next )
-               basic_machine=m68k-next
-               case $os in
-                   -nextstep* )
-                       ;;
-                   -ns2*)
-                     os=-nextstep2
-                       ;;
-                   *)
-                     os=-nextstep3
-                       ;;
-               esac
-               ;;
-       nh3000)
-               basic_machine=m68k-harris
-               os=-cxux
-               ;;
-       nh[45]000)
-               basic_machine=m88k-harris
-               os=-cxux
-               ;;
-       nindy960)
-               basic_machine=i960-intel
-               os=-nindy
-               ;;
-       np1)
-               basic_machine=np1-gould
-               ;;
-       pa-hitachi)
-               basic_machine=hppa1.1-hitachi
-               os=-hiuxwe2
-               ;;
-       paragon)
-               basic_machine=i860-intel
-               os=-osf
-               ;;
-       pbd)
-               basic_machine=sparc-tti
-               ;;
-       pbb)
-               basic_machine=m68k-tti
-               ;;
-        pc532 | pc532-*)
-               basic_machine=ns32k-pc532
-               ;;
-       pentium | p5 | k5 | nexen)
-               basic_machine=i586-pc
-               ;;
-       pentiumpro | p6 | k6 | 6x86)
-               basic_machine=i686-pc
-               ;;
-       pentiumii | pentium2)
-               basic_machine=i786-pc
-               ;;
-       pentium-* | p5-* | k5-* | nexen-*)
-               basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
-               ;;
-       pentiumpro-* | p6-* | k6-* | 6x86-*)
-               basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
-               ;;
-       pentiumii-* | pentium2-*)
-               basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
-               ;;
-       pn)
-               basic_machine=pn-gould
-               ;;
-       power)  basic_machine=rs6000-ibm
-               ;;
-       ppc)    basic_machine=powerpc-unknown
-               ;;
-       ppc-*)  basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
-               ;;
-       ppcle | powerpclittle | ppc-le | powerpc-little)
-               basic_machine=powerpcle-unknown
-               ;;
-       ppcle-* | powerpclittle-*)
-               basic_machine=powerpcle-`echo $basic_machine | sed 
's/^[^-]*-//'`
-               ;;
-       ps2)
-               basic_machine=i386-ibm
-               ;;
-       rm[46]00)
-               basic_machine=mips-siemens
-               ;;
-       rtpc | rtpc-*)
-               basic_machine=romp-ibm
-               ;;
-       sequent)
-               basic_machine=i386-sequent
-               ;;
-       sh)
-               basic_machine=sh-hitachi
-               os=-hms
-               ;;
-       sps7)
-               basic_machine=m68k-bull
-               os=-sysv2
-               ;;
-       spur)
-               basic_machine=spur-unknown
-               ;;
-       sun2)
-               basic_machine=m68000-sun
-               ;;
-       sun2os3)
-               basic_machine=m68000-sun
-               os=-sunos3
-               ;;
-       sun2os4)
-               basic_machine=m68000-sun
-               os=-sunos4
-               ;;
-       sun3os3)
-               basic_machine=m68k-sun
-               os=-sunos3
-               ;;
-       sun3os4)
-               basic_machine=m68k-sun
-               os=-sunos4
-               ;;
-       sun4os3)
-               basic_machine=sparc-sun
-               os=-sunos3
-               ;;
-       sun4os4)
-               basic_machine=sparc-sun
-               os=-sunos4
-               ;;
-       sun4sol2)
-               basic_machine=sparc-sun
-               os=-solaris2
-               ;;
-       sun3 | sun3-*)
-               basic_machine=m68k-sun
-               ;;
-       sun4)
-               basic_machine=sparc-sun
-               ;;
-       sun386 | sun386i | roadrunner)
-               basic_machine=i386-sun
-               ;;
-       symmetry)
-               basic_machine=i386-sequent
-               os=-dynix
-               ;;
-       tx39)
-               basic_machine=mipstx39-unknown
-               ;;
-       tx39el)
-               basic_machine=mipstx39el-unknown
-               ;;
-       tower | tower-32)
-               basic_machine=m68k-ncr
-               ;;
-       udi29k)
-               basic_machine=a29k-amd
-               os=-udi
-               ;;
-       ultra3)
-               basic_machine=a29k-nyu
-               os=-sym1
-               ;;
-       vaxv)
-               basic_machine=vax-dec
-               os=-sysv
-               ;;
-       vms)
-               basic_machine=vax-dec
-               os=-vms
-               ;;
-       vpp*|vx|vx-*)
-               basic_machine=f301-fujitsu
-               ;;
-       vxworks960)
-               basic_machine=i960-wrs
-               os=-vxworks
-               ;;
-       vxworks68)
-               basic_machine=m68k-wrs
-               os=-vxworks
-               ;;
-       vxworks29k)
-               basic_machine=a29k-wrs
-               os=-vxworks
-               ;;
-       xmp)
-               basic_machine=xmp-cray
-               os=-unicos
-               ;;
-        xps | xps100)
-               basic_machine=xps100-honeywell
-               ;;
-       none)
-               basic_machine=none-none
-               os=-none
-               ;;
-
-# Here we handle the default manufacturer of certain CPU types.  It is in
-# some cases the only manufacturer, in others, it is the most popular.
-       mips)
-               if [ x$os = x-linux-gnu ]; then
-                       basic_machine=mips-unknown
-               else
-                       basic_machine=mips-mips
-               fi
-               ;;
-       romp)
-               basic_machine=romp-ibm
-               ;;
-       rs6000)
-               basic_machine=rs6000-ibm
-               ;;
-       vax)
-               basic_machine=vax-dec
-               ;;
-       pdp11)
-               basic_machine=pdp11-dec
-               ;;
-       we32k)
-               basic_machine=we32k-att
-               ;;
-       sparc)
-               basic_machine=sparc-sun
-               ;;
-        cydra)
-               basic_machine=cydra-cydrome
-               ;;
-       orion)
-               basic_machine=orion-highlevel
-               ;;
-       orion105)
-               basic_machine=clipper-highlevel
-               ;;
-       *)
-               echo Invalid configuration \`$1\': machine \`$basic_machine\' 
not recognized 1>&2
-               exit 1
-               ;;
-esac
-
-# Here we canonicalize certain aliases for manufacturers.
-case $basic_machine in
-       *-digital*)
-               basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
-               ;;
-       *-commodore*)
-               basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
-               ;;
-       *)
-               ;;
-esac
-
-# Decode manufacturer-specific aliases for certain operating systems.
-
-if [ x"$os" != x"" ]
-then
-case $os in
-        # First match some system type aliases
-        # that might get confused with valid system types.
-       # -solaris* is a basic system type, with this one exception.
-       -solaris1 | -solaris1.*)
-               os=`echo $os | sed -e 's|solaris1|sunos4|'`
-               ;;
-       -solaris)
-               os=-solaris2
-               ;;
-       -svr4*)
-               os=-sysv4
-               ;;
-       -unixware*)
-               os=-sysv4.2uw
-               ;;
-       -gnu/linux*)
-               os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
-               ;;
-       # First accept the basic system types.
-       # The portable systems comes first.
-       # Each alternative MUST END IN A *, to match a version number.
-       # -sysv* is not here because it comes later, after sysvr4.
-       -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
-             | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
-             | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
-             | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
-             | -aos* \
-             | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
-             | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
-             | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* 
\
-             | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* \
-             | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
-             | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
-             | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-             | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -rhapsody* \
-             | -openstep*)
-       # Remember, each alternative MUST END IN *, to match a version number.
-               ;;
-       -linux*)
-               os=`echo $os | sed -e 's|linux|linux-gnu|'`
-               ;;
-       -sunos5*)
-               os=`echo $os | sed -e 's|sunos5|solaris2|'`
-               ;;
-       -sunos6*)
-               os=`echo $os | sed -e 's|sunos6|solaris3|'`
-               ;;
-       -osfrose*)
-               os=-osfrose
-               ;;
-       -osf*)
-               os=-osf
-               ;;
-       -utek*)
-               os=-bsd
-               ;;
-       -dynix*)
-               os=-bsd
-               ;;
-       -acis*)
-               os=-aos
-               ;;
-       -ctix* | -uts*)
-               os=-sysv
-               ;;
-       -ns2 )
-               os=-nextstep2
-               ;;
-       # Preserve the version number of sinix5.
-       -sinix5.*)
-               os=`echo $os | sed -e 's|sinix|sysv|'`
-               ;;
-       -sinix*)
-               os=-sysv4
-               ;;
-       -triton*)
-               os=-sysv3
-               ;;
-       -oss*)
-               os=-sysv3
-               ;;
-       -svr4)
-               os=-sysv4
-               ;;
-       -svr3)
-               os=-sysv3
-               ;;
-       -sysvr4)
-               os=-sysv4
-               ;;
-       # This must come after -sysvr4.
-       -sysv*)
-               ;;
-       -xenix)
-               os=-xenix
-               ;;
-       -none)
-               ;;
-       *)
-               # Get rid of the `-' at the beginning of $os.
-               os=`echo $os | sed 's/[^-]*-//'`
-               echo Invalid configuration \`$1\': system \`$os\' not 
recognized 1>&2
-               exit 1
-               ;;
-esac
-else
-
-# Here we handle the default operating systems that come with various machines.
-# The value should be what the vendor currently ships out the door with their
-# machine or put another way, the most popular os provided with the machine.
-
-# Note that if you're going to try to match "-MANUFACTURER" here (say,
-# "-sun"), then you have to tell the case statement up towards the top
-# that MANUFACTURER isn't an operating system.  Otherwise, code above
-# will signal an error saying that MANUFACTURER isn't an operating
-# system, and we'll never get to this point.
-
-case $basic_machine in
-       *-acorn)
-               os=-riscix1.2
-               ;;
-       arm*-semi)
-               os=-aout
-               ;;
-        pdp11-*)
-               os=-none
-               ;;
-       *-dec | vax-*)
-               os=-ultrix4.2
-               ;;
-       m68*-apollo)
-               os=-domain
-               ;;
-       i386-sun)
-               os=-sunos4.0.2
-               ;;
-       m68000-sun)
-               os=-sunos3
-               # This also exists in the configure program, but was not the
-               # default.
-               # os=-sunos4
-               ;;
-       *-tti)  # must be before sparc entry or we get the wrong os.
-               os=-sysv3
-               ;;
-       sparc-* | *-sun)
-               os=-sunos4.1.1
-               ;;
-       *-be)
-               os=-beos
-               ;;
-       *-ibm)
-               os=-aix
-               ;;
-       *-hp)
-               os=-hpux
-               ;;
-       *-hitachi)
-               os=-hiux
-               ;;
-       i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
-               os=-sysv
-               ;;
-       *-cbm)
-               os=-amigaos
-               ;;
-       *-dg)
-               os=-dgux
-               ;;
-       *-dolphin)
-               os=-sysv3
-               ;;
-       m68k-ccur)
-               os=-rtu
-               ;;
-       m88k-omron*)
-               os=-luna
-               ;;
-       *-next )
-               os=-nextstep
-               ;;
-       *-sequent)
-               os=-ptx
-               ;;
-       *-crds)
-               os=-unos
-               ;;
-       *-ns)
-               os=-genix
-               ;;
-       i370-*)
-               os=-mvs
-               ;;
-       *-next)
-               os=-nextstep3
-               ;;
-        *-gould)
-               os=-sysv
-               ;;
-        *-highlevel)
-               os=-bsd
-               ;;
-       *-encore)
-               os=-bsd
-               ;;
-        *-sgi)
-               os=-irix
-               ;;
-        *-siemens)
-               os=-sysv4
-               ;;
-       *-masscomp)
-               os=-rtu
-               ;;
-       f301-fujitsu)
-               os=-uxpv
-               ;;
-       *)
-               os=-none
-               ;;
-esac
-fi
-
-# Here we handle the case where we know the os, and the CPU type, but not the
-# manufacturer.  We pick the logical manufacturer.
-vendor=unknown
-case $basic_machine in
-       *-unknown)
-               case $os in
-                       -riscix*)
-                               vendor=acorn
-                               ;;
-                       -sunos*)
-                               vendor=sun
-                               ;;
-                       -aix*)
-                               vendor=ibm
-                               ;;
-                       -hpux*)
-                               vendor=hp
-                               ;;
-                       -hiux*)
-                               vendor=hitachi
-                               ;;
-                       -unos*)
-                               vendor=crds
-                               ;;
-                       -dgux*)
-                               vendor=dg
-                               ;;
-                       -luna*)
-                               vendor=omron
-                               ;;
-                       -genix*)
-                               vendor=ns
-                               ;;
-                       -mvs*)
-                               vendor=ibm
-                               ;;
-                       -ptx*)
-                               vendor=sequent
-                               ;;
-                       -vxsim* | -vxworks*)
-                               vendor=wrs
-                               ;;
-                       -aux*)
-                               vendor=apple
-                               ;;
-               esac
-               basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
-               ;;
-esac
-
-echo $basic_machine$os
diff --git a/configure b/configure
index c3ea1f1..640fdb5 100755
--- a/configure
+++ b/configure
@@ -1,7 +1,7 @@
 #! /bin/sh
 
 # Guess values for system-dependent variables and create Makefiles.
-# Generated automatically using autoconf version 2.12.2 
+# Generated automatically using autoconf version 2.13 
 # Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
 #
 # This configure script is free software; the Free Software Foundation
@@ -11,6 +11,9 @@
 ac_help=
 ac_default_prefix=/usr/local
 # Any additions from configure.in:
+ac_help="$ac_help
+  --disable-dependency-tracking Speeds up one-time builds
+  --enable-dependency-tracking  Do not reject slow dependency extractors"
 
 # Initialize some variables set by options.
 # The variables have the same names as the options, with
@@ -333,7 +336,7 @@ EOF
     verbose=yes ;;
 
   -version | --version | --versio | --versi | --vers)
-    echo "configure generated by autoconf version 2.12.2"
+    echo "configure generated by autoconf version 2.13"
     exit 0 ;;
 
   -with-* | --with-*)
@@ -523,7 +526,7 @@ fi
 
 
 ac_aux_dir=
-for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
+for ac_dir in lib $srcdir/lib; do
   if test -f $ac_dir/install-sh; then
     ac_aux_dir=$ac_dir
     ac_install_sh="$ac_aux_dir/install-sh -c"
@@ -535,12 +538,17 @@ for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
   fi
 done
 if test -z "$ac_aux_dir"; then
-  { echo "configure: error: can not find install-sh or install.sh in $srcdir 
$srcdir/.. $srcdir/../.." 1>&2; exit 1; }
+  { echo "configure: error: can not find install-sh or install.sh in lib 
$srcdir/lib" 1>&2; exit 1; }
 fi
 ac_config_guess=$ac_aux_dir/config.guess
 ac_config_sub=$ac_aux_dir/config.sub
 ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
 
+
+
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`CDPATH=:; cd $ac_aux_dir && pwd`
+
 # Find a good install program.  We prefer a C program (faster),
 # so one script is as good as another.  But avoid the broken or
 # incompatible versions:
@@ -553,7 +561,7 @@ ac_configure=$ac_aux_dir/configure # This should be Cygnus 
configure.
 # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
 # ./install, which can be erroneously created by make from ./install.sh.
 echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:557: checking for a BSD compatible install" >&5
+echo "configure:565: checking for a BSD compatible install" >&5
 if test -z "$INSTALL"; then
 if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -606,23 +614,24 @@ test -z "$INSTALL_SCRIPT" && 
INSTALL_SCRIPT='${INSTALL_PROGRAM}'
 test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
 
 echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6
-echo "configure:610: checking whether build environment is sane" >&5
+echo "configure:618: checking whether build environment is sane" >&5
 # Just in case
 sleep 1
-echo timestamp > conftestfile
+echo timestamp > conftest.file
 # Do `set' in a subshell so we don't clobber the current shell's
 # arguments.  Must try -L first in case configure is actually a
 # symlink; some systems play weird games with the mod time of symlinks
 # (eg FreeBSD returns the mod time of the symlink's containing
 # directory).
 if (
-   set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
+   set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
    if test "$*" = "X"; then
       # -L didn't work.
-      set X `ls -t $srcdir/configure conftestfile`
+      set X `ls -t $srcdir/configure conftest.file`
    fi
-   if test "$*" != "X $srcdir/configure conftestfile" \
-      && test "$*" != "X conftestfile $srcdir/configure"; then
+   rm -f conftest.file
+   if test "$*" != "X $srcdir/configure conftest.file" \
+      && test "$*" != "X conftest.file $srcdir/configure"; then
 
       # If neither matched, then we have a broken ls.  This can happen
       # if, for instance, CONFIG_SHELL is bash and it inherits a
@@ -632,7 +641,7 @@ if (
 alias in your environment" 1>&2; exit 1; }
    fi
 
-   test "$2" = conftestfile
+   test "$2" = conftest.file
    )
 then
    # Ok.
@@ -641,7 +650,6 @@ else
    { echo "configure: error: newly created file is older than distributed 
files!
 Check your system clock" 1>&2; exit 1; }
 fi
-rm -f conftest*
 echo "$ac_t""yes" 1>&6
 if test "$program_transform_name" = s,x,x,; then
   program_transform_name=
@@ -662,8 +670,52 @@ test "$program_suffix" != NONE &&
 # sed with no file args requires a program.
 test "$program_transform_name" = "" && program_transform_name="s,x,x,"
 
+test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
+# Use eval to expand $SHELL
+if eval "$MISSING --run true"; then
+  am_missing_run="$MISSING --run "
+else
+  am_missing_run=
+  am_backtick='`'
+  echo "configure: warning: ${am_backtick}missing' script is too old or 
missing" 1>&2
+fi
+
+for ac_prog in gawk mawk nawk awk
+do
+# Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:689: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$AWK"; then
+  ac_cv_prog_AWK="$AWK" # Let the user override the test.
+else
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_AWK="$ac_prog"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+fi
+fi
+AWK="$ac_cv_prog_AWK"
+if test -n "$AWK"; then
+  echo "$ac_t""$AWK" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+test -n "$AWK" && break
+done
+
 echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:667: checking whether ${MAKE-make} sets \${MAKE}" >&5
+echo "configure:719: checking whether ${MAKE-make} sets \${MAKE}" >&5
 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; 
then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -689,14 +741,49 @@ else
   SET_MAKE="MAKE=${MAKE-make}"
 fi
 
+# Check whether --enable-dependency-tracking or --disable-dependency-tracking 
was given.
+if test "${enable_dependency_tracking+set}" = set; then
+  enableval="$enable_dependency_tracking"
+  :
+fi
 
-PACKAGE=automake
+if test "x$enable_dependency_tracking" != xno; then
+  am_depcomp="$ac_aux_dir/depcomp"
+  AMDEPBACKSLASH='\'
+fi
 
-VERSION=1.4
 
-if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
-  { echo "configure: error: source directory already configured; run "make 
distclean" there first" 1>&2; exit 1; }
+if test "x$enable_dependency_tracking" != xno; then
+  AMDEP_TRUE=
+  AMDEP_FALSE='#'
+else
+  AMDEP_TRUE='#'
+  AMDEP_FALSE=
 fi
+
+
+
+
+rm -f .deps 2>/dev/null
+mkdir .deps 2>/dev/null
+if test -d .deps; then
+  DEPDIR=.deps
+else
+  # MS-DOS does not allow filenames that begin with a dot.
+  DEPDIR=_deps
+fi
+rmdir .deps 2>/dev/null
+
+
+# test to see if srcdir already configured
+if test "`CDPATH=:; cd $srcdir && pwd`" != "`pwd`" &&
+   test -f $srcdir/config.status; then
+  { echo "configure: error: source directory already configured; run \"make 
distclean\" there first" 1>&2; exit 1; }
+fi
+
+# Define the identity of the package.
+PACKAGE=automake
+VERSION=1.5.1a
 cat >> confdefs.h <<EOF
 #define PACKAGE "$PACKAGE"
 EOF
@@ -706,115 +793,54 @@ cat >> confdefs.h <<EOF
 EOF
 
 
+# Autoconf 2.50 wants to disallow AM_ names.  We explicitly allow
+# the ones we care about.
 
-missing_dir=`cd $ac_aux_dir && pwd`
-echo $ac_n "checking for working aclocal""... $ac_c" 1>&6
-echo "configure:713: checking for working aclocal" >&5
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf.  Sigh.
-if (aclocal --version) < /dev/null > /dev/null 2>&1; then
-   ACLOCAL=aclocal
-   echo "$ac_t""found" 1>&6
-else
-   ACLOCAL="$missing_dir/missing aclocal"
-   echo "$ac_t""missing" 1>&6
-fi
+# Autoconf 2.50 always computes EXEEXT.  However we need to be
+# compatible with 2.13, for now.  So we always define EXEEXT, but we
+# don't compute it.
 
-echo $ac_n "checking for working autoconf""... $ac_c" 1>&6
-echo "configure:726: checking for working autoconf" >&5
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf.  Sigh.
-if (autoconf --version) < /dev/null > /dev/null 2>&1; then
-   AUTOCONF=autoconf
-   echo "$ac_t""found" 1>&6
-else
-   AUTOCONF="$missing_dir/missing autoconf"
-   echo "$ac_t""missing" 1>&6
-fi
+# Similar for OBJEXT -- only we only use OBJEXT if the user actually
+# requests that it be used.  This is a bit dumb.
+: ${OBJEXT=o}
 
-echo $ac_n "checking for working automake""... $ac_c" 1>&6
-echo "configure:739: checking for working automake" >&5
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf.  Sigh.
-if (automake --version) < /dev/null > /dev/null 2>&1; then
-   AUTOMAKE=automake
-   echo "$ac_t""found" 1>&6
-else
-   AUTOMAKE="$missing_dir/missing automake"
-   echo "$ac_t""missing" 1>&6
-fi
 
-echo $ac_n "checking for working autoheader""... $ac_c" 1>&6
-echo "configure:752: checking for working autoheader" >&5
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf.  Sigh.
-if (autoheader --version) < /dev/null > /dev/null 2>&1; then
-   AUTOHEADER=autoheader
-   echo "$ac_t""found" 1>&6
-else
-   AUTOHEADER="$missing_dir/missing autoheader"
-   echo "$ac_t""missing" 1>&6
-fi
+# Some tools Automake needs.
 
-echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6
-echo "configure:765: checking for working makeinfo" >&5
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf.  Sigh.
-if (makeinfo --version) < /dev/null > /dev/null 2>&1; then
-   MAKEINFO=makeinfo
-   echo "$ac_t""found" 1>&6
-else
-   MAKEINFO="$missing_dir/missing makeinfo"
-   echo "$ac_t""missing" 1>&6
-fi
+ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal"}
 
 
+AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
 
-# Find an appropriate tar for use in "dist" targets.  A "best guess"
-# is good enough -- if we can't find GNU tar, we don't really care.
-for ac_prog in gnutar gtar tar
-do
-# Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:786: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_TAR'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  if test -n "$TAR"; then
-  ac_cv_prog_TAR="$TAR" # Let the user override the test.
-else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      ac_cv_prog_TAR="$ac_prog"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
-fi
-fi
-TAR="$ac_cv_prog_TAR"
-if test -n "$TAR"; then
-  echo "$ac_t""$TAR" 1>&6
-else
-  echo "$ac_t""no" 1>&6
-fi
 
-test -n "$TAR" && break
-done
+AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake"}
+
+
+AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
+
+
+MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
+
+
+AMTAR=${AMTAR-"${am_missing_run}tar"}
+
+install_sh=${install_sh-"$am_aux_dir/install-sh"}
+
+INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
+
+# We need awk for the "check" target.  The system "awk" is bad on
+# some platforms.
+
+
+ACLOCAL="`pwd`/aclocal --acdir=m4"
+# $AUTOMAKE is always run after a `cd $top_srcdir', hence `.' is really
+# what we want for perllibdir and libdir.
+AUTOMAKE="perllibdir=./lib `pwd`/automake --libdir=lib"
 
 # Extract the first word of "perl", so it can be a program name with args.
 set dummy perl; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:818: checking for $ac_word" >&5
+echo "configure:844: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_PERL'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -849,9 +875,9 @@ fi
 if test -z "$PERL"; then
    { echo "configure: error: perl not found" 1>&2; exit 1; }
 fi
-if test -n "`$PERL -v | fgrep 'version 5.001' 2> /dev/null`"; then
-   { echo "configure: error: perl 5.001 has bug which causes automake to fail" 
1>&2; exit 1; }
-fi
+$PERL -e 'require 5.005;' || {
+   { echo "configure: error: perl 5.005 or better is required" 1>&2; exit 1; }
+}
 
 trap '' 1 2 15
 cat > confcache <<\EOF
@@ -955,7 +981,7 @@ do
     echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create 
--no-recursion"
     exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create 
--no-recursion ;;
   -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
-    echo "$CONFIG_STATUS generated by autoconf version 2.12.2"
+    echo "$CONFIG_STATUS generated by autoconf version 2.13"
     exit 0 ;;
   -help | --help | --hel | --he | --h)
     echo "\$ac_cs_usage"; exit 0 ;;
@@ -966,7 +992,14 @@ done
 ac_given_srcdir=$srcdir
 ac_given_INSTALL="$INSTALL"
 
-trap 'rm -fr `echo "Makefile automake aclocal m4/Makefile tests/Makefile" | 
sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+trap 'rm -fr `echo "Makefile
+           lib/Makefile
+           lib/Automake/Makefile
+          lib/am/Makefile
+           m4/Makefile
+           tests/Makefile
+
+           automake aclocal" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
 EOF
 cat >> $CONFIG_STATUS <<EOF
 
@@ -1003,13 +1036,22 @@ address@hidden@%$INSTALL_SCRIPT%g
 address@hidden@%$INSTALL_DATA%g
 address@hidden@%$PACKAGE%g
 address@hidden@%$VERSION%g
address@hidden@%$EXEEXT%g
address@hidden@%$OBJEXT%g
 address@hidden@%$ACLOCAL%g
 address@hidden@%$AUTOCONF%g
 address@hidden@%$AUTOMAKE%g
 address@hidden@%$AUTOHEADER%g
 address@hidden@%$MAKEINFO%g
address@hidden@%$AMTAR%g
address@hidden@%$install_sh%g
address@hidden@%$INSTALL_STRIP_PROGRAM%g
address@hidden@%$AWK%g
 address@hidden@%$SET_MAKE%g
address@hidden@%$TAR%g
address@hidden@%$AMDEP_TRUE%g
address@hidden@%$AMDEP_FALSE%g
address@hidden@%$AMDEPBACKSLASH%g
address@hidden@%$DEPDIR%g
 address@hidden@%$PERL%g
 
 CEOF
@@ -1052,7 +1094,14 @@ EOF
 
 cat >> $CONFIG_STATUS <<EOF
 
-CONFIG_FILES=\${CONFIG_FILES-"Makefile automake aclocal m4/Makefile 
tests/Makefile"}
+CONFIG_FILES=\${CONFIG_FILES-"Makefile
+           lib/Makefile
+           lib/Automake/Makefile
+          lib/am/Makefile
+           m4/Makefile
+           tests/Makefile
+
+           automake aclocal"}
 EOF
 cat >> $CONFIG_STATUS <<\EOF
 for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
diff --git a/configure.in b/configure.in
index b5e1ea3..d920337 100644
--- a/configure.in
+++ b/configure.in
@@ -1,18 +1,29 @@
-dnl Process this file with autoconf to produce a configure script.
+# Process this file with autoconf to produce a configure script.
 AC_INIT(automake.in)
 
-AM_INIT_AUTOMAKE(automake, 1.4)
+AC_CONFIG_AUX_DIR(lib)
+
+AM_INIT_AUTOMAKE(automake, 1.5.1a)
+
+ACLOCAL="`pwd`/aclocal --acdir=m4"
+# $AUTOMAKE is always run after a `cd $top_srcdir', hence `.' is really
+# what we want for perllibdir and libdir.
+AUTOMAKE="perllibdir=./lib `pwd`/automake --libdir=lib"
 
-# Find an appropriate tar for use in "dist" targets.  A "best guess"
-# is good enough -- if we can't find GNU tar, we don't really care.
-AC_CHECK_PROGS(TAR, gnutar gtar tar)
 AC_PATH_PROG(PERL, perl)
 if test -z "$PERL"; then
    AC_MSG_ERROR([perl not found])
 fi
-if test -n "`$PERL -v | fgrep 'version 5.001' 2> /dev/null`"; then
-   AC_MSG_ERROR([perl 5.001 has bug which causes automake to fail])
-fi
+$PERL -e 'require 5.005;' || {
+   AC_MSG_ERROR([perl 5.005 or better is required])
+}
+
+AC_OUTPUT([Makefile
+           lib/Makefile
+           lib/Automake/Makefile
+          lib/am/Makefile
+           m4/Makefile
+           tests/Makefile
 
-AC_OUTPUT([Makefile automake aclocal m4/Makefile tests/Makefile],
-[chmod +x automake aclocal])
+           automake aclocal],
+          [chmod +x automake aclocal])
diff --git a/data-clean.am b/data-clean.am
deleted file mode 100644
index 63ac8d1..0000000
--- a/data-clean.am
+++ /dev/null
@@ -1,18 +0,0 @@
-## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc.
-
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2, or (at your option)
-## any later version.
-
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-## 02111-1307, USA.
-## FIXME: This file must exist, even though it is empty.
diff --git a/data.am b/data.am
deleted file mode 100644
index 82883d6..0000000
--- a/data.am
+++ /dev/null
@@ -1,37 +0,0 @@
-## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996, 1998 Free Software Foundation, Inc.
-
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2, or (at your option)
-## any later version.
-
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-## 02111-1307, USA.
address@hidden@DATA: $(@address@hidden)
-       @$(NORMAL_INSTALL)
-       $(mkinstalldirs) $(DESTDIR)$(@address@hidden)
-## Funny invocation because Makefile variable can be empty, leading to
-## a syntax error in sh.
-       @list='$(@address@hidden)'; for p in $$list; do \
-         if test -f $(srcdir)/$$p; then \
-           echo " $(INSTALL_DATA) $(srcdir)/$$p 
$(DESTDIR)$(@address@hidden)/$$p"; \
-           $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(@address@hidden)/$$p; \
-         else if test -f $$p; then \
-           echo " $(INSTALL_DATA) $$p $(DESTDIR)$(@address@hidden)/$$p"; \
-           $(INSTALL_DATA) $$p $(DESTDIR)$(@address@hidden)/$$p; \
-         fi; fi; \
-       done
-
address@hidden@DATA:
-       @$(NORMAL_UNINSTALL)
-       list='$(@address@hidden)'; for p in $$list; do \
-         rm -f $(DESTDIR)$(@address@hidden)/$$p; \
-       done
diff --git a/dejagnu.am b/dejagnu.am
deleted file mode 100644
index fbe0943..0000000
--- a/dejagnu.am
+++ /dev/null
@@ -1,44 +0,0 @@
-## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
-
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2, or (at your option)
-## any later version.
-
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-## 02111-1307, USA.
-
-## Flags for DejaGNU.
-RUNTESTFLAGS =
-
-## Name of tool to use.  Default is the same as the package.
-DEJATOOL = $(PACKAGE)
-
-## Default flags to pass to dejagnu.  The user can override this.
-RUNTESTDEFAULTFLAGS = --tool $(DEJATOOL) --srcdir $$srcdir
-
-check-DEJAGNU: site.exp
-## Life is easiest with an absolute srcdir, so do that.
-       srcdir=`cd $(srcdir) && pwd`; export srcdir; \
-       EXPECT=$(EXPECT); export EXPECT; \
-## Allow this to work when expect and DejaGNU are in tree.
-## Only required when --cygnus in force.
-CYGNUS if [ -f $(top_builddir)/../expect/expect ]; then \
-CYGNUS   TCL_LIBRARY=`cd $(top_srcdir)/../tcl/library && pwd`; \
-CYGNUS   export TCL_LIBRARY; \
-CYGNUS fi; \
-       runtest=$(RUNTEST); \
-## If runtest can't be found, print a warning but don't die.  It is
-## pointless to cause a failure if the tests cannot be run at all.
-       if $(SHELL) -c "$$runtest --version" > /dev/null 2>&1; then \
-         $$runtest $(RUNTESTDEFAULTFLAGS) $(RUNTESTFLAGS); \
-       else echo "WARNING: could not find \`runtest'" 1>&2; :;\
-       fi
diff --git a/depend.am b/depend.am
deleted file mode 100644
index 9717458..0000000
--- a/depend.am
+++ /dev/null
@@ -1,37 +0,0 @@
-## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999 Free Software Foundation, 
Inc.
-
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2, or (at your option)
-## any later version.
-
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-## 02111-1307, USA.
-
-## This fragment is probably only useful for maintainers.  It relies
-## on GNU make and gcc.  It is only included in the generated
-## Makefile.in if `automake' is not passed the `--include-deps' flag.
-
-## We must create the .deps directory if it doesn't exist.  We do it
-## in this strange way to make sure the .deps directory exists,
-## without trying to run mkdir for each compilation.
-DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
-
--include $(DEP_FILES)
-
-mostlyclean-depend:
-
-clean-depend:
-
-distclean-depend:
-       -rm -rf .deps
-
-maintainer-clean-depend:
diff --git a/depend2.am b/depend2.am
deleted file mode 100644
index dec3e82..0000000
--- a/depend2.am
+++ /dev/null
@@ -1,59 +0,0 @@
-## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994-1998, 1999 Free Software Foundation, Inc.
-
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2, or (at your option)
-## any later version.
-
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-## 02111-1307, USA.
-%.o: address@hidden@
-       @echo '$(@address@hidden) -c $<'; \
-## There are various ways to get dependency output from gcc.  Here's
-## why we pick this rather obscure method:
-## - Don't want to use -MD because we'd like the dependencies to end
-##   up in a subdir.  Having to rename by hand is ugly.
-##   (We might end up doing this anyway to support other compilers.)
-## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
-##   -MM, not -M (despite what the docs say).
-## - Using -M directly means running the compiler twice (even worse
-##   than renaming).
-       $(@address@hidden) -Wp,-MD,.deps/$(*F).pp -c $<
-## This next piece of magic avoids the `deleted header file' problem.
-## The problem is that when a header file which appears in a .P file
-## is deleted, the dependency causes make to die (because there is
-## typically no way to rebuild the header).  We avoid this by adding
-## dummy dependencies for each header file.  Too bad gcc doesn't do
-## this for us directly.
-       @-cp .deps/$(*F).pp .deps/$(*F).P; \
-       tr ' ' '\012' < .deps/$(*F).pp \
-## Some versions of gcc put a space before the `:'.  On the theory
-## that the space means something, we add a space to the output as
-## well.
-         | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
-           >> .deps/$(*F).P; \
-       rm .deps/$(*F).pp
-
-%.lo: address@hidden@
-       @echo '$(address@hidden@COMPILE) -c $<'; \
-## See above to understand implementation weirdness.
-       $(address@hidden@COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
-## Account for versions of gcc that put a space before the `:'.
-       @-sed -e 's/^\([^:]*\)\.o[      ]*:/\1.lo \1.o :/' \
-         < .deps/$(*F).pp > .deps/$(*F).P; \
-## See above to understand deleted header file trick.
-       tr ' ' '\012' < .deps/$(*F).pp \
-## Some versions of gcc put a space before the `:'.  On the theory
-## that the space means something, we add a space to the output as
-## well.
-         | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
-           >> .deps/$(*F).P; \
-       rm -f .deps/$(*F).pp
diff --git a/dist-vars.am b/dist-vars.am
deleted file mode 100644
index 4b1c2ec..0000000
--- a/dist-vars.am
+++ /dev/null
@@ -1,22 +0,0 @@
-## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc.
-
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2, or (at your option)
-## any later version.
-
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-## 02111-1307, USA.
-PACKAGE = @PACKAGE@
-VERSION = @VERSION@
-
-## DIST_COMMON comes first so that README can be the very first file.
-DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
diff --git a/elisp-comp b/elisp-comp
deleted file mode 100755
index 96e4aa5..0000000
--- a/elisp-comp
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/bin/sh
-# Copyright (C) 1995 Free Software Foundation, Inc.
-# François Pinard <address@hidden>, 1995.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-# This script byte-compiles all `.el' files which are part of its
-# arguments, using GNU Emacs, and put the resulting `.elc' files into
-# the current directory, so disregarding the original directories used
-# in `.el' arguments.
-#
-# This script manages in such a way that all Emacs LISP files to
-# be compiled are made visible between themselves, in the event
-# they require or load-library one another.
-
-if test $# = 0; then
-   echo 1>&2 "No files given to $0"
-   exit 1
-else
-   if test -z "$EMACS" || test "$EMACS" = "t"; then
-      # Value of "t" means we are running in a shell under Emacs.
-      # Just assume Emacs is called "emacs".
-      EMACS=emacs
-   fi
-
-   tempdir=elc.$$
-   mkdir $tempdir
-   cp $* $tempdir
-   cd $tempdir
-
-   echo "(setq load-path (cons nil load-path))" > script
-   $EMACS -q -batch -l script -f batch-byte-compile *.el
-   mv *.elc ..
-
-   cd ..
-   rm -fr $tempdir
-fi
diff --git a/footer.am b/footer.am
deleted file mode 100644
index 6fee90d..0000000
--- a/footer.am
+++ /dev/null
@@ -1,20 +0,0 @@
-## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc.
-
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2, or (at your option)
-## any later version.
-
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-## 02111-1307, USA.
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/header-vars.am b/header-vars.am
deleted file mode 100644
index 1dd0813..0000000
--- a/header-vars.am
+++ /dev/null
@@ -1,70 +0,0 @@
-## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
-
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2, or (at your option)
-## any later version.
-
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-## 02111-1307, USA.
-SHELL = @SHELL@
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-
-bindir = @bindir@
-sbindir = @sbindir@
-libexecdir = @libexecdir@
-datadir = @datadir@
-sysconfdir = @sysconfdir@
-sharedstatedir = @sharedstatedir@
-localstatedir = @localstatedir@
-libdir = @libdir@
-infodir = @infodir@
-mandir = @mandir@
-includedir = @includedir@
-oldincludedir = /usr/include
-
-DESTDIR =
-
-## Some derived variables that have been found to be useful.
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-
-## Location of top build directory relative to this one.
-top_builddir = @top_builddir@
-
-ACLOCAL = @ACLOCAL@
-AUTOCONF = @AUTOCONF@
-AUTOMAKE = @AUTOMAKE@
-AUTOHEADER = @AUTOHEADER@
-
-INSTALL = @INSTALL@
-## We use AM_INSTALL_PROGRAM_FLAGS so that install-strip can pass -s
-## easily.  We can't just set INSTALL_PROGRAM because that might have
-## a relative path.
-INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-transform = @program_transform_name@
-
-## These are defined because otherwise make on NetBSD V1.1 will print
-## (eg): $(NORMAL_INSTALL) expands to empty string.
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
diff --git a/header.am b/header.am
deleted file mode 100644
index d0ae6ba..0000000
--- a/header.am
+++ /dev/null
@@ -1,34 +0,0 @@
-## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996, 1998 Free Software Foundation, Inc.
-
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2, or (at your option)
-## any later version.
-
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-## 02111-1307, USA.
address@hidden@HEADERS: $(@address@hidden)
-       @$(NORMAL_INSTALL)
-       $(mkinstalldirs) $(DESTDIR)$(@address@hidden)
-## Funny invocation because Makefile variable can be empty, leading to
-## a syntax error in sh.
-       @list='$(@address@hidden)'; for p in $$list; do \
-## A header file can be in the source directory or the build directory.
-         if test -f "$$p"; then d= ; else d="$(srcdir)/"; fi; \
-         echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(@address@hidden)/$$p"; \
-         $(INSTALL_DATA) $$d$$p $(DESTDIR)$(@address@hidden)/$$p; \
-       done
-
address@hidden@HEADERS:
-       @$(NORMAL_UNINSTALL)
-       list='$(@address@hidden)'; for p in $$list; do \
-         rm -f $(DESTDIR)$(@address@hidden)/$$p; \
-       done
diff --git a/java-clean.am b/java-clean.am
deleted file mode 100644
index af20493..0000000
--- a/java-clean.am
+++ /dev/null
@@ -1,25 +0,0 @@
-## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1998 Free Software Foundation, Inc.
-
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2, or (at your option)
-## any later version.
-
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-## 02111-1307, USA.
address@hidden@JAVA:
-
address@hidden@JAVA:
-       -rm *.class address@hidden@.stamp
-
address@hidden@JAVA:
-
address@hidden@JAVA:
diff --git a/java.am b/java.am
deleted file mode 100644
index b72cdc2..0000000
--- a/java.am
+++ /dev/null
@@ -1,33 +0,0 @@
-## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1998 Free Software Foundation, Inc.
-
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2, or (at your option)
-## any later version.
-
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-## 02111-1307, USA.
address@hidden@JAVA: address@hidden@.stamp
-       @$(NORMAL_INSTALL)
-       $(mkinstalldirs) $(DESTDIR)$(@address@hidden)
-## A single .java file can be compiled into multiple .class files.  So
-## we just install all the .class files that got built into this
-## directory.  This is not optimal, but will have to do for now.
-       for p in *.class; do \
-         echo " $(INSTALL_DATA) $$p $(DESTDIR)$(@address@hidden)/$$p"; \
-         $(INSTALL_DATA) $$p $(DESTDIR)$(@address@hidden)/$$p; \
-       done
-
address@hidden@JAVA:
-       @$(NORMAL_UNINSTALL)
-       for p in *.class; do \
-         rm -f $(DESTDIR)$(@address@hidden)/$$p; \
-       done
diff --git a/kr-extra.am b/kr-extra.am
deleted file mode 100644
index 6577988..0000000
--- a/kr-extra.am
+++ /dev/null
@@ -1,31 +0,0 @@
-## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
-
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2, or (at your option)
-## any later version.
-
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-## 02111-1307, USA.
-mostlyclean-krextra:
-
-clean-krextra:
-## Why `clean' and not somewhere else?  Not `mostlyclean' because
-## people usually don't want to recompile this file.  And not
-## `distclean' because of our informal rule: if `make' built it, then
-## `clean' should delete it; if `configure' built it, then `distclean'
-## should remove it (and if the maintainer built it, then
-## maintainer-clean should remove it).
-       -rm -f ansi2knr
-
-distclean-krextra:
-
-maintainer-clean-krextra:
diff --git a/lib/.cvsignore b/lib/.cvsignore
new file mode 100644
index 0000000..f3c7a7c
--- /dev/null
+++ b/lib/.cvsignore
@@ -0,0 +1 @@
+Makefile
diff --git a/lib/Automake/.cvsignore b/lib/Automake/.cvsignore
new file mode 100644
index 0000000..f3c7a7c
--- /dev/null
+++ b/lib/Automake/.cvsignore
@@ -0,0 +1 @@
+Makefile
diff --git a/lib/Automake/Makefile.am b/lib/Automake/Makefile.am
new file mode 100644
index 0000000..0321d19
--- /dev/null
+++ b/lib/Automake/Makefile.am
@@ -0,0 +1,4 @@
+## Process this file with automake to create Makefile.in
+
+perllibdir = $(pkgdatadir)/Automake
+dist_perllib_DATA = Struct.pm
diff --git a/lib/Automake/Makefile.in b/lib/Automake/Makefile.in
new file mode 100644
index 0000000..8dd2261
--- /dev/null
+++ b/lib/Automake/Makefile.in
@@ -0,0 +1,211 @@
+# Makefile.in generated automatically by automake 1.5.1a from Makefile.am.
+
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+# Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
address@hidden@
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = @program_transform_name@
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+AMTAR = @AMTAR@
+AWK = @AWK@
+DEPDIR = @DEPDIR@
+EXEEXT = @EXEEXT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PERL = @PERL@
+VERSION = @VERSION@
+am__include = @am__include@
+am__quote = @am__quote@
+install_sh = @install_sh@
+
+perllibdir = $(pkgdatadir)/Automake
+dist_perllib_DATA = Struct.pm
+subdir = lib/Automake
+mkinstalldirs = $(SHELL) $(top_srcdir)/lib/mkinstalldirs
+CONFIG_CLEAN_FILES =
+DIST_SOURCES =
+DATA = $(dist_perllib_DATA)
+
+DIST_COMMON = $(dist_perllib_DATA) Makefile.am Makefile.in
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.in $(ACLOCAL_M4)
+       cd $(top_srcdir) && \
+         $(AUTOMAKE) --gnu  lib/Automake/Makefile
+Makefile:  $(srcdir)/Makefile.in  $(top_builddir)/config.status
+       cd $(top_builddir) && \
+         CONFIG_HEADERS= CONFIG_LINKS= \
+         CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status
+uninstall-info-am:
+install-dist_perllibDATA: $(dist_perllib_DATA)
+       @$(NORMAL_INSTALL)
+       $(mkinstalldirs) $(DESTDIR)$(perllibdir)
+       @list='$(dist_perllib_DATA)'; for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         f="`echo $$p | sed -e 's|^.*/||'`"; \
+         echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(perllibdir)/$$f"; \
+         $(INSTALL_DATA) $$d$$p $(DESTDIR)$(perllibdir)/$$f; \
+       done
+
+uninstall-dist_perllibDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(dist_perllib_DATA)'; for p in $$list; do \
+         f="`echo $$p | sed -e 's|^.*/||'`"; \
+         echo " rm -f $(DESTDIR)$(perllibdir)/$$f"; \
+         rm -f $(DESTDIR)$(perllibdir)/$$f; \
+       done
+tags: TAGS
+TAGS:
+
+
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = ../..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
+
+distdir: $(DISTFILES)
+       @for file in $(DISTFILES); do \
+         if test -f $$file; then d=.; else d=$(srcdir); fi; \
+         dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+         if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+           $(mkinstalldirs) "$(distdir)/$$dir"; \
+         fi; \
+         if test -d $$d/$$file; then \
+           cp -pR $$d/$$file $(distdir) \
+           || exit 1; \
+         else \
+           test -f $(distdir)/$$file \
+           || cp -p $$d/$$file $(distdir)/$$file \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+
+installdirs:
+       $(mkinstalldirs) $(DESTDIR)$(perllibdir)
+
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-dist_perllibDATA
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+uninstall-am: uninstall-dist_perllibDATA uninstall-info-am
+
+.PHONY: all all-am check check-am clean clean-generic distclean \
+       distclean-generic distdir dvi dvi-am info info-am install \
+       install-am install-data install-data-am \
+       install-dist_perllibDATA install-exec install-exec-am \
+       install-info install-info-am install-man install-strip \
+       installcheck installcheck-am installdirs maintainer-clean \
+       maintainer-clean-generic mostlyclean mostlyclean-generic \
+       uninstall uninstall-am uninstall-dist_perllibDATA \
+       uninstall-info-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/lib/Automake/Struct.pm b/lib/Automake/Struct.pm
new file mode 100644
index 0000000..f75ae8d
--- /dev/null
+++ b/lib/Automake/Struct.pm
@@ -0,0 +1,600 @@
+# automake - create Makefile.in from Makefile.am
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+# Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# Originally written by David Mackenzie <address@hidden>.
+# Perl reimplementation by Tom Tromey <address@hidden>.
+
+package Automake::Struct;
+
+## See POD after __END__
+
+use 5.005;
+
+use strict;
+use vars qw(@ISA @EXPORT $VERSION);
+
+use Carp;
+
+require Exporter;
address@hidden = qw(Exporter);
address@hidden = qw(struct);
+
+$VERSION = '0.58';
+
+## Tested on 5.002 and 5.003 without class membership tests:
+my $CHECK_CLASS_MEMBERSHIP = ($] >= 5.003_95);
+
+my $print = 0;
+sub printem {
+    if (@_) { $print = shift }
+    else    { $print++ }
+}
+
+{
+    package Class::Struct::Tie_ISA;
+
+    sub TIEARRAY {
+        my $class = shift;
+        return bless [], $class;
+    }
+
+    sub STORE {
+        my ($self, $index, $value) = @_;
+        Class::Struct::_subclass_error();
+    }
+
+    sub FETCH {
+        my ($self, $index) = @_;
+        $self->[$index];
+    }
+
+    sub FETCHSIZE {
+        my $self = shift;
+        return scalar(@$self);
+    }
+
+    sub DESTROY { }
+}
+
+sub struct {
+
+    # Determine parameter list structure, one of:
+    #   struct( class => [ element-list ])
+    #   struct( class => { element-list })
+    #   struct( element-list )
+    # Latter form assumes current package name as struct name.
+
+    my ($class, @decls);
+    my $base_type = ref $_[1];
+    if ( $base_type eq 'HASH' ) {
+        $class = shift;
+        @decls = %{shift()};
+        _usage_error() if @_;
+    }
+    elsif ( $base_type eq 'ARRAY' ) {
+        $class = shift;
+        @decls = @{shift()};
+        _usage_error() if @_;
+    }
+    else {
+        $base_type = 'ARRAY';
+        $class = (caller())[0];
+        @decls = @_;
+    }
+    _usage_error() if @decls % 2 == 1;
+
+    # Ensure we are not, and will not be, a subclass.
+
+    my $isa = do {
+        no strict 'refs';
+        address@hidden . '::ISA'};
+    };
+    _subclass_error() if @$isa;
+    tie @$isa, 'Class::Struct::Tie_ISA';
+
+    # Create constructor.
+
+    croak "function 'new' already defined in package $class"
+        if do { no strict 'refs'; defined &{$class . "::new"} };
+
+    my @methods = ();
+    my %refs = ();
+    my %arrays = ();
+    my %hashes = ();
+    my %classes = ();
+    my $got_class = 0;
+    my $out = '';
+
+    $out = "{\n  package $class;\n  use Carp;\n  sub new {\n";
+    $out .= "    my (\$class, \%init) = address@hidden;\n";
+    $out .= "    \$class = __PACKAGE__ unless address@hidden;\n";
+
+    my $cnt = 0;
+    my $idx = 0;
+    my( $cmt, $name, $type, $elem );
+
+    if( $base_type eq 'HASH' ){
+        $out .= "    my(\$r) = {};\n";
+        $cmt = '';
+    }
+    elsif( $base_type eq 'ARRAY' ){
+        $out .= "    my(\$r) = [];\n";
+    }
+    while( $idx < @decls ){
+        $name = $decls[$idx];
+        $type = $decls[$idx+1];
+        push( @methods, $name );
+        if( $base_type eq 'HASH' ){
+            $elem = "{'${class}::$name'}";
+        }
+        elsif( $base_type eq 'ARRAY' ){
+            $elem = "[$cnt]";
+            ++$cnt;
+            $cmt = " # $name";
+        }
+        if( $type =~ /^\*(.)/ ){
+            $refs{$name}++;
+            $type = $1;
+        }
+        my $init = "defined(\$init{'$name'}) ? \$init{'$name'} :";
+        if( $type eq '@' ){
+            $out .= "    croak 'Initializer for $name must be array 
reference'\n";
+            $out .= "        if defined(\$init{'$name'}) && 
ref(\$init{'$name'}) ne 'ARRAY';\n";
+            $out .= "    \$r->$elem = $init [];$cmt\n";
+            $arrays{$name}++;
+        }
+        elsif( $type eq '%' ){
+            $out .= "    croak 'Initializer for $name must be hash 
reference'\n";
+            $out .= "        if defined(\$init{'$name'}) && 
ref(\$init{'$name'}) ne 'HASH';\n";
+            $out .= "    \$r->$elem = $init {};$cmt\n";
+            $hashes{$name}++;
+        }
+        elsif ( $type eq '$') {
+            $out .= "    \$r->$elem = $init undef;$cmt\n";
+        }
+        elsif( $type =~ /^\w+(?:::\w+)*$/ ){
+            $init = "defined(\$init{'$name'}) ? \%{\$init{'$name'}} : ()";
+            $out .= "    croak 'Initializer for $name must be hash 
reference'\n";
+            $out .= "        if defined(\$init{'$name'}) && 
ref(\$init{'$name'}) ne 'HASH';\n";
+            $out .= "    \$r->$elem = '${type}'->new($init);$cmt\n";
+            $classes{$name} = $type;
+            $got_class = 1;
+        }
+        else{
+            croak "'$type' is not a valid struct element type";
+        }
+        $idx += 2;
+    }
+    $out .= "    bless \$r, \$class;\n  }\n";
+
+    # Create accessor methods.
+
+    my( $pre, $pst, $sel );
+    $cnt = 0;
+    foreach $name (@methods){
+        if ( do { no strict 'refs'; defined &{$class . "::$name"} } ) {
+            carp "function '$name' already defined, overrides struct accessor 
method";
+        }
+        else {
+            $pre = $pst = $cmt = $sel = '';
+            if( defined $refs{$name} ){
+                $pre = "\\(";
+                $pst = ")";
+                $cmt = " # returns ref";
+            }
+            $out .= "  sub $name {$cmt\n    my \$r = shift;\n";
+            if( $base_type eq 'ARRAY' ){
+                $elem = "[$cnt]";
+                ++$cnt;
+            }
+            elsif( $base_type eq 'HASH' ){
+                $elem = "{'${class}::$name'}";
+            }
+            if( defined $arrays{$name} ){
+                $out .= "    my \$i;\n";
+                $out .= "    address@hidden ? (\$i = shift) : return 
\$r->$elem;\n";
+                $sel = "->[\$i]";
+            }
+            elsif( defined $hashes{$name} ){
+                $out .= "    my \$i;\n";
+                $out .= "    address@hidden ? (\$i = shift) : return 
\$r->$elem;\n";
+                $sel = "->{\$i}";
+            }
+            elsif( defined $classes{$name} ){
+                if ( $CHECK_CLASS_MEMBERSHIP ) {
+                    $out .= "    croak '$name argument is wrong class' if 
address@hidden && ! UNIVERSAL::isa(\$_[0], '$classes{$name}');\n";
+                }
+            }
+            $out .= "    croak 'Too many args to $name' if address@hidden > 
1;\n";
+            $out .= "    address@hidden ? ($pre\$r->$elem$sel = shift$pst) : 
$pre\$r->$elem$sel$pst;\n";
+            $out .= "  }\n";
+        }
+    }
+    $out .= "}\n1;\n";
+
+    print $out if $print;
+    my $result = eval $out;
+    carp $@ if $@;
+}
+
+sub _usage_error {
+    confess "struct usage error";
+}
+
+sub _subclass_error {
+    croak 'struct class cannot be a subclass (@ISA not allowed)';
+}
+
+1; # for require
+
+
+__END__
+
+=head1 NAME
+
+Class::Struct - declare struct-like datatypes as Perl classes
+
+=head1 SYNOPSIS
+
+    use Class::Struct;
+            # declare struct, based on array:
+    struct( CLASS_NAME => [ ELEMENT_NAME => ELEMENT_TYPE, ... ]);
+            # declare struct, based on hash:
+    struct( CLASS_NAME => { ELEMENT_NAME => ELEMENT_TYPE, ... });
+
+    package CLASS_NAME;
+    use Class::Struct;
+            # declare struct, based on array, implicit class name:
+    struct( ELEMENT_NAME => ELEMENT_TYPE, ... );
+
+
+    package Myobj;
+    use Class::Struct;
+            # declare struct with four types of elements:
+    struct( s => '$', a => '@', h => '%', c => 'My_Other_Class' );
+
+    $obj = new Myobj;               # constructor
+
+                                    # scalar type accessor:
+    $element_value = $obj->s;           # element value
+    $obj->s('new value');               # assign to element
+
+                                    # array type accessor:
+    $ary_ref = $obj->a;                 # reference to whole array
+    $ary_element_value = $obj->a(2);    # array element value
+    $obj->a(2, 'new value');            # assign to array element
+
+                                    # hash type accessor:
+    $hash_ref = $obj->h;                # reference to whole hash
+    $hash_element_value = $obj->h('x'); # hash element value
+    $obj->h('x', 'new value');        # assign to hash element
+
+                                    # class type accessor:
+    $element_value = $obj->c;           # object reference
+    $obj->c->method(...);               # call method of object
+    $obj->c(new My_Other_Class);        # assign a new object
+
+
+=head1 DESCRIPTION
+
+C<Class::Struct> exports a single function, C<struct>.
+Given a list of element names and types, and optionally
+a class name, C<struct> creates a Perl 5 class that implements
+a "struct-like" data structure.
+
+The new class is given a constructor method, C<new>, for creating
+struct objects.
+
+Each element in the struct data has an accessor method, which is
+used to assign to the element and to fetch its value.  The
+default accessor can be overridden by declaring a C<sub> of the
+same name in the package.  (See Example 2.)
+
+Each element's type can be scalar, array, hash, or class.
+
+
+=head2 The C<struct()> function
+
+The C<struct> function has three forms of parameter-list.
+
+    struct( CLASS_NAME => [ ELEMENT_LIST ]);
+    struct( CLASS_NAME => { ELEMENT_LIST });
+    struct( ELEMENT_LIST );
+
+The first and second forms explicitly identify the name of the
+class being created.  The third form assumes the current package
+name as the class name.
+
+An object of a class created by the first and third forms is
+based on an array, whereas an object of a class created by the
+second form is based on a hash. The array-based forms will be
+somewhat faster and smaller; the hash-based forms are more
+flexible.
+
+The class created by C<struct> must not be a subclass of another
+class other than C<UNIVERSAL>.
+
+It can, however, be used as a superclass for other classes. To facilitate
+this, the generated constructor method uses a two-argument blessing.
+Furthermore, if the class is hash-based, the key of each element is
+prefixed with the class name (see I<Perl Cookbook>, Recipe 13.12).
+
+A function named C<new> must not be explicitly defined in a class
+created by C<struct>.
+
+The I<ELEMENT_LIST> has the form
+
+    NAME => TYPE, ...
+
+Each name-type pair declares one element of the struct. Each
+element name will be defined as an accessor method unless a
+method by that name is explicitly defined; in the latter case, a
+warning is issued if the warning flag (B<-w>) is set.
+
+
+=head2 Element Types and Accessor Methods
+
+The four element types -- scalar, array, hash, and class -- are
+represented by strings -- C<'$'>, C<'@'>, C<'%'>, and a class name --
+optionally preceded by a C<'*'>.
+
+The accessor method provided by C<struct> for an element depends
+on the declared type of the element.
+
+=over
+
+=item Scalar (C<'$'> or C<'*$'>)
+
+The element is a scalar, and by default is initialized to C<undef>
+(but see L<Initializing with new>).
+
+The accessor's argument, if any, is assigned to the element.
+
+If the element type is C<'$'>, the value of the element (after
+assignment) is returned. If the element type is C<'*$'>, a reference
+to the element is returned.
+
+=item Array (C<'@'> or C<'*@'>)
+
+The element is an array, initialized by default to C<()>.
+
+With no argument, the accessor returns a reference to the
+element's whole array (whether or not the element was
+specified as C<'@'> or C<'*@'>).
+
+With one or two arguments, the first argument is an index
+specifying one element of the array; the second argument, if
+present, is assigned to the array element.  If the element type
+is C<'@'>, the accessor returns the array element value.  If the
+element type is C<'*@'>, a reference to the array element is
+returned.
+
+=item Hash (C<'%'> or C<'*%'>)
+
+The element is a hash, initialized by default to C<()>.
+
+With no argument, the accessor returns a reference to the
+element's whole hash (whether or not the element was
+specified as C<'%'> or C<'*%'>).
+
+With one or two arguments, the first argument is a key specifying
+one element of the hash; the second argument, if present, is
+assigned to the hash element.  If the element type is C<'%'>, the
+accessor returns the hash element value.  If the element type is
+C<'*%'>, a reference to the hash element is returned.
+
+=item Class (C<'Class_Name'> or C<'*Class_Name'>)
+
+The element's value must be a reference blessed to the named
+class or to one of its subclasses. The element is initialized to
+the result of calling the C<new> constructor of the named class.
+
+The accessor's argument, if any, is assigned to the element. The
+accessor will C<croak> if this is not an appropriate object
+reference.
+
+If the element type does not start with a C<'*'>, the accessor
+returns the element value (after assignment). If the element type
+starts with a C<'*'>, a reference to the element itself is returned.
+
+=back
+
+=head2 Initializing with C<new>
+
+C<struct> always creates a constructor called C<new>. That constructor
+may take a list of initializers for the various elements of the new
+struct.
+
+Each initializer is a pair of values: I<element name>C< =E<gt> >I<value>.
+The initializer value for a scalar element is just a scalar value. The
+initializer for an array element is an array reference. The initializer
+for a hash is a hash reference.
+
+The initializer for a class element is also a hash reference, and the
+contents of that hash are passed to the element's own constructor.
+
+See Example 3 below for an example of initialization.
+
+
+=head1 EXAMPLES
+
+=over
+
+=item Example 1
+
+Giving a struct element a class type that is also a struct is how
+structs are nested.  Here, C<timeval> represents a time (seconds and
+microseconds), and C<rusage> has two elements, each of which is of
+type C<timeval>.
+
+    use Class::Struct;
+
+    struct( rusage => {
+        ru_utime => timeval,  # seconds
+        ru_stime => timeval,  # microseconds
+    });
+
+    struct( timeval => [
+        tv_secs  => '$',
+        tv_usecs => '$',
+    ]);
+
+        # create an object:
+    my $t = new rusage;
+
+        # $t->ru_utime and $t->ru_stime are objects of type timeval.
+        # set $t->ru_utime to 100.0 sec and $t->ru_stime to 5.0 sec.
+    $t->ru_utime->tv_secs(100);
+    $t->ru_utime->tv_usecs(0);
+    $t->ru_stime->tv_secs(5);
+    $t->ru_stime->tv_usecs(0);
+
+
+=item Example 2
+
+An accessor function can be redefined in order to provide
+additional checking of values, etc.  Here, we want the C<count>
+element always to be nonnegative, so we redefine the C<count>
+accessor accordingly.
+
+    package MyObj;
+    use Class::Struct;
+
+    # declare the struct
+    struct ( 'MyObj', { count => '$', stuff => '%' } );
+
+    # override the default accessor method for 'count'
+    sub count {
+        my $self = shift;
+        if ( @_ ) {
+            die 'count must be nonnegative' if $_[0] < 0;
+            $self->{'count'} = shift;
+            warn "Too many args to count" if @_;
+        }
+        return $self->{'count'};
+    }
+
+    package main;
+    $x = new MyObj;
+    print "\$x->count(5) = ", $x->count(5), "\n";
+                            # prints '$x->count(5) = 5'
+
+    print "\$x->count = ", $x->count, "\n";
+                            # prints '$x->count = 5'
+
+    print "\$x->count(-5) = ", $x->count(-5), "\n";
+                            # dies due to negative argument!
+
+=item Example 3
+
+The constructor of a generated class can be passed a list
+of I<element>=>I<value> pairs, with which to initialize the struct.
+If no initializer is specified for a particular element, its default
+initialization is performed instead. Initializers for non-existent
+elements are silently ignored.
+
+Note that the initializer for a nested struct is specified
+as an anonymous hash of initializers, which is passed on to the nested
+struct's constructor.
+
+
+    use Class::Struct;
+
+    struct Breed =>
+    {
+        name  => '$',
+        cross => '$',
+    };
+
+    struct Cat =>
+    [
+        name     => '$',
+        kittens  => '@',
+        markings => '%',
+        breed    => 'Breed',
+    ];
+
+
+    my $cat = Cat->new( name     => 'Socks',
+                        kittens  => ['Monica', 'Kenneth'],
+                        markings => { socks=>1, blaze=>"white" },
+                        breed    => { name=>'short-hair', cross=>1 },
+                      );
+
+    print "Once a cat called ", $cat->name, "\n";
+    print "(which was a ", $cat->breed->name, ")\n";
+    print "had two kittens: ", join(' and ', @{$cat->kittens}), "\n";
+
+=back
+
+=head1 Author and Modification History
+
+
+Modified by Damian Conway, 1999-03-05, v0.58.
+
+    Added handling of hash-like arg list to class ctor.
+
+    Changed to two-argument blessing in ctor to support
+    derivation from created classes.
+
+    Added classname prefixes to keys in hash-based classes
+    (refer to "Perl Cookbook", Recipe 13.12 for rationale).
+
+    Corrected behaviour of accessors for '*@' and '*%' struct
+    elements.  Package now implements documented behaviour when
+    returning a reference to an entire hash or array element.
+    Previously these were returned as a reference to a reference
+    to the element.
+
+
+Renamed to C<Class::Struct> and modified by Jim Miner, 1997-04-02.
+
+    members() function removed.
+    Documentation corrected and extended.
+    Use of struct() in a subclass prohibited.
+    User definition of accessor allowed.
+    Treatment of '*' in element types corrected.
+    Treatment of classes as element types corrected.
+    Class name to struct() made optional.
+    Diagnostic checks added.
+
+
+Originally C<Class::Template> by Dean Roehrich.
+
+    # Template.pm   --- struct/member template builder
+    #   12mar95
+    #   Dean Roehrich
+    #
+    # changes/bugs fixed since 28nov94 version:
+    #  - podified
+    # changes/bugs fixed since 21nov94 version:
+    #  - Fixed examples.
+    # changes/bugs fixed since 02sep94 version:
+    #  - Moved to Class::Template.
+    # changes/bugs fixed since 20feb94 version:
+    #  - Updated to be a more proper module.
+    #  - Added "use strict".
+    #  - Bug in build_methods, was using @var when @$var needed.
+    #  - Now using my() rather than local().
+    #
+    # Uses perl5 classes to create nested data types.
+    # This is offered as one implementation of Tom Christiansen's "structs.pl"
+    # idea.
+
+=cut
diff --git a/lib/COPYING b/lib/COPYING
index d60c31a..60549be 100644
--- a/lib/COPYING
+++ b/lib/COPYING
@@ -2,7 +2,7 @@
                       Version 2, June 1991
 
  Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+                       59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  Everyone is permitted to copy and distribute verbatim copies
  of this license document, but changing it is not allowed.
 
@@ -291,7 +291,7 @@ convey the exclusion of warranty; and each file should have 
at least
 the "copyright" line and a pointer to where the full notice is found.
 
     <one line to give the program's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
+    Copyright (C) 19yy  <name of author>
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
@@ -313,7 +313,7 @@ Also add information on how to contact you by electronic 
and paper mail.
 If the program is interactive, make it output a short notice like this
 when it starts in an interactive mode:
 
-    Gnomovision version 69, Copyright (C) year  name of author
+    Gnomovision version 69, Copyright (C) 19yy name of author
     Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
     This is free software, and you are welcome to redistribute it
     under certain conditions; type `show c' for details.
diff --git a/lib/Makefile.am b/lib/Makefile.am
new file mode 100644
index 0000000..176830e
--- /dev/null
+++ b/lib/Makefile.am
@@ -0,0 +1,26 @@
+## Process this file with automake to create Makefile.in
+
+SUBDIRS = Automake am
+
+dist_pkgdata_DATA = COPYING INSTALL texinfo.tex ansi2knr.c ansi2knr.1
+
+## These must all be executable when installed.  However, if we use
+## _SCRIPTS, then the program transform will be applied, which is not
+## what we want.  So we make them executable by hand.
+scriptdir = $(pkgdatadir)
+dist_script_DATA = config.guess config.sub install-sh mdate-sh missing \
+mkinstalldirs elisp-comp ylwrap acinstall depcomp compile py-compile
+
+install-data-hook:
+       @$(POST_INSTALL)
+       @for prog in $(dist_script_DATA); do \
+         echo " chmod +x $(DESTDIR)$(scriptdir)/$$prog"; \
+         chmod +x $(DESTDIR)$(scriptdir)/$$prog; \
+       done
+
+## `test -x' is not portable.  So we use Perl instead.  If Perl
+## doesn't exist, then this test is meaningless anyway.
+installcheck-local:
+       for file in $(dist_script_DATA); do \
+         $(PERL) -e "exit ! -x '$(pkgdatadir)/$$file';" || exit 1; \
+       done
diff --git a/lib/Makefile.in b/lib/Makefile.in
new file mode 100644
index 0000000..4ad2960
--- /dev/null
+++ b/lib/Makefile.in
@@ -0,0 +1,369 @@
+# Makefile.in generated automatically by automake 1.5.1a from Makefile.am.
+
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+# Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
address@hidden@
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = @program_transform_name@
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+AMTAR = @AMTAR@
+AWK = @AWK@
+DEPDIR = @DEPDIR@
+EXEEXT = @EXEEXT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PERL = @PERL@
+VERSION = @VERSION@
+am__include = @am__include@
+am__quote = @am__quote@
+install_sh = @install_sh@
+
+SUBDIRS = Automake am
+
+dist_pkgdata_DATA = COPYING INSTALL texinfo.tex ansi2knr.c ansi2knr.1
+
+scriptdir = $(pkgdatadir)
+dist_script_DATA = config.guess config.sub install-sh mdate-sh missing \
+mkinstalldirs elisp-comp ylwrap acinstall depcomp compile py-compile
+
+subdir = lib
+mkinstalldirs = $(SHELL) $(top_srcdir)/lib/mkinstalldirs
+CONFIG_CLEAN_FILES =
+DIST_SOURCES =
+DATA = $(dist_pkgdata_DATA) $(dist_script_DATA)
+
+
+RECURSIVE_TARGETS = info-recursive dvi-recursive install-info-recursive \
+       uninstall-info-recursive all-recursive install-data-recursive \
+       install-exec-recursive installdirs-recursive install-recursive \
+       uninstall-recursive check-recursive installcheck-recursive
+DIST_COMMON = $(dist_pkgdata_DATA) $(dist_script_DATA) COPYING INSTALL \
+       Makefile.am Makefile.in ansi2knr.1 ansi2knr.c compile \
+       config.guess config.sub depcomp elisp-comp install-sh mdate-sh \
+       missing mkinstalldirs py-compile texinfo.tex ylwrap
+DIST_SUBDIRS = $(SUBDIRS)
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.in $(ACLOCAL_M4)
+       cd $(top_srcdir) && \
+         $(AUTOMAKE) --gnu  lib/Makefile
+Makefile:  $(srcdir)/Makefile.in  $(top_builddir)/config.status
+       cd $(top_builddir) && \
+         CONFIG_HEADERS= CONFIG_LINKS= \
+         CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status
+uninstall-info-am:
+install-dist_pkgdataDATA: $(dist_pkgdata_DATA)
+       @$(NORMAL_INSTALL)
+       $(mkinstalldirs) $(DESTDIR)$(pkgdatadir)
+       @list='$(dist_pkgdata_DATA)'; for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         f="`echo $$p | sed -e 's|^.*/||'`"; \
+         echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(pkgdatadir)/$$f"; \
+         $(INSTALL_DATA) $$d$$p $(DESTDIR)$(pkgdatadir)/$$f; \
+       done
+
+uninstall-dist_pkgdataDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(dist_pkgdata_DATA)'; for p in $$list; do \
+         f="`echo $$p | sed -e 's|^.*/||'`"; \
+         echo " rm -f $(DESTDIR)$(pkgdatadir)/$$f"; \
+         rm -f $(DESTDIR)$(pkgdatadir)/$$f; \
+       done
+install-dist_scriptDATA: $(dist_script_DATA)
+       @$(NORMAL_INSTALL)
+       $(mkinstalldirs) $(DESTDIR)$(scriptdir)
+       @list='$(dist_script_DATA)'; for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         f="`echo $$p | sed -e 's|^.*/||'`"; \
+         echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(scriptdir)/$$f"; \
+         $(INSTALL_DATA) $$d$$p $(DESTDIR)$(scriptdir)/$$f; \
+       done
+
+uninstall-dist_scriptDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(dist_script_DATA)'; for p in $$list; do \
+         f="`echo $$p | sed -e 's|^.*/||'`"; \
+         echo " rm -f $(DESTDIR)$(scriptdir)/$$f"; \
+         rm -f $(DESTDIR)$(scriptdir)/$$f; \
+       done
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+#     (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+       @set fnord $(MAKEFLAGS); amf=$$2; \
+       dot_seen=no; \
+       target=`echo $@ | sed s/-recursive//`; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           dot_seen=yes; \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+          || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+       done; \
+       if test "$$dot_seen" = "no"; then \
+         $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+       fi; test -z "$$fail"
+
+mostlyclean-recursive clean-recursive distclean-recursive \
+maintainer-clean-recursive:
+       @set fnord $(MAKEFLAGS); amf=$$2; \
+       dot_seen=no; \
+       case "$@" in \
+         distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+         *) list='$(SUBDIRS)' ;; \
+       esac; \
+       rev=''; for subdir in $$list; do \
+         if test "$$subdir" = "."; then :; else \
+           rev="$$subdir $$rev"; \
+         fi; \
+       done; \
+       rev="$$rev ."; \
+       target=`echo $@ | sed s/-recursive//`; \
+       for subdir in $$rev; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+          || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+       done && test -z "$$fail"
+tags-recursive:
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); 
\
+       done
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+       list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       mkid -fID $$unique $(LISP)
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       tags=; \
+       here=`pwd`; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
+         fi; \
+       done; \
+       list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+         || etags $(ETAGS_ARGS) $$tags  $$unique $(LISP)
+
+GTAGS:
+       here=`CDPATH=: && cd $(top_builddir) && pwd` \
+         && cd $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
+
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = ..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
+
+distdir: $(DISTFILES)
+       @for file in $(DISTFILES); do \
+         if test -f $$file; then d=.; else d=$(srcdir); fi; \
+         dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+         if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+           $(mkinstalldirs) "$(distdir)/$$dir"; \
+         fi; \
+         if test -d $$d/$$file; then \
+           cp -pR $$d/$$file $(distdir) \
+           || exit 1; \
+         else \
+           test -f $(distdir)/$$file \
+           || cp -p $$d/$$file $(distdir)/$$file \
+           || exit 1; \
+         fi; \
+       done
+       for subdir in $(SUBDIRS); do \
+         if test "$$subdir" = .; then :; else \
+           test -d $(distdir)/$$subdir \
+           || mkdir $(distdir)/$$subdir \
+           || exit 1; \
+           (cd $$subdir && \
+             $(MAKE) $(AM_MAKEFLAGS) \
+               top_distdir="$(top_distdir)" \
+               distdir=../$(distdir)/$$subdir \
+               distdir) \
+             || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-recursive
+all-am: Makefile $(DATA)
+installdirs: installdirs-recursive
+installdirs-am:
+       $(mkinstalldirs) $(DESTDIR)$(pkgdatadir) $(DESTDIR)$(scriptdir)
+
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-recursive
+
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am: install-dist_pkgdataDATA install-dist_scriptDATA
+       @$(NORMAL_INSTALL)
+       $(MAKE) $(AM_MAKEFLAGS) install-data-hook
+
+install-exec-am:
+
+install-info: install-info-recursive
+
+install-man:
+
+installcheck-am: installcheck-local
+
+maintainer-clean: maintainer-clean-recursive
+
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic
+
+uninstall-am: uninstall-dist_pkgdataDATA uninstall-dist_scriptDATA \
+       uninstall-info-am
+
+uninstall-info: uninstall-info-recursive
+
+.PHONY: $(RECURSIVE_TARGETS) GTAGS all all-am check check-am clean \
+       clean-generic clean-recursive distclean distclean-generic \
+       distclean-recursive distclean-tags distdir dvi dvi-am \
+       dvi-recursive info info-am info-recursive install install-am \
+       install-data install-data-am install-data-recursive \
+       install-dist_pkgdataDATA install-dist_scriptDATA install-exec \
+       install-exec-am install-exec-recursive install-info \
+       install-info-am install-info-recursive install-man \
+       install-recursive install-strip installcheck installcheck-am \
+       installcheck-local installdirs installdirs-am \
+       installdirs-recursive maintainer-clean maintainer-clean-generic \
+       maintainer-clean-recursive mostlyclean mostlyclean-generic \
+       mostlyclean-recursive tags tags-recursive uninstall \
+       uninstall-am uninstall-dist_pkgdataDATA \
+       uninstall-dist_scriptDATA uninstall-info-am \
+       uninstall-info-recursive uninstall-recursive
+
+
+install-data-hook:
+       @$(POST_INSTALL)
+       @for prog in $(dist_script_DATA); do \
+         echo " chmod +x $(DESTDIR)$(scriptdir)/$$prog"; \
+         chmod +x $(DESTDIR)$(scriptdir)/$$prog; \
+       done
+
+installcheck-local:
+       for file in $(dist_script_DATA); do \
+         $(PERL) -e "exit ! -x '$(pkgdatadir)/$$file';" || exit 1; \
+       done
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/lib/am/.cvsignore b/lib/am/.cvsignore
new file mode 100644
index 0000000..f3c7a7c
--- /dev/null
+++ b/lib/am/.cvsignore
@@ -0,0 +1 @@
+Makefile
diff --git a/lib/am/Makefile.am b/lib/am/Makefile.am
index 3c336b3..2326335 100644
--- a/lib/am/Makefile.am
+++ b/lib/am/Makefile.am
@@ -1,135 +1,11 @@
 ## Process this file with automake to create Makefile.in
 
-AUTOMAKE_OPTIONS = gnits 1.4
-MAINT_CHARSET = latin1
-
-## We need `.' in SUBDIRS because we want `check' to build `.' before
-## tests.
-SUBDIRS = . m4 tests
-
-bin_SCRIPTS = automake aclocal
-info_TEXINFOS = automake.texi
-
-amfiles = clean-hdr.am clean-kr.am clean.am comp-vars.am compile.am \
-data-clean.am data.am dejagnu.am depend.am depend2.am dist-vars.am \
-footer.am header-vars.am header.am java-clean.am java.am kr-extra.am \
-library.am libs-clean.am libs.am libtool.am lisp-clean.am lisp.am \
-ltlib-clean.am ltlib.am ltlibrary.am mans-vars.am mans.am multilib.am \
-program.am progs-clean.am progs.am remake-hdr.am remake.am scripts.am \
-subdirs.am tags-clean.am tags.am texi-vers.am texinfos.am
-
-pkgdata_DATA = COPYING INSTALL texinfo.tex ansi2knr.c ansi2knr.1 $(amfiles)
-
-## These must all be executable when installed.  However, if we use
-## _SCRIPTS, then the program transform will be applied, which is not
-## what we want.  So we make them executable by hand.
-scriptdir = $(pkgdatadir)
-script_DATA = config.guess config.sub install-sh mdate-sh missing \
-mkinstalldirs elisp-comp ylwrap acinstall
-
-install-data-hook:
-       @for prog in $(script_DATA); do \
-         chmod +x $(scriptdir)/$$prog; \
-       done
-
-EXTRA_DIST = acinstall $(pkgdata_DATA) $(script_DATA)
-
-# The following requires a fixed version of the Emacs 19.30 etags.
-ETAGS_ARGS = automake.in aclocal.in --lang=none \
- --regex='/address@hidden \t]+\([^,]+\)/\1/' automake.texi
-TAGS_DEPENDENCIES = automake.in aclocal.in automake.texi
-
-## `test -x' is not portable.  So we use Perl instead.  If Perl
-## doesn't exist, then this test is meaningless anyway.
-installcheck-local:
-       for file in $(script_DATA); do \
-         $(PERL) -e "exit ! -x '$(pkgdatadir)/$$file';" || exit 1; \
-       done
-
-################################################################
-##
-## Everything past here is useful to the maintainer, but probably not
-## to anybody else
-##
-
-# Run the test suite using Perl 4.
-perl4-check: automake aclocal
-       @if $(SHELL) -c 'perl4.036 -v' > /dev/null 2>&1; then \
-         $(MAKE) PERL=perl4.036 check; \
-       else :; fi
-
-# Some simple checks, and then ordinary check.  These are only really
-# guaranteed to work on my machine.
-maintainer-check: automake aclocal
-## This check avoids accidental configure substitutions in the source.
-## There are exactly 8 lines that should be modified.  This works out
-## to 24 lines of diffs.
-       @if test `diff $(srcdir)/automake.in automake | wc -l` -ne 24; then \
-         echo "found too many diffs between automake.in and automake"; 1>&2; \
-         diff -c $(srcdir)/automake.in automake; \
-         exit 1; \
-       fi
-## Syntax check with default Perl (on my machine, Perl 5).
-       $(PERL) -c -w automake
-       $(PERL) -c -w aclocal
-## expect no instances of '${...}'.  However, $${...} is ok, since that
-## is a shell construct, not a Makefile construct.
-## The backslash in `$${' is needed for some versions of bash.
-       @if test `fgrep '\$${' $(srcdir)/[a-z]*.am | fgrep -v '$$$$' | wc -l` 
-ne 0; then \
-         echo "found too many uses of '\$${'" 1>&2; \
-         exit 1;                               \
-       else :; fi
-## Make sure all invocations of mkinstalldirs are correct.
-       @if test `fgrep 'mkinstalldirs' $(srcdir)/[a-z]*.am | fgrep -v 
'$$(mkinstalldirs)' | wc -l` -ne 0; then \
-         echo "found incorrect use of mkinstalldirs" 1>&2; \
-         exit 1; \
-       else :; fi
-## Another syntax check, this time with Perl 4, if it exists.
-       @if $(SHELL) -c 'perl4.036 -v' >/dev/null 2>&1; then \
-         perl4.036 -c -w automake; \
-         perl4.036 -c -w aclocal; \
-       else :; fi
-## We never want to use "undef", only "delete".
-       @if grep undef $(srcdir)/automake.in > /dev/null 2>&1; then \
-         echo "Found undef in automake.in; use delete instead" 1>&2; \
-         exit 1; \
-       fi
-## We never want split (/ /,...), only split (' ', ...).
-       @if fgrep 'split (/ /' $(srcdir)/automake.in > /dev/null 2>&1; then \
-         echo "Found bad split in automake.in" 1>&2; \
-         exit 1; \
-       fi
-
-# Tag before making distribution.  Also, don't make a distribution if
-# checks fail.  Also, make sure the NEWS file is up-to-date.
-cvs-dist: maintainer-check perl4-check distcheck
-       @if sed 1q $(srcdir)/NEWS | grep -e "$(VERSION)" > /dev/null; then :; 
else \
-         echo "NEWS not updated; not releasing" 1>&2; \
-         exit 1;                               \
-       fi
-       cd $(srcdir) && cvs -q tag `echo "Release-$(VERSION)" | sed 's/\./-/g'`
-       $(MAKE) dist
-
-cvs-diff:
-       thisver=`echo "Release-$(VERSION)" | sed 's/\./-/g'`; \
-       if test -z "$$OLDVERSION"; then \
-         prevno=`echo "$(VERSION)" - 0.01 | bc | sed 's/^\./0./'`; \
-       else prevno="$$OLDVERSION"; fi; \
-       prevver=Release-`echo $$prevno | sed 's/\./-/g'`; \
-       cvs -f rdiff -c -r $$prevver -r $$thisver $(PACKAGE) \
-           > $(PACKAGE)-$$prevno-$(VERSION).diff
-
-## Check our path lengths.
-path-check: distdir
-       (cd $(distdir) && \
-## FIXME there's got to be a better way!  pathchk should take the list
-## of files on stdin, at least.
-         find . -print | xargs pathchk -p); \
-         status=$$?; \
-         rm -rf $(distdir); \
-         exit $$status
-
-## Just get the .am files into TAGS.  We don't really care too much if
-## any interesting tags show up.
-ETAGS_ARGS = $(amfiles)
-TAGS_DEPENDENCIES = $(ETAGS_ARGS)
+amdir = $(pkgdatadir)/am
+
+dist_am_DATA = ansi2knr.am check.am clean-hdr.am clean.am compile.am \
+configure.am data.am dejagnu.am depend.am depend2.am distdir.am \
+footer.am header-vars.am header.am install.am java.am lang-compile.am \
+lex.am library.am libs.am libtool.am lisp.am ltlib.am ltlibrary.am \
+mans-vars.am mans.am multilib.am program.am progs.am python.am \
+remake-hdr.am scripts.am subdirs.am tags.am texi-vers.am texibuild.am \
+texinfos.am yacc.am
diff --git a/lib/am/Makefile.in b/lib/am/Makefile.in
new file mode 100644
index 0000000..c622114
--- /dev/null
+++ b/lib/am/Makefile.in
@@ -0,0 +1,218 @@
+# Makefile.in generated automatically by automake 1.5.1a from Makefile.am.
+
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+# Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
address@hidden@
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = @program_transform_name@
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+AMTAR = @AMTAR@
+AWK = @AWK@
+DEPDIR = @DEPDIR@
+EXEEXT = @EXEEXT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PERL = @PERL@
+VERSION = @VERSION@
+am__include = @am__include@
+am__quote = @am__quote@
+install_sh = @install_sh@
+
+amdir = $(pkgdatadir)/am
+
+dist_am_DATA = ansi2knr.am check.am clean-hdr.am clean.am compile.am \
+configure.am data.am dejagnu.am depend.am depend2.am distdir.am \
+footer.am header-vars.am header.am install.am java.am lang-compile.am \
+lex.am library.am libs.am libtool.am lisp.am ltlib.am ltlibrary.am \
+mans-vars.am mans.am multilib.am program.am progs.am python.am \
+remake-hdr.am scripts.am subdirs.am tags.am texi-vers.am texibuild.am \
+texinfos.am yacc.am
+
+subdir = lib/am
+mkinstalldirs = $(SHELL) $(top_srcdir)/lib/mkinstalldirs
+CONFIG_CLEAN_FILES =
+DIST_SOURCES =
+DATA = $(dist_am_DATA)
+
+DIST_COMMON = $(dist_am_DATA) Makefile.am Makefile.in
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.in $(ACLOCAL_M4)
+       cd $(top_srcdir) && \
+         $(AUTOMAKE) --gnu  lib/am/Makefile
+Makefile:  $(srcdir)/Makefile.in  $(top_builddir)/config.status
+       cd $(top_builddir) && \
+         CONFIG_HEADERS= CONFIG_LINKS= \
+         CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status
+uninstall-info-am:
+install-dist_amDATA: $(dist_am_DATA)
+       @$(NORMAL_INSTALL)
+       $(mkinstalldirs) $(DESTDIR)$(amdir)
+       @list='$(dist_am_DATA)'; for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         f="`echo $$p | sed -e 's|^.*/||'`"; \
+         echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(amdir)/$$f"; \
+         $(INSTALL_DATA) $$d$$p $(DESTDIR)$(amdir)/$$f; \
+       done
+
+uninstall-dist_amDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(dist_am_DATA)'; for p in $$list; do \
+         f="`echo $$p | sed -e 's|^.*/||'`"; \
+         echo " rm -f $(DESTDIR)$(amdir)/$$f"; \
+         rm -f $(DESTDIR)$(amdir)/$$f; \
+       done
+tags: TAGS
+TAGS:
+
+
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = ../..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
+
+distdir: $(DISTFILES)
+       @for file in $(DISTFILES); do \
+         if test -f $$file; then d=.; else d=$(srcdir); fi; \
+         dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+         if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+           $(mkinstalldirs) "$(distdir)/$$dir"; \
+         fi; \
+         if test -d $$d/$$file; then \
+           cp -pR $$d/$$file $(distdir) \
+           || exit 1; \
+         else \
+           test -f $(distdir)/$$file \
+           || cp -p $$d/$$file $(distdir)/$$file \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+
+installdirs:
+       $(mkinstalldirs) $(DESTDIR)$(amdir)
+
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-dist_amDATA
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+uninstall-am: uninstall-dist_amDATA uninstall-info-am
+
+.PHONY: all all-am check check-am clean clean-generic distclean \
+       distclean-generic distdir dvi dvi-am info info-am install \
+       install-am install-data install-data-am install-dist_amDATA \
+       install-exec install-exec-am install-info install-info-am \
+       install-man install-strip installcheck installcheck-am \
+       installdirs maintainer-clean maintainer-clean-generic \
+       mostlyclean mostlyclean-generic uninstall uninstall-am \
+       uninstall-dist_amDATA uninstall-info-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/lib/am/ansi2knr.am b/lib/am/ansi2knr.am
new file mode 100644
index 0000000..a267cef
--- /dev/null
+++ b/lib/am/ansi2knr.am
@@ -0,0 +1,74 @@
+## automake - create Makefile.in from Makefile.am
+## Copyright 1994, 1995, 1996, 1997, 2001 Free Software Foundation, Inc.
+
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2, or (at your option)
+## any later version.
+
+## This program is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU General Public License for more details.
+
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+## 02111-1307, USA.
+
+## %ANSI2KNR-DIR% is the directory where ansi2knr is, `' if
+## is the current directory.
+
+
+## ---------- ##
+## ansi2knr.  ##
+## ---------- ##
+
+if %?ANSI2KNR-DIR%
+
+ANSI2KNR = %ANSI2KNR-DIR%/ansi2knr
+%ANSI2KNR-DIR%/ansi2knr:
+       cd %ANSI2KNR-DIR% && $(MAKE) $(AM_MAKEFLAGS) ansi2knr
+
+else !%?ANSI2KNR-DIR%
+
+## Substitution from AM_C_PROTOTYPES.  This makes it be built only when
+## necessary.
+ANSI2KNR = @ANSI2KNR@
+ansi2knr: ansi2knr.$(OBJEXT)
+       $(LINK) ansi2knr.$(OBJEXT) $(LIBS)
+ansi2knr.$(OBJEXT): $(CONFIG_HEADER)
+
+endif !%?ANSI2KNR-DIR%
+
+
+## ------------------- ##
+## Cleaning ansi2knr.  ##
+## ------------------- ##
+
+
+if !%?ANSI2KNR-DIR%
+.PHONY: clean-krextra
+
+clean-am: clean-krextra
+clean-krextra:
+## Why `clean' and not somewhere else?  Not `mostlyclean' because
+## people usually don't want to recompile this file.  And not
+## `distclean' because of our informal rule: if `make' built it, then
+## `clean' should delete it; if `configure' built it, then `distclean'
+## should remove it (and if the maintainer built it, then
+## maintainer-clean should remove it).
+       -rm -f ansi2knr
+endif !%?ANSI2KNR-DIR%
+
+
+
+## --------------------------------- ##
+## Cleaning the output of ansi2knr.  ##
+## --------------------------------- ##
+
+.PHONY: mostlyclean-kr
+
+mostlyclean-am: mostlyclean-kr
+mostlyclean-kr:
+       -rm -f *_.c
diff --git a/lib/am/check.am b/lib/am/check.am
new file mode 100644
index 0000000..efe6054
--- /dev/null
+++ b/lib/am/check.am
@@ -0,0 +1,76 @@
+## automake - create Makefile.in from Makefile.am
+## Copyright 2001 Free Software Foundation, Inc.
+
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2, or (at your option)
+## any later version.
+
+## This program is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU General Public License for more details.
+
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+## 02111-1307, USA.
+
+.PHONY: check-TESTS
+
+check-TESTS: $(TESTS)
+       @failed=0; all=0; xfail=0; xpass=0; \
+       srcdir=$(srcdir); export srcdir; \
+       list='$(TESTS)'; \
+       if test -n "$$list"; then \
+         for tst in $$list; do \
+           if test -f ./$$tst; then dir=./; \
+## Note: Solaris 2.7 seems to expand TESTS using VPATH.  That's
+## why we also try `dir='
+           elif test -f $$tst; then dir=; \
+           else dir="$(srcdir)/"; fi; \
+           if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
+             all=`expr $$all + 1`; \
+             case " $(XFAIL_TESTS) " in \
+             *" $$tst "*) \
+               xpass=`expr $$xpass + 1`; \
+               failed=`expr $$failed + 1`; \
+               echo "XPASS: $$tst"; \
+             ;; \
+             *) \
+               echo "PASS: $$tst"; \
+             ;; \
+             esac; \
+           elif test $$? -ne 77; then \
+             all=`expr $$all + 1`; \
+             case " $(XFAIL_TESTS) " in \
+             *" $$tst "*) \
+               xfail=`expr $$xfail + 1`; \
+               echo "XFAIL: $$tst"; \
+             ;; \
+             *) \
+               failed=`expr $$failed + 1`; \
+               echo "FAIL: $$tst"; \
+             ;; \
+             esac; \
+           fi; \
+         done; \
+         if test "$$failed" -eq 0; then \
+           if test "$$xfail" -eq 0; then \
+             banner="All $$all tests passed"; \
+           else \
+             banner="All $$all tests behaved as expected ($$xfail expected 
failures)"; \
+           fi; \
+         else \
+           if test "$$xpass" -eq 0; then \
+             banner="$$failed of $$all tests failed"; \
+           else \
+             banner="$$failed of $$all tests did not behave as expected 
($$xpass unexpected passes)"; \
+           fi; \
+         fi; \
+         dashes=`echo "$$banner" | sed s/./=/g`; \
+         echo "$$dashes"; \
+         echo "$$banner"; \
+         echo "$$dashes"; \
+         test "$$failed" -eq 0; \
+       fi
diff --git a/lib/am/clean-hdr.am b/lib/am/clean-hdr.am
index e0d1170..3e5d454 100644
--- a/lib/am/clean-hdr.am
+++ b/lib/am/clean-hdr.am
@@ -1,5 +1,5 @@
 ## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
+## Copyright 1994, 1995, 1996, 1997, 2001 Free Software Foundation, Inc.
 
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -15,11 +15,8 @@
 ## along with this program; if not, write to the Free Software
 ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 ## 02111-1307, USA.
-mostlyclean-hdr:
-
-clean-hdr:
 
+.PHONY: distclean-hdr
+distclean-am: distclean-hdr
 distclean-hdr:
-       -rm -f @FILES@
-
-maintainer-clean-hdr:
+       -rm -f %FILES%
diff --git a/lib/am/clean.am b/lib/am/clean.am
index 67ec807..7d40c68 100644
--- a/lib/am/clean.am
+++ b/lib/am/clean.am
@@ -1,5 +1,5 @@
 ## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996, 1998 Free Software Foundation, Inc.
+## Copyright 1994, 1995, 1996, 1998, 1999, 2001 Free Software Foundation, Inc.
 
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -19,16 +19,31 @@
 ## We must test each macro because it might be empty, and an empty "rm
 ## -rf" command looks disturbing.  Also, the Solaris 2.4 "rm" will
 ## return an error if there are no arguments other than "-f".
+mostlyclean-am: mostlyclean-generic
 mostlyclean-generic:
-MOSTLYCLEAN    -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
+?MOSTLYCLEAN?  -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
 
+clean-am: clean-generic mostlyclean-am
 clean-generic:
-CLEAN  -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+?CLEAN?        -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
 
+distclean-am: distclean-generic clean-am
 distclean-generic:
-       -rm -f Makefile $(CONFIG_CLEAN_FILES)
-       -rm -f config.cache config.log stamp-h stamp-h[0-9]*
-DISTCLEAN      -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+       -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
+?DISTCLEAN?    -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
 
+maintainer-clean-am: maintainer-clean-generic distclean-am
 maintainer-clean-generic:
-MAINTAINERCLEAN        -test -z "@MCFILES@" || rm -f @MFILES@
+## FIXME: shouldn't we really print these messages before running
+## the dependencies?
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+?MFILES?       -test -z "%MCFILES%" || rm -f %MFILES%
+
+.PHONY: clean mostlyclean distclean maintainer-clean \
+clean-generic mostlyclean-generic distclean-generic maintainer-clean-generic
+
+?!SUBDIRS?clean: clean-am
+?!SUBDIRS?distclean: distclean-am
+?!SUBDIRS?mostlyclean: mostlyclean-am
+?!SUBDIRS?maintainer-clean: maintainer-clean-am
diff --git a/lib/am/comp-vars.am b/lib/am/comp-vars.am
index c7d773b..e69de29 100644
--- a/lib/am/comp-vars.am
+++ b/lib/am/comp-vars.am
@@ -1,22 +0,0 @@
-## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996, 1998 Free Software Foundation, Inc.
-
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2, or (at your option)
-## any later version.
-
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-## 02111-1307, USA.
-
-DEFS = @DEFS@ -I. -I$(srcdir) @CONFIG_INCLUDE_SPEC@
-CPPFLAGS = @CPPFLAGS@
-LDFLAGS = @LDFLAGS@
-LIBS = @LIBS@
diff --git a/lib/am/compile.am b/lib/am/compile.am
index 6e9f92a..d179f84 100644
--- a/lib/am/compile.am
+++ b/lib/am/compile.am
@@ -1,5 +1,6 @@
 ## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+## Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2001
+## Free Software Foundation, Inc.
 
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -15,29 +16,23 @@
 ## along with this program; if not, write to the Free Software
 ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 ## 02111-1307, USA.
-NOTDEPEND.c.o:
-NOTDEPEND      $(COMPILE) -c $<
 
-OBJEXT# FIXME: We should only use cygpath when building on Windows,
-OBJEXT# and only if it is available.
-OBJEXT.c.obj:
-OBJEXT $(COMPILE) -c `cygpath -w $<`
-
-.s.o:
-       $(COMPILE) -c $<
-
-.S.o:
-       $(COMPILE) -c $<
+DEFS = @DEFS@
+DEFAULT_INCLUDES = %DEFAULT_INCLUDES%
+CPPFLAGS = @CPPFLAGS@
+LDFLAGS = @LDFLAGS@
+LIBS = @LIBS@
 
+mostlyclean-am: mostlyclean-compile
 mostlyclean-compile:
 ## Don't remove 'core.*' because some distributions have eg "core.c".
 ## 4.4BSD systems use `PROG.core'.
-       -rm -f *.o core *.core
-OBJEXT -rm -f *.$(OBJEXT)
-
-clean-compile:
+       -rm -f *.$(OBJEXT) core *.core
+?MOSTLYRMS?%MOSTLYRMS%
 
+distclean-am: distclean-compile
 distclean-compile:
        -rm -f *.tab.c
+?DISTRMS?%DISTRMS%
 
-maintainer-clean-compile:
+.PHONY: mostlyclean-compile distclean-compile
diff --git a/lib/am/configure.am b/lib/am/configure.am
new file mode 100644
index 0000000..bd2de24
--- /dev/null
+++ b/lib/am/configure.am
@@ -0,0 +1,92 @@
+## automake - create Makefile.in from Makefile.am
+## Copyright 2001
+## Free Software Foundation, Inc.
+
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2, or (at your option)
+## any later version.
+
+## This program is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU General Public License for more details.
+
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+## 02111-1307, USA.
+
+## --------------------- ##
+## Building Makefile.*.  ##
+## --------------------- ##
+
+## This rule remakes the Makefile.in.
+%MAKEFILE-IN%: %MAINTAINER-MODE% %MAKEFILE-AM% %MAKEFILE-IN-DEPS% 
$(top_srcdir)/%CONFIGURE-AC% $(ACLOCAL_M4)
+       cd $(top_srcdir) && \
+         $(AUTOMAKE) --%STRICTNESS% %USE-DEPS% %MAKEFILE-AM-SOURCES%
+
+## This rule remakes the Makefile.
+%MAKEFILE%: %MAINTAINER-MODE% %MAKEFILE-IN% %MAKEFILE-DEPS% 
$(top_builddir)/config.status
+       cd $(top_builddir) && \
+         CONFIG_HEADERS= CONFIG_LINKS= \
+         CONFIG_FILES=%CONFIG-MAKEFILE% $(SHELL) ./config.status
+
+
+
+## --------------------------- ##
+## config.status & configure.  ##
+## --------------------------- ##
+
+if %?TOPDIR_P%
+## Explicitly look in srcdir for benefit of non-GNU makes.
+## Use `$(top_builddir)' for the benefit of Tru64 v5.1 make and also
+## NetBSD v1.5 make.  These `make's don't know that
+## `$(top_builddir)/config.status' and `config.status' are the same
+## file when top_builddir==`.'.
+$(top_builddir)/config.status: $(srcdir)/configure 
$(CONFIG_STATUS_DEPENDENCIES)
+       $(SHELL) ./config.status --recheck
+
+## Always require configure.ac and configure at top level, even if they
+## don't exist.  This is especially important for configure, since it
+## won't be created until autoconf is run -- which might be after
+## automake is run.
+DIST_COMMON += configure %CONFIGURE-AC%
+
+## Explicitly look in srcdir for benefit of non-GNU makes.
+$(srcdir)/configure: %MAINTAINER-MODE% $(srcdir)/%CONFIGURE-AC% $(ACLOCAL_M4) 
$(CONFIGURE_DEPENDENCIES)
+       cd $(srcdir) && $(AUTOCONF)
+endif %?TOPDIR_P%
+
+
+
+## ------------ ##
+## aclocal.m4.  ##
+## ------------ ##
+
+if %?TOPDIR_P%
+if  %?REGEN-ACLOCAL-M4%
+$(ACLOCAL_M4): %MAINTAINER-MODE% %CONFIGURE-AC% %ACLOCAL_M4_DEPS%
+       cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+endif  %?REGEN-ACLOCAL-M4%
+endif %?TOPDIR_P%
+
+
+## --------- ##
+## cleanup.  ##
+## --------- ##
+
+
+## We special-case config.status here.  If we do it as part of the
+## normal clean processing for this directory, then it might be
+## removed before some subdir is cleaned.  However, that subdir's
+## Makefile depends on config.status.
+
+if %?TOPDIR_P%
+distclean:
+       -rm -f config.status config.cache config.log
+
+## Note: you might think we should remove Makefile.in, configure, or
+## aclocal.m4 here in a maintainer-clean rule.  However, the GNU
+## Coding Standards explicitly prohibit this.
+endif %?TOPDIR_P%
diff --git a/lib/am/data.am b/lib/am/data.am
index 82883d6..f7b48c2 100644
--- a/lib/am/data.am
+++ b/lib/am/data.am
@@ -1,5 +1,5 @@
 ## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996, 1998 Free Software Foundation, Inc.
+## Copyright 1994, 1995, 1996, 1998, 1999, 2001 Free Software Foundation, Inc.
 
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -15,23 +15,62 @@
 ## along with this program; if not, write to the Free Software
 ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 ## 02111-1307, USA.
address@hidden@DATA: $(@address@hidden)
+
+## ------------ ##
+## Installing.  ##
+## ------------ ##
+
+if %?INSTALL%
+_am_installdirs += $(DESTDIR)$(%NDIR%dir)
+?EXEC?.PHONY install-exec-am: install-%DIR%%PRIMARY%
+?!EXEC?.PHONY install-data-am: install-%DIR%%PRIMARY%
+install-%DIR%%PRIMARY%: $(%DIR%_%PRIMARY%)
        @$(NORMAL_INSTALL)
-       $(mkinstalldirs) $(DESTDIR)$(@address@hidden)
+       $(mkinstalldirs) $(DESTDIR)$(%NDIR%dir)
 ## Funny invocation because Makefile variable can be empty, leading to
 ## a syntax error in sh.
-       @list='$(@address@hidden)'; for p in $$list; do \
-         if test -f $(srcdir)/$$p; then \
-           echo " $(INSTALL_DATA) $(srcdir)/$$p 
$(DESTDIR)$(@address@hidden)/$$p"; \
-           $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(@address@hidden)/$$p; \
-         else if test -f $$p; then \
-           echo " $(INSTALL_DATA) $$p $(DESTDIR)$(@address@hidden)/$$p"; \
-           $(INSTALL_DATA) $$p $(DESTDIR)$(@address@hidden)/$$p; \
-         fi; fi; \
+       @list='$(%DIR%_%PRIMARY%)'; for p in $$list; do \
+## A file can be in the source directory or the build directory.
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+## If the _%PRIMARY% variable has an entry like foo/bar, install it as
+## $(destdir)/bar, not $(destdir)/foo/bar.  The user can always make a
+## new dir variable for the latter case.
+?BASE?   f="`echo $$p | sed -e 's|^.*/||'`"; \
+?!BASE?          f="$$p"; \
+         echo " $(INSTALL_%ONE_PRIMARY%) $$d$$p $(DESTDIR)$(%NDIR%dir)/$$f"; \
+         $(INSTALL_%ONE_PRIMARY%) $$d$$p $(DESTDIR)$(%NDIR%dir)/$$f; \
        done
+endif %?INSTALL%
+
 
address@hidden@DATA:
+## -------------- ##
+## Uninstalling.  ##
+## -------------- ##
+
+if %?INSTALL%
+.PHONY uninstall-am: uninstall-%DIR%%PRIMARY%
+uninstall-%DIR%%PRIMARY%:
        @$(NORMAL_UNINSTALL)
-       list='$(@address@hidden)'; for p in $$list; do \
-         rm -f $(DESTDIR)$(@address@hidden)/$$p; \
+       @list='$(%DIR%_%PRIMARY%)'; for p in $$list; do \
+?BASE?   f="`echo $$p | sed -e 's|^.*/||'`"; \
+?!BASE?          f="$$p"; \
+         echo " rm -f $(DESTDIR)$(%NDIR%dir)/$$f"; \
+         rm -f $(DESTDIR)$(%NDIR%dir)/$$f; \
        done
+endif %?INSTALL%
+
+
+## ---------- ##
+## Cleaning.  ##
+## ---------- ##
+
+## Nothing.
+
+
+## -------------- ##
+## Distributing.  ##
+## -------------- ##
+
+if %?DIST%
+DIST_COMMON += $(%DIR%_%PRIMARY%)
+endif %?DIST%
diff --git a/lib/am/dejagnu.am b/lib/am/dejagnu.am
index fbe0943..0c78ab4 100644
--- a/lib/am/dejagnu.am
+++ b/lib/am/dejagnu.am
@@ -1,5 +1,5 @@
 ## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
+## Copyright 1994, 1995, 1996, 1997, 2000, 2001 Free Software Foundation, Inc.
 
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -23,22 +23,74 @@ RUNTESTFLAGS =
 DEJATOOL = $(PACKAGE)
 
 ## Default flags to pass to dejagnu.  The user can override this.
-RUNTESTDEFAULTFLAGS = --tool $(DEJATOOL) --srcdir $$srcdir
+RUNTESTDEFAULTFLAGS = --tool $$tool --srcdir $$srcdir
 
+## In Cygnus mode, these are found in the build tree.
+## Otherwise they are looked for in $PATH.
+if %?CYGNUS%
+EXPECT = `if test -f $(top_builddir)/../expect/expect; then \
+            echo $(top_builddir)/../expect/expect; \
+          else \
+            echo expect; \
+          fi`
+
+RUNTEST = `if test -f $(top_srcdir)/../dejagnu/runtest; then \
+             echo $(top_srcdir)/../dejagnu/runtest; \
+           else \
+             echo runtest; \
+           fi`
+else ! %?CYGNUS%
+EXPECT = expect
+RUNTEST = runtest
+endif ! %?CYGNUS%
+
+
+.PHONY: check-DEJAGNU
 check-DEJAGNU: site.exp
 ## Life is easiest with an absolute srcdir, so do that.
-       srcdir=`cd $(srcdir) && pwd`; export srcdir; \
+       srcdir=`CDPATH=: && cd $(srcdir) && pwd`; export srcdir; \
        EXPECT=$(EXPECT); export EXPECT; \
 ## Allow this to work when expect and DejaGNU are in tree.
 ## Only required when --cygnus in force.
-CYGNUS if [ -f $(top_builddir)/../expect/expect ]; then \
-CYGNUS   TCL_LIBRARY=`cd $(top_srcdir)/../tcl/library && pwd`; \
-CYGNUS   export TCL_LIBRARY; \
-CYGNUS fi; \
+?CYGNUS?       if [ -f $(top_builddir)/../expect/expect ]; then \
+?CYGNUS?         TCL_LIBRARY=`CDPATH=: && cd $(top_srcdir)/../tcl/library && 
pwd`; \
+?CYGNUS?         export TCL_LIBRARY; \
+?CYGNUS?       fi; \
        runtest=$(RUNTEST); \
 ## If runtest can't be found, print a warning but don't die.  It is
 ## pointless to cause a failure if the tests cannot be run at all.
        if $(SHELL) -c "$$runtest --version" > /dev/null 2>&1; then \
-         $$runtest $(RUNTESTDEFAULTFLAGS) $(RUNTESTFLAGS); \
+         l='$(DEJATOOL)'; for tool in $$l; do \
+           $$runtest $(AM_RUNTESTFLAGS) $(RUNTESTDEFAULTFLAGS) 
$(RUNTESTFLAGS); \
+         done; \
        else echo "WARNING: could not find \`runtest'" 1>&2; :;\
        fi
+
+
+## ------------------- ##
+## Building site.exp.  ##
+## ------------------- ##
+
+## Note that in the rule we don't directly generate site.exp to avoid
+## the possibility of a corrupted site.exp if make is interrupted.
+## Jim Meyering has some useful text on this topic.
+site.exp: Makefile
+       @echo 'Making a new site.exp file...'
+       @echo '## these variables are automatically generated by make ##' 
>site.tmp
+       @echo '# Do not edit here.  If you wish to override these values' 
>>site.tmp
+       @echo '# edit the last section' >>site.tmp
+       @echo 'set tool $(DEJATOOL)' >>site.tmp
+       @echo 'set srcdir $(srcdir)' >>site.tmp
+       @echo "set objdir `pwd`" >>site.tmp
+?BUILD?        @echo 'set build_alias $(build_alias)' >>site.tmp
+?BUILD?        @echo 'set build_triplet $(build_triplet)' >>site.tmp
+?HOST? @echo 'set host_alias $(host_alias)' >>site.tmp
+?HOST? @echo 'set host_triplet $(host_triplet)' >>site.tmp
+?TARGET?       @echo 'set target_alias $(target_alias)' >>site.tmp
+?TARGET?       @echo 'set target_triplet $(target_triplet)' >>site.tmp
+       @echo '## All variables above are generated by configure. Do Not Edit 
##' >>site.tmp
+       @test ! -f site.exp || \
+         sed '1,/^## All variables above are.*##/ d' site.exp >> site.tmp
+       @-rm -f site.bak
+       @test ! -f site.exp || mv site.exp site.bak
+       @mv site.tmp site.exp
diff --git a/lib/am/depend.am b/lib/am/depend.am
index 9717458..d2c1186 100644
--- a/lib/am/depend.am
+++ b/lib/am/depend.am
@@ -1,5 +1,6 @@
 ## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999 Free Software Foundation, 
Inc.
+## Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2001
+## Free Software Foundation, Inc.
 
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -16,22 +17,8 @@
 ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 ## 02111-1307, USA.
 
-## This fragment is probably only useful for maintainers.  It relies
-## on GNU make and gcc.  It is only included in the generated
-## Makefile.in if `automake' is not passed the `--include-deps' flag.
-
-## We must create the .deps directory if it doesn't exist.  We do it
-## in this strange way to make sure the .deps directory exists,
-## without trying to run mkdir for each compilation.
-DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
-
--include $(DEP_FILES)
-
-mostlyclean-depend:
-
-clean-depend:
-
+distclean-am: distclean-depend
 distclean-depend:
-       -rm -rf .deps
+       -rm -rf $(DEPDIR)
 
-maintainer-clean-depend:
+.PHONY: distclean-depend
diff --git a/lib/am/depend2.am b/lib/am/depend2.am
index dec3e82..466f165 100644
--- a/lib/am/depend2.am
+++ b/lib/am/depend2.am
@@ -1,5 +1,6 @@
 ## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994-1998, 1999 Free Software Foundation, Inc.
+## Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+## Free Software Foundation, Inc.
 
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -15,45 +16,48 @@
 ## along with this program; if not, write to the Free Software
 ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 ## 02111-1307, USA.
-%.o: address@hidden@
-       @echo '$(@address@hidden) -c $<'; \
-## There are various ways to get dependency output from gcc.  Here's
-## why we pick this rather obscure method:
-## - Don't want to use -MD because we'd like the dependencies to end
-##   up in a subdir.  Having to rename by hand is ugly.
-##   (We might end up doing this anyway to support other compilers.)
-## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
-##   -MM, not -M (despite what the docs say).
-## - Using -M directly means running the compiler twice (even worse
-##   than renaming).
-       $(@address@hidden) -Wp,-MD,.deps/$(*F).pp -c $<
-## This next piece of magic avoids the `deleted header file' problem.
-## The problem is that when a header file which appears in a .P file
-## is deleted, the dependency causes make to die (because there is
-## typically no way to rebuild the header).  We avoid this by adding
-## dummy dependencies for each header file.  Too bad gcc doesn't do
-## this for us directly.
-       @-cp .deps/$(*F).pp .deps/$(*F).P; \
-       tr ' ' '\012' < .deps/$(*F).pp \
-## Some versions of gcc put a space before the `:'.  On the theory
-## that the space means something, we add a space to the output as
-## well.
-         | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
-           >> .deps/$(*F).P; \
-       rm .deps/$(*F).pp
-
-%.lo: address@hidden@
-       @echo '$(address@hidden@COMPILE) -c $<'; \
-## See above to understand implementation weirdness.
-       $(address@hidden@COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
-## Account for versions of gcc that put a space before the `:'.
-       @-sed -e 's/^\([^:]*\)\.o[      ]*:/\1.lo \1.o :/' \
-         < .deps/$(*F).pp > .deps/$(*F).P; \
-## See above to understand deleted header file trick.
-       tr ' ' '\012' < .deps/$(*F).pp \
-## Some versions of gcc put a space before the `:'.  On the theory
-## that the space means something, we add a space to the output as
-## well.
-         | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
-           >> .deps/$(*F).P; \
-       rm -f .deps/$(*F).pp
+
+## This file is read several times:
+## - once per *extention* (not per language) for generic compilation rules
+## - once for each file which requires specific flags.
+
+## Note it is on purpose we wrote `if %AMDEP%', since:
+##
+## - if deps are turned off, %AMDEP% is mapped onto FALSE, and therefore
+##   the `if FALSE' chunk is removed (automake-time conditionals).
+##
+## - if deps are on, %AMDEP% is mapped onto AMDEP,  and therefore
+##   the `if AMDEP' chunk is prefix with @AMDEP_TRUE@ just like for any
+##   other configure-time conditional.
+
+?GENERIC?.%EXT%.o:
+?!GENERIC?%OBJ%: %SOURCE%
+if %AMDEP%
+       source='%SOURCE%' object='%OBJ%' libtool=no @AMDEPBACKSLASH@
+       depfile='$(DEPDIR)/%BASE%.Po' tmpdepfile='$(DEPDIR)/%BASE%.TPo' 
@AMDEPBACKSLASH@
+       $(%FPFX%DEPMODE) $(depcomp) @AMDEPBACKSLASH@
+endif %AMDEP%
+?-o?   %COMPILE% %-c% %-o% %OBJ% `test -f %SOURCE% || echo 
'$(srcdir)/'`%SOURCE%
+?!-o?  %COMPILE% %-c% `test -f %SOURCE% || echo '$(srcdir)/'`%SOURCE%
+
+?GENERIC?.%EXT%.obj:
+?!GENERIC?%OBJOBJ%: %SOURCE%
+if %AMDEP%
+       source='%SOURCE%' object='%OBJOBJ%' libtool=no @AMDEPBACKSLASH@
+       depfile='$(DEPDIR)/%BASE%.Po' tmpdepfile='$(DEPDIR)/%BASE%.TPo' 
@AMDEPBACKSLASH@
+       $(%FPFX%DEPMODE) $(depcomp) @AMDEPBACKSLASH@
+endif %AMDEP%
+?-o?   %COMPILE% %-c% %-o% %OBJOBJ% `cygpath -w %SOURCE%`
+?!-o?  %COMPILE% %-c% `cygpath -w %SOURCE%`
+
+if %?LIBTOOL%
+?GENERIC?.%EXT%.lo:
+?!GENERIC?%LTOBJ%: %SOURCE%
+if  %AMDEP%
+       source='%SOURCE%' object='%LTOBJ%' libtool=yes @AMDEPBACKSLASH@
+       depfile='$(DEPDIR)/%BASE%.Plo' tmpdepfile='$(DEPDIR)/%BASE%.TPlo' 
@AMDEPBACKSLASH@
+       $(%FPFX%DEPMODE) $(depcomp) @AMDEPBACKSLASH@
+endif  %AMDEP%
+## We can always use `-o' with Libtool.
+       %LTCOMPILE% %-c% -o %LTOBJ% `test -f %SOURCE% || echo 
'$(srcdir)/'`%SOURCE%
+endif %?LIBTOOL%
diff --git a/lib/am/distdir.am b/lib/am/distdir.am
new file mode 100644
index 0000000..0a01c4e
--- /dev/null
+++ b/lib/am/distdir.am
@@ -0,0 +1,276 @@
+## automake - create Makefile.in from Makefile.am
+## Copyright 2001 Free Software Foundation, Inc.
+
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2, or (at your option)
+## any later version.
+
+## This program is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU General Public License for more details.
+
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+## 02111-1307, USA.
+
+.PHONY: distdir
+
+## DIST_COMMON comes first so that README can be the very first file.
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = %TOP_DISTDIR%
+if %?TOPDIR_P%
+# Avoid unsightly `./'.
+?DISTDIR?distdir = $(PACKAGE)-$(VERSION)
+else !%?TOPDIR_P%
+?DISTDIR?distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
+endif !%?TOPDIR_P%
+
+distdir: $(DISTFILES)
+##
+## For Gnits users, this is pretty handy.  Look at 15 lines
+## in case some explanatory text is desirable.
+##
+if %?TOPDIR_P%
+if  %?CK-NEWS%
+       @if sed 15q $(srcdir)/NEWS | fgrep -e "$(VERSION)" >/dev/null; \
+       then :; else \
+         echo "NEWS not updated; not releasing" 1>&2; \
+         exit 1; \
+       fi
+endif  %?CK-NEWS%
+endif %?TOPDIR_P%
+##
+## Only for the top dir.
+##
+if %?TOPDIR_P%
+       -chmod -R a+w $(distdir) >/dev/null 2>&1; rm -rf $(distdir)
+       mkdir $(distdir)
+endif %?TOPDIR_P%
+##
+##
+?DISTDIRS?     $(mkinstalldirs) %DISTDIRS%
+##
+##
+       @for file in $(DISTFILES); do \
+##
+## Always look for the file in the build directory first.  That way
+## for something like yacc output we will correctly pick up the latest
+## version.
+##
+         if test -f $$file; then d=.; else d=$(srcdir); fi; \
+##
+## Make the subdirectory for the file.  This is going to make `dist'
+## really crawl, but it seems like the only way to do it, given that
+## files in subdirectories can be specified for `dist' conditionally.
+##
+         dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+         if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+           $(mkinstalldirs) "$(distdir)/$$dir"; \
+         fi; \
+##
+## In loop, test for file existence because sometimes a file gets
+## included in DISTFILES twice.  For example this happens when a single
+## source file is used in building more than one program.  Also, there
+## are situations in which "ln" can fail.  For instance a file to
+## distribute could actually be a cross-filesystem symlink -- this can
+## easily happen if "gettextize" was run on the distribution.
+##
+         if test -d $$d/$$file; then \
+## Don't mention $$file in destination argument, since this fails if
+## destination directory already exists.  Also, use `-R' and not `-r'.
+## `-r' is almost always incorrect.
+           cp -pR $$d/$$file $(distdir) \
+           || exit 1; \
+         else \
+           test -f $(distdir)/$$file \
+           || cp -p $$d/$$file $(distdir)/$$file \
+           || exit 1; \
+         fi; \
+       done
+##
+## Test for directory existence here because previous automake
+## invocation might have created some directories.  Note that we
+## explicitly set distdir for the subdir make; that lets us mix-n-match
+## many automake-using packages into one large package, and have "dist"
+## at the top level do the right thing.  If we're in the topmost
+## directory, then we use `distdir' instead of `top_distdir'; this lets
+## us work correctly with an enclosing package.
+##
+if %?SUBDIRS%
+       for subdir in $(%DIST_SUBDIR_NAME%); do \
+         if test "$$subdir" = .; then :; else \
+           test -d $(distdir)/$$subdir \
+           || mkdir $(distdir)/$$subdir \
+           || exit 1; \
+           (cd $$subdir && \
+             $(MAKE) $(AM_MAKEFLAGS) \
+               top_distdir="$(top_distdir)" \
+               distdir=../$(distdir)/$$subdir \
+               distdir) \
+             || exit 1; \
+         fi; \
+       done
+endif %?SUBDIRS%
+##
+## We might have to perform some last second updates, such as updating
+## info files.
+## We must explicitly set distdir and top_distdir for these sub-makes.
+##
+if %?DIST-TARGETS%
+       $(MAKE) $(AM_MAKEFLAGS) \
+         top_distdir="${top_distdir}" distdir="$(distdir)" \
+         %DIST-TARGETS%
+endif %?DIST-TARGETS%
+##
+## This complex find command will try to avoid changing the modes of
+## links into the source tree, in case they're hard-linked.
+##
+## Ignore return result from chmod, because it might give an error
+## if we chmod a symlink.
+##
+## Another nastiness: if the file is unreadable by us, we make it
+## readable regardless of the number of links to it.  This only
+## happens in perverse cases.
+##
+## We use $(install_sh) because that is a known-portable way to modify
+## the file in place in the source tree.
+##
+if %?TOPDIR_P%
+       -find "$(distdir)" -type d ! -perm -755 \
+               -exec chmod u+rwx,go+rx {} \; -o \
+         ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
+         ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
+         ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} 
\; \
+       || chmod -R a+r $(distdir)
+endif %?TOPDIR_P%
+
+
+
+
+## --------------------------------------- ##
+## Building various distribution flavors.  ##
+## --------------------------------------- ##
+
+## Note that we don't use GNU tar's `-z' option.  One reason (but not
+## the only reason) is that some versions of tar (e.g., OSF1)
+## interpret `-z' differently.
+
+if %?TOPDIR_P%
+
+GZIP_ENV = --best
+.PHONY: dist
+dist: distdir
+       $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+       -chmod -R a+w $(distdir) >/dev/null 2>&1; rm -rf $(distdir)
+
+if  %?BZIP2%
+.PHONY: dist-bzip2
+dist-bzip2: distdir
+       $(AMTAR) chof - $(distdir) | bzip2 -9 -c >$(distdir).tar.bz2
+       -chmod -R a+w $(distdir) >/dev/null 2>&1; rm -rf $(distdir)
+endif  %?BZIP2%
+
+
+if  %?COMPRESS%
+.PHONY: dist-tarZ
+dist-tarZ: distdir
+       $(AMTAR) chof - $(distdir) | compress -c >$(distdir).tar.Z
+       -chmod -R a+w $(distdir) >/dev/null 2>&1; rm -rf $(distdir)
+endif  %?COMPRESS%
+
+
+if  %?SHAR%
+.PHONY: dist-shar
+dist-shar: distdir
+       shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
+       -chmod -R a+w $(distdir) >/dev/null 2>&1; rm -rf $(distdir)
+endif  %?SHAR%
+
+
+if  %?ZIP%
+.PHONY: dist-zip
+dist-zip: distdir
+       -rm -f $(distdir).zip
+       zip -rq $(distdir).zip $(distdir)
+       -chmod -R a+w $(distdir) >/dev/null 2>&1; rm -rf $(distdir)
+endif  %?ZIP%
+
+endif %?TOPDIR_P%
+
+
+
+## ------------------------------------------------- ##
+## Building all the requested distribution flavors.  ##
+## ------------------------------------------------- ##
+
+## Currently we cannot use if/endif inside a rule.  The file_contents
+## parser needs work.
+
+if %?TOPDIR_P%
+
+.PHONY: dist-all
+dist-all: distdir
+       $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+?BZIP2?        $(AMTAR) chof - $(distdir) | bzip2 -9 -c >$(distdir).tar.bz2
+?COMPRESS?     $(AMTAR) chof - $(distdir) | compress -c >$(distdir).tar.Z
+?SHAR? shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
+?ZIP?  -rm -f $(distdir).zip
+?ZIP?  zip -rq $(distdir).zip $(distdir)
+       -chmod -R a+w $(distdir) >/dev/null 2>&1; rm -rf $(distdir)
+
+endif %?TOPDIR_P%
+
+
+## ------------------------- ##
+## Checking a distribution.  ##
+## ------------------------- ##
+
+
+if %?TOPDIR_P%
+# This target untars the dist file and tries a VPATH configuration.  Then
+# it guarantees that the distribution is self-contained by making another
+# tarfile.
+.PHONY: distcheck
+distcheck: dist
+## Make sure we can remove distdir before trying to remove it.
+       -chmod -R a+w $(distdir) > /dev/null 2>&1; rm -rf $(distdir)
+       GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf -
+## Make the new source tree read-only.  Distributions ought to work in
+## this case.  However, make the top-level directory writable so we
+## can make our new subdirs.
+       chmod -R a-w $(distdir); chmod a+w $(distdir)
+       mkdir $(distdir)/=build
+       mkdir $(distdir)/=inst
+## Undo the write access.
+       chmod a-w $(distdir)
+       dc_install_base=`CDPATH=: && cd $(distdir)/=inst && pwd` \
+?DISTCHECK-HOOK?         && $(MAKE) $(AM_MAKEFLAGS) distcheck-hook \
+         && cd $(distdir)/=build \
+         && ../configure --srcdir=.. --prefix=$$dc_install_base \
+?GETTEXT?          --with-included-gettext \
+         && $(MAKE) $(AM_MAKEFLAGS) \
+         && $(MAKE) $(AM_MAKEFLAGS) dvi \
+         && $(MAKE) $(AM_MAKEFLAGS) check \
+         && $(MAKE) $(AM_MAKEFLAGS) install \
+         && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+         && $(MAKE) $(AM_MAKEFLAGS) uninstall \
+## We use -le 1 because the `dir' file might still exist after uninstall.
+         && (test `find $$dc_install_base -type f -print | wc -l` -le 1 \
+            || (echo "Error: files left after uninstall" 1>&2; \
+                exit 1) ) \
+         && $(MAKE) $(AM_MAKEFLAGS) dist \
+         && $(MAKE) $(AM_MAKEFLAGS) distclean \
+## Make sure to remove the dist file we created in the test build
+## directory.
+         && rm -f $(distdir).tar.gz \
+         && (test `find . -type f -print | wc -l` -eq 0 \
+            || (echo "Error: files left after distclean" 1>&2; \
+                exit 1) )
+       -chmod -R a+w $(distdir) > /dev/null 2>&1; rm -rf $(distdir)
+       @echo "$(distdir).tar.gz is ready for distribution" | \
+         sed 'h;s/./=/g;p;x;p;x'
+endif %?TOPDIR_P%
diff --git a/lib/am/footer.am b/lib/am/footer.am
index 6fee90d..edea04e 100644
--- a/lib/am/footer.am
+++ b/lib/am/footer.am
@@ -1,5 +1,5 @@
 ## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc.
+## Copyright 1994, 1995, 1996 Free Software Foundation, Inc.
 
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
diff --git a/lib/am/header-vars.am b/lib/am/header-vars.am
index 1dd0813..1e09146 100644
--- a/lib/am/header-vars.am
+++ b/lib/am/header-vars.am
@@ -1,5 +1,6 @@
 ## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+## Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000
+## Free Software Foundation, Inc.
 
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -36,7 +37,15 @@ mandir = @mandir@
 includedir = @includedir@
 oldincludedir = /usr/include
 
-DESTDIR =
address@hidden@
+
+## We used to define this.  However, we don't because vendor makes
+## (e.g., Solaris, Irix) won't correctly propagate variables that are
+## defined in Makefile.  This particular variable can't be correctly
+## defined by configure (at least, not the current configure), so we
+## simply avoid defining it to allow the user to use this feature with
+## a vendor make.
+## DESTDIR =
 
 ## Some derived variables that have been found to be useful.
 pkgdatadir = $(datadir)/@PACKAGE@
@@ -44,7 +53,7 @@ pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 
 ## Location of top build directory relative to this one.
-top_builddir = @top_builddir@
+top_builddir = %TOPDIR%
 
 ACLOCAL = @ACLOCAL@
 AUTOCONF = @AUTOCONF@
@@ -52,12 +61,10 @@ AUTOMAKE = @AUTOMAKE@
 AUTOHEADER = @AUTOHEADER@
 
 INSTALL = @INSTALL@
-## We use AM_INSTALL_PROGRAM_FLAGS so that install-strip can pass -s
-## easily.  We can't just set INSTALL_PROGRAM because that might have
-## a relative path.
-INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_HEADER = $(INSTALL_DATA)
 transform = @program_transform_name@
 
 ## These are defined because otherwise make on NetBSD V1.1 will print
@@ -68,3 +75,14 @@ POST_INSTALL = :
 NORMAL_UNINSTALL = :
 PRE_UNINSTALL = :
 POST_UNINSTALL = :
+
+## FIXME: Why the heck are _triplet variables not defined from the
+## _triplet values?
+## FIXME: this should probably use generic %configure_vars method.
+## Let's wait until we rely upon traces.
+?BUILD?build_alias = @build_alias@
+?BUILD?build_triplet = @build@
+?HOST?host_alias = @host_alias@
+?HOST?host_triplet = @host@
+?TARGET?target_alias = @target_alias@
+?TARGET?target_triplet = @target@
diff --git a/lib/am/header.am b/lib/am/header.am
index d0ae6ba..bc94445 100644
--- a/lib/am/header.am
+++ b/lib/am/header.am
@@ -1,5 +1,5 @@
 ## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996, 1998 Free Software Foundation, Inc.
+## Copyright 1994, 1995, 1996, 1998, 1999, 2001 Free Software Foundation, Inc.
 
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -15,20 +15,7 @@
 ## along with this program; if not, write to the Free Software
 ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 ## 02111-1307, USA.
address@hidden@HEADERS: $(@address@hidden)
-       @$(NORMAL_INSTALL)
-       $(mkinstalldirs) $(DESTDIR)$(@address@hidden)
-## Funny invocation because Makefile variable can be empty, leading to
-## a syntax error in sh.
-       @list='$(@address@hidden)'; for p in $$list; do \
-## A header file can be in the source directory or the build directory.
-         if test -f "$$p"; then d= ; else d="$(srcdir)/"; fi; \
-         echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(@address@hidden)/$$p"; \
-         $(INSTALL_DATA) $$d$$p $(DESTDIR)$(@address@hidden)/$$p; \
-       done
 
address@hidden@HEADERS:
-       @$(NORMAL_UNINSTALL)
-       list='$(@address@hidden)'; for p in $$list; do \
-         rm -f $(DESTDIR)$(@address@hidden)/$$p; \
-       done
+
+## Exactly the same as data.am.
+include data.am
diff --git a/lib/am/install.am b/lib/am/install.am
new file mode 100644
index 0000000..45c059b
--- /dev/null
+++ b/lib/am/install.am
@@ -0,0 +1,70 @@
+## automake - create Makefile.in from Makefile.am
+## Copyright 2001 Free Software Foundation, Inc.
+
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2, or (at your option)
+## any later version.
+
+## This program is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU General Public License for more details.
+
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+## 02111-1307, USA.
+
+## -------------------------- ##
+## Creating the installdirs.  ##
+## -------------------------- ##
+?SUBDIRS?.PHONY: installdirs installdirs-am installdirs-recursive
+?SUBDIRS?installdirs: installdirs-recursive
+?SUBDIRS?installdirs-am:
+?SUBDIRS??_am_installdirs?     $(mkinstalldirs) %_am_installdirs%
+
+?!SUBDIRS?.PHONY: installdirs
+?!SUBDIRS?installdirs:
+?!SUBDIRS??_am_installdirs?    $(mkinstalldirs) %_am_installdirs%
+
+
+## ----------------- ##
+## Install targets.  ##
+## ----------------- ##
+
+.PHONY: install install-exec install-data uninstall
+
+?SUBDIRS?.PHONY: install-recursive install-exec-recursive 
install-data-recursive uninstall-recursive
+?SUBDIRS?install: install-recursive
+?SUBDIRS?install-exec: install-exec-recursive
+?SUBDIRS?install-data: install-data-recursive
+?SUBDIRS?uninstall: uninstall-recursive
+
+.PHONY: install-exec-am install-data-am uninstall-am
+?!SUBDIRS?install: install-am
+?!SUBDIRS?install-exec: install-exec-am
+?!SUBDIRS?install-data: install-data-am
+?!SUBDIRS?uninstall: uninstall-am
+
+.PHONY: install-am
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+
+.PHONY: installcheck
+?SUBDIRS?installcheck: installcheck-recursive
+?!SUBDIRS?installcheck: installcheck-am
+?!SUBDIRS?.PHONY: installcheck-am
+?!SUBDIRS?installcheck-am:
+
+## If you ever modify this, keep in mind that INSTALL_PROGRAM is used
+## in subdirectories, so never set it to a value relative to the top
+## directory.
+.PHONY: install-strip
+install-strip:
+## Use double quotes here because we might need to interpolate some
+## backquotes at runtime.
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
diff --git a/lib/am/java.am b/lib/am/java.am
index b72cdc2..c44a4b8 100644
--- a/lib/am/java.am
+++ b/lib/am/java.am
@@ -1,5 +1,5 @@
 ## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1998 Free Software Foundation, Inc.
+## Copyright 1998, 1999, 2001 Free Software Foundation, Inc.
 
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -15,19 +15,72 @@
 ## along with this program; if not, write to the Free Software
 ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 ## 02111-1307, USA.
address@hidden@JAVA: address@hidden@.stamp
+
+
+## ---------- ##
+## Building.  ##
+## ---------- ##
+
+JAVAC = javac
+JAVACFLAGS =
+CLASSPATH_ENV = CLASSPATH=$(JAVAROOT):$(srcdir)/$(JAVAROOT):$$CLASSPATH
+JAVAROOT = $(top_builddir)
+
+class%DIR%.stamp: $(%DIR%_JAVA)
+       $(CLASSPATH_ENV) $(JAVAC) -d $(JAVAROOT) \
+         $(AM_JAVACFLAGS) $(JAVACFLAGS) $?
+       echo timestamp > class%DIR%.stamp
+
+
+## ------------ ##
+## Installing.  ##
+## ------------ ##
+
+if %?INSTALL%
+_am_installdirs += $(DESTDIR)$(%NDIR%dir)
+?EXEC?.PHONY install-exec-am: install-%DIR%JAVA
+?!EXEC?.PHONY install-data-am: install-%DIR%JAVA
+install-%DIR%JAVA: class%DIR%.stamp
        @$(NORMAL_INSTALL)
-       $(mkinstalldirs) $(DESTDIR)$(@address@hidden)
+       $(mkinstalldirs) $(DESTDIR)$(%NDIR%dir)
 ## A single .java file can be compiled into multiple .class files.  So
 ## we just install all the .class files that got built into this
 ## directory.  This is not optimal, but will have to do for now.
        for p in *.class; do \
-         echo " $(INSTALL_DATA) $$p $(DESTDIR)$(@address@hidden)/$$p"; \
-         $(INSTALL_DATA) $$p $(DESTDIR)$(@address@hidden)/$$p; \
+         echo " $(INSTALL_DATA) $$p $(DESTDIR)$(%NDIR%dir)/$$p"; \
+         $(INSTALL_DATA) $$p $(DESTDIR)$(%NDIR%dir)/$$p; \
        done
+endif %?INSTALL%
+
 
address@hidden@JAVA:
+## -------------- ##
+## Uninstalling.  ##
+## -------------- ##
+
+if %?INSTALL%
+.PHONY uninstall-am: uninstall-%DIR%JAVA
+uninstall-%DIR%JAVA:
        @$(NORMAL_UNINSTALL)
-       for p in *.class; do \
-         rm -f $(DESTDIR)$(@address@hidden)/$$p; \
+       @for p in *.class; do \
+         echo " rm -f $(DESTDIR)$(%NDIR%dir)/$$p"; \
+         rm -f $(DESTDIR)$(%NDIR%dir)/$$p; \
        done
+endif %?INSTALL%
+
+
+## ---------- ##
+## Cleaning.  ##
+## ---------- ##
+
+.PHONY clean-am: clean-%DIR%JAVA
+clean-%DIR%JAVA:
+       -rm -f *.class class%DIR%.stamp
+
+
+## -------------- ##
+## Distributing.  ##
+## -------------- ##
+
+if %?DIST%
+DIST_COMMON += $(%DIR%_JAVA)
+endif %?DIST%
diff --git a/lib/am/lang-compile.am b/lib/am/lang-compile.am
new file mode 100644
index 0000000..02def50
--- /dev/null
+++ b/lib/am/lang-compile.am
@@ -0,0 +1,52 @@
+## automake - create Makefile.in from Makefile.am
+## Copyright 2001 Free Software Foundation, Inc.
+
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2, or (at your option)
+## any later version.
+
+## This program is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU General Public License for more details.
+
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+## 02111-1307, USA.
+
+## This file is read once per *language*, not per extension.
+
+## ----------------------------- ##
+## Common to all the languages.  ##
+## ----------------------------- ##
+
+## Dependency tracking.
+if %AMDEP%
+%FPFX%DEPMODE = @%FPFX%DEPMODE@
+endif %AMDEP%
+
+
+
+## ------------------------- ##
+## Preprocessed Fortran 77.  ##
+## ------------------------- ##
+
+## We also handle the case of preprocessing `.F' files into `.f' files.
+if %?PPF77%
+.F.f:
+       $(F77COMPILE) -F $<
+endif %?PPF77%
+
+
+
+## -------- ##
+## Ratfor.  ##
+## -------- ##
+
+## We also handle the case of preprocessing `.r' files into `.f' files.
+if %?RATFOR%
+.r.f:
+       $(RCOMPILE) -F $<
+endif %?RATFOR%
diff --git a/lib/am/lex.am b/lib/am/lex.am
new file mode 100644
index 0000000..e835668
--- /dev/null
+++ b/lib/am/lex.am
@@ -0,0 +1,28 @@
+## automake - create Makefile.in from Makefile.am
+## Copyright 2001 Free Software Foundation, Inc.
+
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2, or (at your option)
+## any later version.
+
+## This program is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU General Public License for more details.
+
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+## 02111-1307, USA.
+
+LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+LEXLIB = @LEXLIB@
+
+?GENERIC?.%EXT%.%DERIVED-EXT%:
+?!GENERIC?%OBJ%: %SOURCE%
+if %?MORE-THAN-ONE%
+       $(SHELL) $(YLWRAP) %SOURCE% $(LEX_OUTPUT_ROOT).c %OBJ% -- %COMPILE%
+else !%?MORE-THAN-ONE%
+       %COMPILE% %SOURCE% && mv $(LEX_OUTPUT_ROOT).c %OBJ%
+endif !%?MORE-THAN-ONE%
diff --git a/lib/am/library.am b/lib/am/library.am
index 9132ae6..404a3ee 100644
--- a/lib/am/library.am
+++ b/lib/am/library.am
@@ -1,5 +1,5 @@
 ## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc.
+## Copyright 1994, 1995, 1996, 1999 Free Software Foundation, Inc.
 
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -15,7 +15,7 @@
 ## along with this program; if not, write to the Free Software
 ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 ## 02111-1307, USA.
address@hidden@: $(@address@hidden) $(@address@hidden)
-       -rm -f @LIBRARY@
-       $(AR) cru @LIBRARY@ $(@address@hidden) $(@address@hidden)
-       $(RANLIB) @LIBRARY@
+%LIBRARY%: $(%XLIBRARY%_OBJECTS) $(%XLIBRARY%_DEPENDENCIES) %DIRSTAMP%
+       -rm -f %LIBRARY%
+       $(%XLIBRARY%_AR) %LIBRARY% $(%XLIBRARY%_OBJECTS) $(%XLIBRARY%_LIBADD)
+       $(RANLIB) %LIBRARY%
diff --git a/lib/am/libs.am b/lib/am/libs.am
index 324df39..b7e9db8 100644
--- a/lib/am/libs.am
+++ b/lib/am/libs.am
@@ -1,5 +1,5 @@
 ## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996, 1998 Free Software Foundation, Inc.
+## Copyright 1994, 1995, 1996, 1998, 1999, 2001 Free Software Foundation, Inc.
 
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -15,15 +15,35 @@
 ## along with this program; if not, write to the Free Software
 ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 ## 02111-1307, USA.
address@hidden@LIBRARIES: $(@address@hidden)
+
+
+## ----------- ##
+## Variables.  ##
+## ----------- ##
+
+if %?FIRST%
+AR = ar
+## For now this is detected when we see AC_PROG_RANLIB
+## RANLIB = @RANLIB@
+endif %?FIRST%
+
+## ------------ ##
+## Installing.  ##
+## ------------ ##
+
+if %?INSTALL%
+_am_installdirs += $(DESTDIR)$(%NDIR%dir)
+?EXEC?.PHONY install-exec-am: install-%DIR%LIBRARIES
+?!EXEC?.PHONY install-data-am: install-%DIR%LIBRARIES
+install-%DIR%LIBRARIES: $(%DIR%_LIBRARIES)
        @$(NORMAL_INSTALL)
-       $(mkinstalldirs) $(DESTDIR)$(@address@hidden)
+       $(mkinstalldirs) $(DESTDIR)$(%NDIR%dir)
 ## Funny invocation because Makefile variable can be empty, leading to
 ## a syntax error in sh.
-       @list='$(@address@hidden)'; for p in $$list; do \
+       @list='$(%DIR%_LIBRARIES)'; for p in $$list; do \
          if test -f $$p; then \
-           echo " $(INSTALL_DATA) $$p $(DESTDIR)$(@address@hidden)/$$p"; \
-           $(INSTALL_DATA) $$p $(DESTDIR)$(@address@hidden)/$$p; \
+           echo " $(INSTALL_DATA) $$p $(DESTDIR)$(%NDIR%dir)/$$p"; \
+           $(INSTALL_DATA) $$p $(DESTDIR)$(%NDIR%dir)/$$p; \
          else :; fi; \
        done
 ## We do two loops here so that $(POST_INSTALL) can be empty.  If we
@@ -32,16 +52,35 @@ address@hidden@LIBRARIES: $(@address@hidden)
 ## useless; sh never actually executes this command.  Read the GNU
 ## Standards for a little enlightenment on this.
        @$(POST_INSTALL)
-       @list='$(@address@hidden)'; for p in $$list; do \
+       @list='$(%DIR%_LIBRARIES)'; for p in $$list; do \
          if test -f $$p; then \
 ## Must ranlib after installing because mod time changes.
-           echo " $(RANLIB) $(DESTDIR)$(@address@hidden)/$$p"; \
-           $(RANLIB) $(DESTDIR)$(@address@hidden)/$$p; \
+           echo " $(RANLIB) $(DESTDIR)$(%NDIR%dir)/$$p"; \
+           $(RANLIB) $(DESTDIR)$(%NDIR%dir)/$$p; \
          else :; fi; \
        done
+endif %?INSTALL%
 
address@hidden@LIBRARIES:
+
+## -------------- ##
+## Uninstalling.  ##
+## -------------- ##
+
+if %?INSTALL%
+.PHONY uninstall-am: uninstall-%DIR%LIBRARIES
+uninstall-%DIR%LIBRARIES:
        @$(NORMAL_UNINSTALL)
-       list='$(@address@hidden)'; for p in $$list; do \
-         rm -f $(DESTDIR)$(@address@hidden)/$$p; \
+       @list='$(%DIR%_LIBRARIES)'; for p in $$list; do \
+         echo " rm -f $(DESTDIR)$(%NDIR%dir)/$$p"; \
+         rm -f $(DESTDIR)$(%NDIR%dir)/$$p; \
        done
+endif %?INSTALL%
+
+
+## ---------- ##
+## Cleaning.  ##
+## ---------- ##
+
+.PHONY clean-am: clean-%DIR%LIBRARIES
+clean-%DIR%LIBRARIES:
+       -test -z "$(%DIR%_LIBRARIES)" || rm -f $(%DIR%_LIBRARIES)
diff --git a/lib/am/libtool.am b/lib/am/libtool.am
index e748cc7..deff4b5 100644
--- a/lib/am/libtool.am
+++ b/lib/am/libtool.am
@@ -1,5 +1,6 @@
 ## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+## Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2001
+## Free Software Foundation, Inc.
 
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -15,25 +16,17 @@
 ## along with this program; if not, write to the Free Software
 ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 ## 02111-1307, USA.
-NOTDEPEND.c.lo:
-## Note that we explicitly set the libtool mode.  This avoids any lossage
-## if the program doesn't have a name that libtool expects.
-NOTDEPEND      $(LIBTOOL) --mode=compile $(COMPILE) -c $<
-
-## These are just copies of the above rule.
-.s.lo:
-       $(LIBTOOL) --mode=compile $(COMPILE) -c $<
-
-.S.lo:
-       $(LIBTOOL) --mode=compile $(COMPILE) -c $<
 
+.PHONY: mostlyclean-libtool clean-libtool distclean-libtool
+mostlyclean-am: mostlyclean-libtool
 mostlyclean-libtool:
        -rm -f *.lo
 
+clean-am: clean-libtool
 clean-libtool:
 ## .libs is for Unix, _libs for DOS.
        -rm -rf .libs _libs
 
-distclean-libtool:
-
-maintainer-clean-libtool:
+?TOPDIR?distclean-am: distclean-libtool
+?TOPDIR?distclean-libtool:
+?TOPDIR?       -rm -f libtool
diff --git a/lib/am/lisp.am b/lib/am/lisp.am
index 9dfc5ca..be68f82 100644
--- a/lib/am/lisp.am
+++ b/lib/am/lisp.am
@@ -1,5 +1,5 @@
 ## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1996, 1998 Free Software Foundation, Inc.
+## Copyright 1996, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
 
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -15,25 +15,86 @@
 ## along with this program; if not, write to the Free Software
 ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 ## 02111-1307, USA.
address@hidden@LISP: $(@address@hidden) $(ELCFILES)
+
+
+## ---------- ##
+## Building.  ##
+## ---------- ##
+
+EMACS = @EMACS@
+lispdir = @lispdir@
+
+.el.elc:
+       @echo 'WARNING: Warnings can be ignored. :-)'
+       if test $(EMACS) != no; then \
+         EMACS=$(EMACS) $(SHELL) $(srcdir)/elisp-comp $<; \
+       else : ; fi
+
+## ------------ ##
+## Installing.  ##
+## ------------ ##
+
+if %?INSTALL%
+_am_installdirs += $(DESTDIR)$(%NDIR%dir)
+?EXEC?.PHONY install-exec-am: install-%DIR%LISP
+?!EXEC?.PHONY install-data-am: install-%DIR%LISP
+install-%DIR%LISP: $(%DIR%_LISP) $(ELCFILES)
        @$(NORMAL_INSTALL)
-       $(mkinstalldirs) $(DESTDIR)$(@address@hidden)
+## lispdir might not be defined.
+       @if test -n "$(lispdir)"; then \
+         $(mkinstalldirs) $(DESTDIR)$(%NDIR%dir); \
 ## Funny invocation because Makefile variable can be empty, leading to
 ## a syntax error in sh.
-       @list='$(@address@hidden)'; for p in $$list; do \
-## A header file can be in the source directory or the build directory.
-         if test -f "$$p"; then d= ; else d="$(srcdir)/"; fi; \
-         echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(@address@hidden)/$$p"; \
-         $(INSTALL_DATA) $$d$$p $(DESTDIR)$(@address@hidden)/$$p; \
+         list='$(%DIR%_LISP)'; for p in $$list; do \
+## A lisp file can be in the source directory or the build directory.
+           if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+?BASE?     f="`echo $$p | sed -e 's|^.*/||'`"; \
+?!BASE?            f="$$p"; \
+           echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(%NDIR%dir)/$$f"; \
+           $(INSTALL_DATA) $$d$$p $(DESTDIR)$(%NDIR%dir)/$$f; \
 ## Only install .elc file if it exists.
-         if test -f $${p}c; then \
-           echo " $(INSTALL_DATA) $${p}c $(DESTDIR)$(@address@hidden)/$${p}c"; 
\
-           $(INSTALL_DATA) $${p}c $(DESTDIR)$(@address@hidden)/$${p}c; \
-         else : ; fi; \
-       done
+           if test -f $${p}c; then \
+             echo " $(INSTALL_DATA) $${p}c $(DESTDIR)$(%NDIR%dir)/$${f}c"; \
+             $(INSTALL_DATA) $${p}c $(DESTDIR)$(%NDIR%dir)/$${f}c; \
+           else : ; fi; \
+         done; \
+       else : ; fi
+endif %?INSTALL%
+
 
address@hidden@LISP:
+## -------------- ##
+## Uninstalling.  ##
+## -------------- ##
+
+if %?INSTALL%
+.PHONY uninstall-am: uninstall-%DIR%LISP
+uninstall-%DIR%LISP:
        @$(NORMAL_UNINSTALL)
-       list='$(@address@hidden)'; for p in $$list; do \
-         rm -f $(@address@hidden)/$$p $(DESTDIR)$(@address@hidden)/$${p}c; \
-       done
+## lispdir might not be defined.
+       @if test -n "$(lispdir)"; then \
+         list='$(%DIR%_LISP)'; for p in $$list; do \
+?BASE?     f="`echo $$p | sed -e 's|^.*/||'`"; \
+?!BASE?            f="$$p"; \
+           echo " rm -f $(DESTDIR)$(%NDIR%dir)/$$f 
$(DESTDIR)$(%NDIR%dir)/$${f}c"; \
+           rm -f $(DESTDIR)$(%NDIR%dir)/$$f $(DESTDIR)$(%NDIR%dir)/$${f}c; \
+         done; \
+       else : ; fi
+endif %?INSTALL%
+
+
+## ---------- ##
+## Cleaning.  ##
+## ---------- ##
+
+.PHONY clean-am: clean-lisp
+clean-lisp:
+       -test -z "$(ELCFILES)" || rm -f $(ELCFILES)
+
+
+## -------------- ##
+## Distributing.  ##
+## -------------- ##
+
+if %?DIST%
+DIST_COMMON += $(%DIR%_LISP)
+endif %?DIST%
diff --git a/lib/am/ltlib.am b/lib/am/ltlib.am
index 50200fe..ebf0059 100644
--- a/lib/am/ltlib.am
+++ b/lib/am/ltlib.am
@@ -1,5 +1,6 @@
 ## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+## Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2001
+## Free Software Foundation, Inc.
 
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -15,24 +16,56 @@
 ## along with this program; if not, write to the Free Software
 ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 ## 02111-1307, USA.
address@hidden@LTLIBRARIES: $(@address@hidden)
+
+## ------------ ##
+## Installing.  ##
+## ------------ ##
+
+if %?INSTALL%
+_am_installdirs += $(DESTDIR)$(%NDIR%dir)
+?EXEC?.PHONY install-exec-am: install-%DIR%LTLIBRARIES
+?!EXEC?.PHONY install-data-am: install-%DIR%LTLIBRARIES
+install-%DIR%LTLIBRARIES: $(%DIR%_LTLIBRARIES)
        @$(NORMAL_INSTALL)
-       $(mkinstalldirs) $(DESTDIR)$(@address@hidden)
+       $(mkinstalldirs) $(DESTDIR)$(%NDIR%dir)
 ## Funny invocation because Makefile variable can be empty, leading to
 ## a syntax error in sh.
-       @list='$(@address@hidden)'; for p in $$list; do \
+       @list='$(%DIR%_LTLIBRARIES)'; for p in $$list; do \
          if test -f $$p; then \
 ## Note that we explicitly set the libtool mode.  This avoids any lossage
 ## if the program doesn't have a name that libtool expects.
 ## Use INSTALL and not INSTALL_DATA because libtool knows the right
 ## permissions to use.
-           echo "@LIBTOOL --mode=install@ $(INSTALL) $$p 
$(DESTDIR)$(@address@hidden)/$$p"; \
-           @LIBTOOL --mode=install@ $(INSTALL) $$p 
$(DESTDIR)$(@address@hidden)/$$p; \
+?LIBTOOL?          echo " $(LIBTOOL) --mode=install $(INSTALL) 
$(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(%NDIR%dir)/$$p"; \
+?LIBTOOL?          $(LIBTOOL) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) 
$$p $(DESTDIR)$(%NDIR%dir)/$$p; \
+?!LIBTOOL?         echo " $(INSTALL) $(INSTALL_STRIP_FLAG) $$p 
$(DESTDIR)$(%NDIR%dir)/$$p"; \
+?!LIBTOOL?         $(INSTALL) $(INSTALL_STRIP_FLAG) $$p 
$(DESTDIR)$(%NDIR%dir)/$$p; \
          else :; fi; \
        done
+endif %?INSTALL%
+
+
+## -------------- ##
+## Uninstalling.  ##
+## -------------- ##
 
address@hidden@LTLIBRARIES:
+if %?INSTALL%
+.PHONY uninstall-am: uninstall-%DIR%LTLIBRARIES
+uninstall-%DIR%LTLIBRARIES:
        @$(NORMAL_UNINSTALL)
-       list='$(@address@hidden)'; for p in $$list; do \
-         @LIBTOOL --mode=uninstall@ rm -f $(DESTDIR)$(@address@hidden)/$$p; \
+       @list='$(%DIR%_LTLIBRARIES)'; for p in $$list; do \
+?LIBTOOL?        echo " $(LIBTOOL) --mode=uninstall rm -f 
$(DESTDIR)$(%NDIR%dir)/$$p"; \
+?LIBTOOL?        $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(%NDIR%dir)/$$p; 
\
+?!LIBTOOL?       echo " rm -f $(DESTDIR)$(%NDIR%dir)/$$p"; \
+?!LIBTOOL?       rm -f $(DESTDIR)$(%NDIR%dir)/$$p; \
        done
+endif %?INSTALL%
+
+
+## ---------- ##
+## Cleaning.  ##
+## ---------- ##
+
+.PHONY clean-am: clean-%DIR%LTLIBRARIES
+clean-%DIR%LTLIBRARIES:
+       -test -z "$(%DIR%_LTLIBRARIES)" || rm -f $(%DIR%_LTLIBRARIES)
diff --git a/lib/am/ltlibrary.am b/lib/am/ltlibrary.am
index 886533a..eb736de 100644
--- a/lib/am/ltlibrary.am
+++ b/lib/am/ltlibrary.am
@@ -1,5 +1,5 @@
 ## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc.
+## Copyright 1994, 1995, 1996 Free Software Foundation, Inc.
 
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -15,5 +15,5 @@
 ## along with this program; if not, write to the Free Software
 ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 ## 02111-1307, USA.
address@hidden@: $(@address@hidden) $(@address@hidden)
-       $(@XLINK@) @RPATH@ $(@address@hidden) $(@address@hidden) 
$(@address@hidden) $(LIBS)
+%LTLIBRARY%: $(%XLTLIBRARY%_OBJECTS) $(%XLTLIBRARY%_DEPENDENCIES) %DIRSTAMP%
+       $(%XLINK%) %RPATH% $(%XLTLIBRARY%_LDFLAGS) $(%XLTLIBRARY%_OBJECTS) 
$(%XLTLIBRARY%_LIBADD) $(LIBS)
diff --git a/lib/am/mans-vars.am b/lib/am/mans-vars.am
index 14089f2..cbffd2a 100644
--- a/lib/am/mans-vars.am
+++ b/lib/am/mans-vars.am
@@ -1,5 +1,5 @@
 ## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc.
+## Copyright 1994, 1995, 1996, 2001 Free Software Foundation, Inc.
 
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -15,4 +15,8 @@
 ## along with this program; if not, write to the Free Software
 ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 ## 02111-1307, USA.
+
 NROFF = nroff
+## We don't really need this, but we use it in case we ever want to
+## support noinst_MANS.
+MANS = %MANS%
diff --git a/lib/am/mans.am b/lib/am/mans.am
index 6c2401b..21838e9 100644
--- a/lib/am/mans.am
+++ b/lib/am/mans.am
@@ -1,5 +1,5 @@
 ## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1998 Free Software Foundation, Inc.
+## Copyright 1998, 2001 Free Software Foundation, Inc.
 
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -15,15 +15,31 @@
 ## along with this program; if not, write to the Free Software
 ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 ## 02111-1307, USA.
address@hidden@:
-       $(mkinstalldirs) $(DESTDIR)$(address@hidden@dir)
-       @list='$(address@hidden@_MANS)'; \
+
+man%SECTION%dir = $(mandir)/man%SECTION%
+
+## ------------ ##
+## Installing.  ##
+## ------------ ##
+
+## MANS primary are always installed in mandir, hence install-data
+## is hard coded.
+
+.PHONY: install-man
+?INSTALL-MAN?install-data-am: install-man
+?INSTALL-MAN?_am_installdirs += $(DESTDIR)$(man%SECTION%dir)
+.PHONY install-man: install-man%SECTION%
+install-man%SECTION%: $(man%SECTION%_MANS) $(man_MANS)
+       @$(NORMAL_INSTALL)
+       $(mkinstalldirs) $(DESTDIR)$(man%SECTION%dir)
+       @list='$(man%SECTION%_MANS) $(dist_man%SECTION%_MANS) 
$(nodist_man%SECTION%_MANS)'; \
 ## Extract all items from man_MANS that should go in this section.
 ## This must be done dynamically to support conditionals.
-       l2='$(man_MANS)'; for i in $$l2; do \
+       l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
+       for i in $$l2; do \
          case "$$i" in \
 ## Have to accept files like `foo.1c'.
-           address@hidden@*) list="$$list $$i" ;; \
+           *.%SECTION%*) list="$$list $$i" ;; \
          esac; \
        done; \
        for i in $$list; do \
@@ -34,20 +50,31 @@ address@hidden@:
 ## transform.
          ext=`echo $$i | sed -e 's/^.*\\.//'`; \
          inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+         inst=`echo $$inst | sed -e 's/^.*\///'`; \
          inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-         echo " $(INSTALL_DATA) $$file 
$(DESTDIR)$(address@hidden@dir)/$$inst"; \
-         $(INSTALL_DATA) $$file $(DESTDIR)$(address@hidden@dir)/$$inst; \
+         echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man%SECTION%dir)/$$inst"; \
+         $(INSTALL_DATA) $$file $(DESTDIR)$(man%SECTION%dir)/$$inst; \
        done
 
+
+## -------------- ##
+## Uninstalling.  ##
+## -------------- ##
+
 ## This is just completely gross.
address@hidden@:
-       @list='$(address@hidden@_MANS)'; \
+.PHONY: uninstall-man
+?INSTALL-MAN?uninstall-am: uninstall-man
+.PHONY uninstall-man: uninstall-man%SECTION%
+uninstall-man%SECTION%:
+       @$(NORMAL_UNINSTALL)
+       @list='$(man%SECTION%_MANS) $(dist_man%SECTION%_MANS) 
$(nodist_man%SECTION%_MANS)'; \
 ## Extract all items from man_MANS that should go in this section.
 ## This must be done dynamically to support conditionals.
-       l2='$(man_MANS)'; for i in $$l2; do \
+       l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
+       for i in $$l2; do \
          case "$$i" in \
 ## Have to accept files like `foo.1c'.
-           address@hidden@*) list="$$list $$i" ;; \
+           *.%SECTION%*) list="$$list $$i" ;; \
          esac; \
        done; \
        for i in $$list; do \
@@ -55,7 +82,8 @@ address@hidden@:
 ## transform.
          ext=`echo $$i | sed -e 's/^.*\\.//'`; \
          inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+         inst=`echo $$inst | sed -e 's/^.*\///'`; \
          inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-         echo " rm -f $(DESTDIR)$(address@hidden@dir)/$$inst"; \
-         rm -f $(DESTDIR)$(address@hidden@dir)/$$inst; \
+         echo " rm -f $(DESTDIR)$(man%SECTION%dir)/$$inst"; \
+         rm -f $(DESTDIR)$(man%SECTION%dir)/$$inst; \
        done
diff --git a/lib/am/multilib.am b/lib/am/multilib.am
index 728a78d..18df431 100644
--- a/lib/am/multilib.am
+++ b/lib/am/multilib.am
@@ -1,5 +1,5 @@
 ## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1998 Free Software Foundation, Inc.
+## Copyright 1998, 2001 Free Software Foundation, Inc.
 
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -27,6 +27,22 @@ all-multi:
        $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do
 install-multi:
        $(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do
+
+.PHONY: all-multi install-multi
+
+if %?SUBDIRS%
+all-recursive: all-multi
+install-recursive: install-multi
+else !%?SUBDIRS%
+all-am: all-multi
+install-am: install-multi
+endif !%?SUBDIRS%
+
+mostlyclean-am: mostlyclean-multi
+clean-am: clean-multi
+distclean-am: distclean-multi
+maintainer-clean-am: maintainer-clean-multi
+
 mostlyclean-multi:
        $(MULTICLEAN) $(AM_MAKEFLAGS) DO=mostlyclean multi-clean
 clean-multi:
@@ -36,10 +52,17 @@ distclean-multi:
 maintainer-clean-multi:
        $(MULTICLEAN) $(AM_MAKEFLAGS) DO=maintainer-clean multi-clean
 
-## FIXME: this is probably broken.
-all-recursive: all-multi
-install-recursive: install-multi
+.PHONY: mostlyclean-multi clean-multi distclean-multi maintainer-clean-multi
+
+
+if %?SUBDIRS%
 mostlyclean-recursive: mostlyclean-multi
 clean-recursive: clean-multi
 distclean-recursive: distclean-multi
 maintainer-clean-recursive: maintainer-clean-multi
+else !%?SUBDIRS%
+mostlyclean-am: mostlyclean-multi
+clean-am: clean-multi
+distclean-am: distclean-multi
+maintainer-clean-am: maintainer-clean-multi
+endif !%?SUBDIRS%
diff --git a/lib/am/program.am b/lib/am/program.am
index be5fb26..06e1313 100644
--- a/lib/am/program.am
+++ b/lib/am/program.am
@@ -1,5 +1,5 @@
 ## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
+## Copyright 1994, 1995, 1996, 1997, 2001 Free Software Foundation, Inc.
 
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -15,11 +15,11 @@
 ## along with this program; if not, write to the Free Software
 ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 ## 02111-1307, USA.
address@hidden@@EXEEXT@: $(@address@hidden) $(@address@hidden)
+%PROGRAM%%EXEEXT%: $(%XPROGRAM%_OBJECTS) $(%XPROGRAM%_DEPENDENCIES) %DIRSTAMP%
 ## Remove program before linking.  Otherwise the link will fail if the
 ## program is running somewhere.  FIXME: this could be a loss if
 ## you're using an incremental linker.  Maybe we should think twice?
 ## Or maybe not... sadly, incremental linkers are rarer than losing
 ## systems.
-       @rm -f @PROGRAM@@EXEEXT@
-       $(@XLINK@) $(@address@hidden) $(@address@hidden) $(@address@hidden) 
$(LIBS)
+       @rm -f %PROGRAM%%EXEEXT%
+       $(%XLINK%) $(%XPROGRAM%_LDFLAGS) $(%XPROGRAM%_OBJECTS) 
$(%XPROGRAM%_LDADD) $(LIBS)
diff --git a/lib/am/progs.am b/lib/am/progs.am
index 3a598c3..191c52b 100644
--- a/lib/am/progs.am
+++ b/lib/am/progs.am
@@ -1,5 +1,6 @@
 ## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+## Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2001
+##  Free Software Foundation, Inc.
 
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -15,23 +16,61 @@
 ## along with this program; if not, write to the Free Software
 ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 ## 02111-1307, USA.
address@hidden@PROGRAMS: $(@address@hidden)
+
+
+## ------------ ##
+## Installing.  ##
+## ------------ ##
+
+if %?INSTALL%
+_am_installdirs += $(DESTDIR)$(%NDIR%dir)
+?EXEC?.PHONY install-exec-am: install-%DIR%PROGRAMS
+?!EXEC?.PHONY install-data-am: install-%DIR%PROGRAMS
+install-%DIR%PROGRAMS: $(%DIR%_PROGRAMS)
        @$(NORMAL_INSTALL)
-       $(mkinstalldirs) $(DESTDIR)$(@address@hidden)
+       $(mkinstalldirs) $(DESTDIR)$(%NDIR%dir)
 ## Funny invocation because Makefile variable can be empty, leading to
 ## a syntax error in sh.
-       @list='$(@address@hidden)'; for p in $$list; do \
-         if test -f $$p; then \
+       @list='$(%DIR%_PROGRAMS)'; for p in $$list; do \
+## On Cygwin with libtool test won't see `foo.exe' but instead `foo'.
+## So we check for both.
+         p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+         if test -f $$p \
+?LIBTOOL?           || test -f $$p1 \
+         ; then \
 ## Note that we explicitly set the libtool mode.  This avoids any
 ## lossage if the install program doesn't have a name that libtool
 ## expects.
-           echo " @LIBTOOL --mode=install@ $(INSTALL_PROGRAM) $$p 
$(DESTDIR)$(@address@hidden)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed 
'$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
-           @LIBTOOL --mode=install@ $(INSTALL_PROGRAM) $$p 
$(DESTDIR)$(@address@hidden)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed 
'$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+           f=`echo $$p1|sed '$(transform);s/$$/$(EXEEXT)/'`; \
+?LIBTOOL?         echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install 
$(INSTALL_PROGRAM) $$p $(DESTDIR)$(%NDIR%dir)/$$f"; \
+?LIBTOOL?         $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install 
$(INSTALL_PROGRAM) $$p $(DESTDIR)$(%NDIR%dir)/$$f; \
+?!LIBTOOL?        echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$p 
$(DESTDIR)$(%NDIR%dir)/$$f"; \
+?!LIBTOOL?        $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$p 
$(DESTDIR)$(%NDIR%dir)/$$f; \
          else :; fi; \
        done
+endif %?INSTALL%
+
 
address@hidden@PROGRAMS:
+## -------------- ##
+## Uninstalling.  ##
+## -------------- ##
+
+if %?INSTALL%
+.PHONY uninstall-am: uninstall-%DIR%PROGRAMS
+uninstall-%DIR%PROGRAMS:
        @$(NORMAL_UNINSTALL)
-       list='$(@address@hidden)'; for p in $$list; do \
-         rm -f $(DESTDIR)$(@address@hidden)/`echo $$p|sed 
's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+       @list='$(%DIR%_PROGRAMS)'; for p in $$list; do \
+         f=`echo $$p|sed 's/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
+         echo " rm -f $(DESTDIR)$(%NDIR%dir)/$$f"; \
+         rm -f $(DESTDIR)$(%NDIR%dir)/$$f; \
        done
+endif %?INSTALL%
+
+
+## ---------- ##
+## Cleaning.  ##
+## ---------- ##
+
+.PHONY clean-am: clean-%DIR%PROGRAMS
+clean-%DIR%PROGRAMS:
+       -test -z "$(%DIR%_PROGRAMS)" || rm -f $(%DIR%_PROGRAMS)
diff --git a/lib/am/python.am b/lib/am/python.am
new file mode 100644
index 0000000..904712d
--- /dev/null
+++ b/lib/am/python.am
@@ -0,0 +1,77 @@
+## automake - create Makefile.in from Makefile.am
+## Copyright 1999, 2001 Free Software Foundation, Inc.
+
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2, or (at your option)
+## any later version.
+
+## This program is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU General Public License for more details.
+
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+## 02111-1307, USA.
+
+
+## ------------ ##
+## Installing.  ##
+## ------------ ##
+
+if %?INSTALL%
+_am_installdirs += $(DESTDIR)$(%DIR%dir)
+?EXEC?.PHONY install-exec-am: install-%DIR%PYTHON
+?!EXEC?.PHONY install-data-am: install-%DIR%PYTHON
+install-%DIR%PYTHON: $(%DIR%_PYTHON)
+       @$(NORMAL_INSTALL)
+       $(mkinstalldirs) $(DESTDIR)$(%DIR%dir)
+       @list='$(%DIR%_PYTHON)'; for p in $$list; do\
+         if test -f $(srcdir)/$$p; then \
+## Don't perform translation, since script name is important.
+           echo " $(INSTALL_PROGRAM) $(srcdir)/$$p $(DESTDIR)$(%DIR%dir)/$$p"; 
\
+           $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(%DIR%dir)/$$p; \
+         else :; fi; \
+       done
+## Byte-compile must be done at install time, since file times are
+## encoded in the actual files.
+       @PYTHON=$(PYTHON) $(py_compile) --basedir $(DESTDIR)$(%DIR%dir) 
$(%DIR%_PYTHON)
+endif %?INSTALL%
+
+
+## -------------- ##
+## Uninstalling.  ##
+## -------------- ##
+
+if %?INSTALL%
+.PHONY uninstall-am: uninstall-%DIR%PYTHON
+uninstall-%DIR%PYTHON:
+       @$(NORMAL_UNINSTALL)
+       list='$(%DIR%_PYTHON)'; for p in $$list; do \
+         rm -f $(DESTDIR)$(%DIR%dir)/$$p; \
+## This is to remove the .pyc and .pyo byte compiled versions (a bit
+## of a hack).
+         rm -f $(DESTDIR)$(%DIR%dir)/$${p}c; \
+         rm -f $(DESTDIR)$(%DIR%dir)/$${p}o; \
+       done
+endif %?INSTALL%
+
+
+## ---------- ##
+## Cleaning.  ##
+## ---------- ##
+
+.PHONY clean-am: clean-python
+clean-python:
+       -test -z "$(PYCFILES)$(PYOFILES)" || rm -f $(PYCFILES) $(PYOFILES)
+
+
+## -------------- ##
+## Distributing.  ##
+## -------------- ##
+
+if %?DIST%
+DIST_COMMON += $(%DIR%_PYTHON)
+endif %?DIST%
diff --git a/lib/am/remake-hdr.am b/lib/am/remake-hdr.am
index 90712da..c6d5c33 100644
--- a/lib/am/remake-hdr.am
+++ b/lib/am/remake-hdr.am
@@ -1,5 +1,6 @@
 ## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999 Free Software Foundation, 
Inc.
+## Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2001
+## Free Software Foundation, Inc.
 
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -15,29 +16,40 @@
 ## along with this program; if not, write to the Free Software
 ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 ## 02111-1307, USA.
address@hidden@: @STAMP@
+%CONFIG_HEADER%: %STAMP%
 ## Recover from removal of CONFIG_HEADER
        @if test ! -f $@; then \
-               rm -f @STAMP@; \
-               $(MAKE) @STAMP@; \
+               rm -f %STAMP%; \
+               $(MAKE) %STAMP%; \
        else :; fi
 ## Explicitly look in srcdir for benefit of non-GNU makes.
address@hidden@: $(srcdir)/@CONFIG_HEADER_IN@ $(top_builddir)/config.status
-       cd $(top_builddir) \
-         && CONFIG_FILES= address@hidden@ \
-            $(SHELL) ./config.status
+%STAMP%: $(srcdir)/%CONFIG_HEADER_IN% $(top_builddir)/config.status
+       @rm -f %STAMP% %STAMP%T
 ## We used to try to get a real timestamp here.  But the fear is that
 ## that will cause unnecessary cvs conflicts
-       @echo timestamp > @STAMP@ 2> /dev/null
+       @echo timestamp > %STAMP%T 2> /dev/null
+       cd $(top_builddir) \
+         && CONFIG_FILES= CONFIG_HEADERS=%CONFIG_HEADER_FULL% \
+            $(SHELL) ./config.status
+## Creating the timestamp first, and moving it later, helps ensure that
+## it will be older than the header file, avoiding needless triggering
+## of the rebuild rule.
+       @mv %STAMP%T %STAMP%
 ## Explicitly look in srcdir for benefit of non-GNU makes.
-$(srcdir)/@CONFIG_HEADER_IN@: @address@hidden(srcdir)/@address@hidden
+## SRC_STAMP takes into account a possible subdir where CONFIG_HEADER_IN is
+$(srcdir)/%CONFIG_HEADER_IN%: %MAINTAINER-MODE% $(srcdir)/%SRC_STAMP%.in
 ## Recover from removal of CONFIG_HEADER_IN
        @if test ! -f $@; then \
-               rm -f $(srcdir)/@address@hidden; \
-               $(MAKE) $(srcdir)/@address@hidden; \
+               rm -f $(srcdir)/%SRC_STAMP%.in; \
+               $(MAKE) $(srcdir)/%SRC_STAMP%.in; \
        else :; fi
-$(srcdir)/@address@hidden: $(top_srcdir)/configure.in $(ACLOCAL_M4) @FILES@
-       cd $(top_srcdir) && $(AUTOHEADER)
+$(srcdir)/%SRC_STAMP%.in: $(top_srcdir)/%CONFIGURE-AC% $(ACLOCAL_M4) %FILES%
+       @rm -f $(srcdir)/%SRC_STAMP%.in $(srcdir)/%SRC_STAMP%.inT
 ## We used to try to get a real timestamp here.  But the fear is that
 ## that will cause unnecessary cvs conflicts
-       @echo timestamp > $(srcdir)/@address@hidden 2> /dev/null
+       @echo timestamp > $(srcdir)/%SRC_STAMP%.inT 2> /dev/null
+       cd $(top_srcdir) && $(AUTOHEADER)
+## Creating the timestamp first, and moving it later, helps ensure that
+## it will be older than the header file, avoiding needless triggering
+## of the rebuild rule.
+       @mv $(srcdir)/%SRC_STAMP%.inT $(srcdir)/%SRC_STAMP%.in
diff --git a/lib/am/scripts.am b/lib/am/scripts.am
index 420abb4..821aa26 100644
--- a/lib/am/scripts.am
+++ b/lib/am/scripts.am
@@ -1,5 +1,5 @@
 ## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996, 1998 Free Software Foundation, Inc.
+## Copyright 1994, 1995, 1996, 1998, 1999, 2001 Free Software Foundation, Inc.
 
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -15,35 +15,72 @@
 ## along with this program; if not, write to the Free Software
 ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 ## 02111-1307, USA.
address@hidden@SCRIPTS: $(@address@hidden)
+
+
+## ------------ ##
+## Installing.  ##
+## ------------ ##
+
+if %?INSTALL%
+## if doesn't work properly for Automake variables yet.
+_am_installdirs += $(DESTDIR)$(%NDIR%dir)
+?EXEC?.PHONY install-exec-am: install-%DIR%SCRIPTS
+?!EXEC?.PHONY install-data-am: install-%DIR%SCRIPTS
+install-%DIR%SCRIPTS: $(%DIR%_SCRIPTS)
        @$(NORMAL_INSTALL)
-       $(mkinstalldirs) $(DESTDIR)$(@address@hidden)
+       $(mkinstalldirs) $(DESTDIR)$(%NDIR%dir)
 ## Funny invocation because Makefile variable can be empty, leading to
 ## a syntax error in sh.
-       @list='$(@address@hidden)'; for p in $$list; do \
+       @list='$(%DIR%_SCRIPTS)'; for p in $$list; do \
+         f="`echo $$p|sed '$(transform)'`"; \
          if test -f $$p; then \
-           echo " $(INSTALL_SCRIPT) $$p $(DESTDIR)$(@address@hidden)/`echo 
$$p|sed '$(transform)'`"; \
-           $(INSTALL_SCRIPT) $$p $(DESTDIR)$(@address@hidden)/`echo $$p|sed 
'$(transform)'`; \
-         else if test -f $(srcdir)/$$p; then \
-           echo " $(INSTALL_SCRIPT) $(srcdir)/$$p 
$(DESTDIR)$(@address@hidden)/`echo $$p|sed '$(transform)'`"; \
-           $(INSTALL_SCRIPT) $(srcdir)/$$p $(DESTDIR)$(@address@hidden)/`echo 
$$p|sed '$(transform)'`; \
-         else :; fi; fi; \
+           echo " $(INSTALL_SCRIPT) $$p $(DESTDIR)$(%NDIR%dir)/$$f"; \
+           $(INSTALL_SCRIPT) $$p $(DESTDIR)$(%NDIR%dir)/$$f; \
+         elif test -f $(srcdir)/$$p; then \
+           echo " $(INSTALL_SCRIPT) $(srcdir)/$$p $(DESTDIR)$(%NDIR%dir)/$$f"; 
\
+           $(INSTALL_SCRIPT) $(srcdir)/$$p $(DESTDIR)$(%NDIR%dir)/$$f; \
+         else :; fi; \
        done
+endif %?INSTALL%
+
+
+## -------------- ##
+## Uninstalling.  ##
+## -------------- ##
 
address@hidden@SCRIPTS:
+if %?INSTALL%
+.PHONY uninstall-am: uninstall-%DIR%SCRIPTS
+uninstall-%DIR%SCRIPTS:
        @$(NORMAL_UNINSTALL)
-       list='$(@address@hidden)'; for p in $$list; do \
-         rm -f $(DESTDIR)$(@address@hidden)/`echo $$p|sed '$(transform)'`; \
+       @list='$(%DIR%_SCRIPTS)'; for p in $$list; do \
+         f="`echo $$p|sed '$(transform)'`"; \
+         echo " rm -f $(DESTDIR)$(%NDIR%dir)/$$f"; \
+         rm -f $(DESTDIR)$(%NDIR%dir)/$$f; \
        done
+endif %?INSTALL%
+
+
+## -------------- ##
+## Distributing.  ##
+## -------------- ##
+
+if %?DIST%
+DIST_COMMON += $(%DIR%_SCRIPTS)
+endif %?DIST%
+
+
+## ---------- ##
+## Checking.  ##
+## ---------- ##
 
 ## Uncomment line in handle_scripts when this is uncommented.
-## address@hidden@SCRIPTS:
-##     pid=$$$$; list="$(@address@hidden)"; for p in $$list; do \
+## check-%DIR%SCRIPTS:
+##     pid=$$$$; list="$(%DIR%_SCRIPTS)"; for p in $$list; do \
 ##       for opt in --help --version; do \
 ##         if test -f $$p; then :; \
-##         else if test -f $(srcdir)/$$p; then \
+##         elif test -f $(srcdir)/$$p; then \
 ##           p=$(srcdir)/$$p; \
-##         else exit 1; fi; fi; \
+##         else exit 1; fi; \
 ##         if $$p $$opt > .chkout$$pid 2> .chkerr$$pid \
 ##              && test -n "`cat .chkout$$pid`" \
 ##              && test -z "`cat .chkerr$$pid`"; then :; \
diff --git a/lib/am/subdirs.am b/lib/am/subdirs.am
index f364293..4b1ab2f 100644
--- a/lib/am/subdirs.am
+++ b/lib/am/subdirs.am
@@ -1,5 +1,6 @@
 ## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+## Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+## Free Software Foundation, Inc.
 
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -15,6 +16,14 @@
 ## along with this program; if not, write to the Free Software
 ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 ## 02111-1307, USA.
+
+RECURSIVE_TARGETS += \
+all-recursive install-data-recursive install-exec-recursive \
+installdirs-recursive install-recursive uninstall-recursive \
+check-recursive installcheck-recursive
+
+.PHONY: $(RECURSIVE_TARGETS)
+
 # This directory's subdirectories are mostly independent; you can cd
 # into them and run `make' without going through this Makefile.
 # To change the values of `make' variables: instead of editing Makefiles,
@@ -22,11 +31,7 @@
 #     (which will cause the Makefiles to be regenerated when you run `make');
 # (2) otherwise, pass the desired values on the `make' command line.
 
address@hidden@
-
-all-recursive install-data-recursive install-exec-recursive \
-installdirs-recursive install-recursive uninstall-recursive @INSTALLINFO@ \
-check-recursive installcheck-recursive info-recursive dvi-recursive:
+$(RECURSIVE_TARGETS):
        @set fnord $(MAKEFLAGS); amf=$$2; \
        dot_seen=no; \
        target=`echo $@ | sed s/-recursive//`; \
@@ -47,6 +52,15 @@ check-recursive installcheck-recursive info-recursive 
dvi-recursive:
          $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
        fi; test -z "$$fail"
 
+
+mostlyclean: mostlyclean-recursive
+clean: clean-recursive
+distclean: distclean-recursive
+maintainer-clean: maintainer-clean-recursive
+
+.PHONY: mostlyclean-recursive clean-recursive distclean-recursive \
+maintainer-clean-recursive
+
 ## We run all `clean' targets in reverse order.  Why?  It's an attempt
 ## to alleviate a problem that can happen when dependencies are
 ## enabled.  In this case, the .P file in one directory can depend on
@@ -57,12 +71,21 @@ mostlyclean-recursive clean-recursive distclean-recursive \
 maintainer-clean-recursive:
        @set fnord $(MAKEFLAGS); amf=$$2; \
        dot_seen=no; \
-       rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
-         rev="$$subdir $$rev"; \
-         test "$$subdir" = "." && dot_seen=yes; \
+## For distclean and maintainer-clean we make sure to use the full
+## list of subdirectories.  We do this so that `configure; make
+## distclean' really is a no-op, even if SUBDIRS is conditional.  For
+## other clean targets this doesn't matter.
+       case "$@" in \
+         distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+         *) list='$(SUBDIRS)' ;; \
+       esac; \
+       rev=''; for subdir in $$list; do \
+         if test "$$subdir" = "."; then :; else \
+           rev="$$subdir $$rev"; \
+         fi; \
        done; \
-## If we haven't seen `.', then add it at the beginning.
-       test "$$dot_seen" = "no" && rev=". $$rev"; \
+## Always do `.' last.
+       rev="$$rev ."; \
        target=`echo $@ | sed s/-recursive//`; \
        for subdir in $$rev; do \
          echo "Making $$target in $$subdir"; \
diff --git a/lib/am/tags.am b/lib/am/tags.am
index 38041e7..39887fb 100644
--- a/lib/am/tags.am
+++ b/lib/am/tags.am
@@ -1,5 +1,6 @@
 ## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+## Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+## Free Software Foundation, Inc.
 
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -15,31 +16,73 @@
 ## along with this program; if not, write to the Free Software
 ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 ## 02111-1307, USA.
+
+.PHONY: tags
 tags: TAGS
 
-ID: $(HEADERS) $(SOURCES) $(LISP)
+
+## ---- ##
+## ID.  ##
+## ---- ##
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
 ## Make sure the list of sources is unique.
-       list='$(SOURCES) $(HEADERS)'; \
-       unique=`for i in $$list; do echo $$i; done | \
-         awk '    { files[$$0] = 1; } \
+       list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+## Handle VPATH correctly.
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '    { files[$$0] = 1; } \
               END { for (i in files) print i; }'`; \
-       here=`pwd` && cd $(srcdir) \
-         && mkid -f$$here/ID $$unique $(LISP)
+       mkid -fID $$unique $(LISP)
+
 
-TAGS: @DIRS@ $(HEADERS) $(SOURCES) @CONFIG@ $(TAGS_DEPENDENCIES) $(LISP)
+## ------ ##
+## TAGS.  ##
+## ------ ##
+
+TAGS: %DIRS% $(HEADERS) $(SOURCES) %CONFIG% $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
        tags=; \
        here=`pwd`; \
-SUBDIRS        list='$(SUBDIRS)'; for subdir in $$list; do \
+## It is tempting to use if/endif here, but don't: the previous
+## backslash will cause bad results (automake doesn't `see' the `if').
+?SUBDIRS?      list='$(SUBDIRS)'; for subdir in $$list; do \
 ## Do nothing if we're trying to look in `.'.
-SUBDIRS   if test "$$subdir" = .; then :; else \
-SUBDIRS            test -f $$subdir/TAGS && tags="$$tags -i 
$$here/$$subdir/TAGS"; \
-SUBDIRS   fi; \
-SUBDIRS        done; \
+?SUBDIRS?        if test "$$subdir" = .; then :; else \
+?SUBDIRS?          test -f $$subdir/TAGS && tags="$$tags -i 
$$here/$$subdir/TAGS"; \
+?SUBDIRS?        fi; \
+?SUBDIRS?      done; \
 ## Make sure the list of sources is unique.
-       list='$(SOURCES) $(HEADERS)'; \
-       unique=`for i in $$list; do echo $$i; done | \
-         awk '    { files[$$0] = 1; } \
+       list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+## Handle VPATH correctly.
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '    { files[$$0] = 1; } \
               END { for (i in files) print i; }'`; \
 ## Make sure we have something to run etags on.
-       test -z "$(ETAGS_ARGS)@address@hidden(LISP)$$tags" \
-         || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags @CONFIG@ $$unique 
$(LISP) -o $$here/TAGS)
+       test -z "$(ETAGS_ARGS)%CONFIG%$$unique$(LISP)$$tags" \
+         || etags $(ETAGS_ARGS) $$tags %CONFIG% $$unique $(LISP)
+
+
+## --------------- ##
+## `Global' tags.  ##
+## --------------- ##
+
+.PHONY: GTAGS
+GTAGS:
+       here=`CDPATH=: && cd $(top_builddir) && pwd` \
+         && cd $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) $$here
+
+
+## ---------- ##
+## Cleaning.  ##
+## ---------- ##
+
+.PHONY distclean-am: distclean-tags
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
+
diff --git a/lib/am/texi-vers.am b/lib/am/texi-vers.am
index a2580e5..a0f7bea 100644
--- a/lib/am/texi-vers.am
+++ b/lib/am/texi-vers.am
@@ -1,5 +1,6 @@
 ## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996, 1998, 1999 Free Software Foundation, Inc.
+## Copyright 1994, 1995, 1996, 1998, 1999, 2000, 2001
+## Free Software Foundation, Inc.
 
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -15,31 +16,35 @@
 ## along with this program; if not, write to the Free Software
 ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 ## 02111-1307, USA.
-$(srcdir)/@VTEXI@: @address@hidden@VTI@
+
+DIST_COMMON += %VTEXI% stamp-%VTI%
+
+$(srcdir)/%VTEXI%: %MAINTAINER-MODE% $(srcdir)/stamp-%VTI%
        @:
 
-## Depend on configure.in so that version number updates cause a
+## Depend on %CONFIGURE-AC% so that version number updates cause a
 ## rebuild.
-$(srcdir)/address@hidden@: @TEXI@ $(top_srcdir)/configure.in
-       @echo "@set UPDATED `$(SHELL) @address@hidden 
$(srcdir)/@address@hidden" > @address@hidden
-       @echo "@set EDITION $(VERSION)" >> @address@hidden
-       @echo "@set VERSION $(VERSION)" >> @address@hidden
+$(srcdir)/stamp-%VTI%: %TEXI% $(top_srcdir)/%CONFIGURE-AC%
+       @(set `$(SHELL) %MDDIR%mdate-sh $(srcdir)/%TEXI%`; \
+       echo "@set UPDATED $$1 $$2 $$3"; \
+       echo "@set UPDATED-MONTH $$2 $$3"; \
+       echo "@set EDITION $(VERSION)"; \
+       echo "@set VERSION $(VERSION)") > %VTI%.tmp
 ## Use cp and rm here because some older "mv"s can't move across
 ## filesystems.  Furthermore, GNU "mv" in the AmigaDOS environment
 ## can't handle this.
-       @cmp -s @address@hidden $(srcdir)/@VTEXI@ \
-         || (echo "Updating $(srcdir)/@VTEXI@"; \
-             cp @address@hidden $(srcdir)/@VTEXI@)
-       address@hidden -f @address@hidden
-       @cp $(srcdir)/@VTEXI@ $@
-
address@hidden@:
-       -rm -f @address@hidden
-
address@hidden@:
+       @cmp -s %VTI%.tmp $(srcdir)/%VTEXI% \
+         || (echo "Updating $(srcdir)/%VTEXI%"; \
+             cp %VTI%.tmp $(srcdir)/%VTEXI%)
+       address@hidden -f %VTI%.tmp
+       @cp $(srcdir)/%VTEXI% $@
 
address@hidden@:
+mostlyclean-am: mostlyclean-%VTI%
+mostlyclean-%VTI%:
+       -rm -f %VTI%.tmp
 
address@hidden@:
-       address@hidden@rm -f $(srcdir)/address@hidden@ $(srcdir)/@VTEXI@
+maintainer-clean-am: maintainer-clean-%VTI%
+maintainer-clean-%VTI%:
+%MAINTAINER-MODE%      -rm -f $(srcdir)/stamp-%VTI% $(srcdir)/%VTEXI%
 
+.PHONY: mostlyclean-%VTI% maintainer-clean-%VTI%
diff --git a/lib/am/texibuild.am b/lib/am/texibuild.am
new file mode 100644
index 0000000..f36ba76
--- /dev/null
+++ b/lib/am/texibuild.am
@@ -0,0 +1,59 @@
+## automake - create Makefile.in from Makefile.am
+## Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+## Free Software Foundation, Inc.
+
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2, or (at your option)
+## any later version.
+
+## This program is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU General Public License for more details.
+
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+## 02111-1307, USA.
+
+.%SUFFIX%.info:
+## We want to force the .info file to be built in srcdir.  This is
+## probably the simplest way.  However, at Cygnus .info files are
+## always put into the build directory.  So at runtime we select which
+## rule to use.
+## Note that we also remove the possible output files before running
+## makeinfo.  Otherwise, if the texinfo file shrinks (or if you start
+## using --no-split), you'll be left with some dead info files lying
+## around -- dead files which will end up in the distribution.
+?!CYGNUS?      @cd $(srcdir) && rm -f $@ address@hidden address@hidden
+?!CYGNUS?      cd $(srcdir) \
+?!CYGNUS?        && $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) \
+?!CYGNUS?             `echo $< | sed 's,.*/,,'`
+?CYGNUS?       @rm -f $@ address@hidden address@hidden
+?CYGNUS?       $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) \
+?CYGNUS?         -I $(srcdir) $<
+
+.%SUFFIX%.dvi:
+       TEXINPUTS=%TEXINFODIR%:$$TEXINPUTS \
+## Must set MAKEINFO like this so that version.texi will be found even
+## if it is in srcdir.
+       MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I 
$(srcdir)' \
+       $(TEXI2DVI) $<
+
+.%SUFFIX%:
+## We want to force the .info file to be built in srcdir.  This is
+## probably the simplest way.  However, at Cygnus .info files are
+## always put into the build directory.  So at runtime we select which
+## rule to use.
+## Note that we also remove the possible output files before running
+## makeinfo.  Otherwise, if the texinfo file shrinks (or if you start
+## using --no-split), you'll be left with some dead info files lying
+## around -- dead files which will end up in the distribution.
+?!CYGNUS?      @cd $(srcdir) && rm -f $@ address@hidden address@hidden
+?!CYGNUS?      cd $(srcdir) \
+?!CYGNUS?        && $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) \
+?!CYGNUS?             `echo $< | sed 's,.*/,,'`
+?CYGNUS?       @rm -f $@ address@hidden address@hidden
+?CYGNUS?       $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) \
+?CYGNUS?         -I $(srcdir) $<
diff --git a/lib/am/texinfos.am b/lib/am/texinfos.am
index 7430efb..34081e3 100644
--- a/lib/am/texinfos.am
+++ b/lib/am/texinfos.am
@@ -1,5 +1,6 @@
 ## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+## Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+## Free Software Foundation, Inc.
 
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -16,137 +17,103 @@
 ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 ## 02111-1307, USA.
 
-## FIXME: should repeat all the stuff in this file.  Instead should
-## generate the contents in a smarter way.
-
-.texi.info:
-## We want to force the .info file to be built in srcdir.  This is
-## probably the simplest way.  However, at Cygnus .info files are
-## always put into the build directory.  So at runtime we select which
-## rule to use.
-## Note that we also remove the possible output files before running
-## makeinfo.  Otherwise, if the texinfo file shrinks (or if you start
-## using --no-split), you'll be left with some dead info files lying
-## around -- dead files which will end up in the distribution.
-NOTCYGNUS      @cd $(srcdir) && rm -f $@ address@hidden address@hidden
-NOTCYGNUS      cd $(srcdir) \
-NOTCYGNUS        && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
-CYGNUS @rm -f $@ address@hidden address@hidden
-CYGNUS $(MAKEINFO) -I $(srcdir) $<
-
-.texi.dvi:
-       address@hidden@:$$TEXINPUTS \
-## Must set MAKEINFO like this so that version.texi will be found even
-## if it is in srcdir.
-         MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
-
-.texi:
-## We want to force the .info file to be built in srcdir.  This is
-## probably the simplest way.  However, at Cygnus .info files are
-## always put into the build directory.  So at runtime we select which
-## rule to use.
-## Note that we also remove the possible output files before running
-## makeinfo.  Otherwise, if the texinfo file shrinks (or if you start
-## using --no-split), you'll be left with some dead info files lying
-## around -- dead files which will end up in the distribution.
-NOTCYGNUS      @cd $(srcdir) && rm -f $@ address@hidden address@hidden
-NOTCYGNUS      cd $(srcdir) \
-NOTCYGNUS        && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
-CYGNUS @rm -f $@ address@hidden address@hidden
-CYGNUS $(MAKEINFO) -I $(srcdir) $<
-
-.texinfo.info:
-## We want to force the .info file to be built in srcdir.  This is
-## probably the simplest way.  However, at Cygnus .info files are
-## always put into the build directory.  So at runtime we select which
-## rule to use.
-## Note that we also remove the possible output files before running
-## makeinfo.  Otherwise, if the texinfo file shrinks (or if you start
-## using --no-split), you'll be left with some dead info files lying
-## around -- dead files which will end up in the distribution.
-NOTCYGNUS      @cd $(srcdir) && rm -f $@ address@hidden address@hidden
-NOTCYGNUS      cd $(srcdir) \
-NOTCYGNUS        && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
-CYGNUS @rm -f $@ address@hidden address@hidden
-CYGNUS $(MAKEINFO) -I $(srcdir) $<
-
-.texinfo:
-## We want to force the .info file to be built in srcdir.  This is
-## probably the simplest way.  However, at Cygnus .info files are
-## always put into the build directory.  So at runtime we select which
-## rule to use.
-## Note that we also remove the possible output files before running
-## makeinfo.  Otherwise, if the texinfo file shrinks (or if you start
-## using --no-split), you'll be left with some dead info files lying
-## around -- dead files which will end up in the distribution.
-NOTCYGNUS      @cd $(srcdir) && rm -f $@ address@hidden address@hidden
-NOTCYGNUS      cd $(srcdir) \
-NOTCYGNUS        && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
-CYGNUS @rm -f $@ address@hidden address@hidden
-CYGNUS $(MAKEINFO) -I $(srcdir) $<
-
-.texinfo.dvi:
-       address@hidden@:$$TEXINPUTS \
-## Must set MAKEINFO like this so that version.texi will be found even
-## if it is in srcdir.
-         MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
-
-.txi.info:
-## We want to force the .info file to be built in srcdir.  This is
-## probably the simplest way.  However, at Cygnus .info files are
-## always put into the build directory.  So at runtime we select which
-## rule to use.
-## Note that we also remove the possible output files before running
-## makeinfo.  Otherwise, if the texinfo file shrinks (or if you start
-## using --no-split), you'll be left with some dead info files lying
-## around -- dead files which will end up in the distribution.
-NOTCYGNUS      @cd $(srcdir) && rm -f $@ address@hidden address@hidden
-NOTCYGNUS      cd $(srcdir) \
-NOTCYGNUS        && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
-CYGNUS @rm -f $@ address@hidden address@hidden
-CYGNUS $(MAKEINFO) -I $(srcdir) $<
-
-.txi.dvi:
-       address@hidden@:$$TEXINPUTS \
-## Must set MAKEINFO like this so that version.texi will be found even
-## if it is in srcdir.
-         MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
-
-.txi:
-## We want to force the .info file to be built in srcdir.  This is
-## probably the simplest way.  However, at Cygnus .info files are
-## always put into the build directory.  So at runtime we select which
-## rule to use.
-## Note that we also remove the possible output files before running
-## makeinfo.  Otherwise, if the texinfo file shrinks (or if you start
-## using --no-split), you'll be left with some dead info files lying
-## around -- dead files which will end up in the distribution.
-NOTCYGNUS      @cd $(srcdir) && rm -f $@ address@hidden address@hidden
-NOTCYGNUS      cd $(srcdir) \
-NOTCYGNUS        && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
-CYGNUS @rm -f $@ address@hidden address@hidden
-CYGNUS $(MAKEINFO) -I $(srcdir) $<
+## ----------- ##
+## Variables.  ##
+## ----------- ##
+
+if %?LOCAL-TEXIS%
+if ! %?CYGNUS%
+MAKEINFO = @MAKEINFO@
+TEXI2DVI = texi2dvi
+
+else %?CYGNUS%
+
+## Find these programs wherever they may lie.  Yes, this has
+## intimate knowledge of the structure of the texinfo distribution.
+MAKEINFO = `if test -f $(top_builddir)/../texinfo/makeinfo/makeinfo; then \
+            echo $(top_builddir)/../texinfo/makeinfo/makeinfo; \
+          else \
+            echo makeinfo; \
+          fi`
+
+TEXI2DVI = `if test -f $(top_srcdir)/../texinfo/util/texi2dvi; then \
+             echo $(top_srcdir)/../texinfo/util/texi2dvi; \
+           else \
+             echo texi2dvi; \
+           fi`
+endif %?CYGNUS%
+endif %?LOCAL-TEXIS%
+
+
+## ---------- ##
+## Building.  ##
+## ---------- ##
 
 ## The way to make PostScript, for those who want it.
+if %?LOCAL-TEXIS%
 DVIPS = dvips
 .dvi.ps:
        $(DVIPS) $< -o $@
+endif %?LOCAL-TEXIS%
+
+.PHONY: info info-am dvi dvi-am
+if %?SUBDIRS%
+RECURSIVE_TARGETS += info-recursive dvi-recursive
+.PHONY info: info-recursive
+.PHONY dvi: dvi-recursive
+else !%?SUBDIRS%
+info: info-am
+dvi: dvi-am
+endif !%?SUBDIRS%
+
+if %?LOCAL-TEXIS%
+info-am: $(INFO_DEPS)
+dvi-am: $(DVIS)
+else ! %?LOCAL-TEXIS%
+info-am:
+dvi-am:
+endif ! %?LOCAL-TEXIS%
+
+
+## ------------ ##
+## Installing.  ##
+## ------------ ##
 
 ## Look in both . and srcdir because the info pages might have been
 ## rebuilt in the build directory.  Can't cd to srcdir; that might
 ## break a possible install-sh reference.
+##
 ## Funny name due to --cygnus influence; we want to reserve
 ## `install-info' for the user.
+##
+## TEXINFOS primary are always installed in infodir, hence install-data
+## is hard coded.
+if %?INSTALL-INFO%
+if %?LOCAL-TEXIS%
+_am_installdirs += $(DESTDIR)$(infodir)
+install-data-am: install-info-am
+endif %?LOCAL-TEXIS%
+if %?SUBDIRS%
+RECURSIVE_TARGETS += install-info-recursive
+.PHONY install-info: install-info-recursive
+else !%?SUBDIRS%
+install-info: install-info-am
+endif !%?SUBDIRS%
+endif %?INSTALL-INFO%
+
+.PHONY: install-info-am
+
+if %?LOCAL-TEXIS%
 install-info-am: $(INFO_DEPS)
        @$(NORMAL_INSTALL)
        $(mkinstalldirs) $(DESTDIR)$(infodir)
        @list='$(INFO_DEPS)'; \
        for file in $$list; do \
-CYGNUS   if test -f $$file; then d=.; else d=$(srcdir); fi; \
-NOTCYGNUS        d=$(srcdir); \
+?CYGNUS?         if test -f $$file; then d=.; else d=$(srcdir); fi; \
+?!CYGNUS?        d=$(srcdir); \
 ## We use these strange circumlocutions because we want the "ifile" to
 ## be relative, for the install.
-         for ifile in `cd $$d && echo $$file $$file-[0-9] $$file-[0-9][0-9]`; 
do \
+         for ifile in `CDPATH=: && cd $$d && echo $$file $$file-[0-9] 
$$file-[0-9][0-9]`; do \
            if test -f $$d/$$ifile; then \
              echo " $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile"; 
\
              $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile; \
@@ -156,8 +123,15 @@ NOTCYGNUS    d=$(srcdir); \
        @$(POST_INSTALL)
 ## Only run this code if install-info actually exists, and it is not
 ## the Debian install-info.  FIXME: once Debian install-info goes
-## away, we can remove this hack.
-       @if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i 
debian' >/dev/null 2>&1; then \
+## away, we can remove this hack.  Debian install-info v1.8.3
+## prints version info to stderr.
+##
+## Do not use
+##    install-info --version 2>&1 | sed 1q | fgrep -s -v -i debian
+## as if install-info does not exist, fgrep -v will be happy, and
+## therefore the code will be triggered although install-info is missing.
+       @if (install-info --version && \
+            install-info --version | fgrep -i -v debian) >/dev/null 2>&1; then 
\
          list='$(INFO_DEPS)'; \
          for file in $$list; do \
 ## Run `:' after install-info in case install-info fails.  We really
@@ -171,35 +145,91 @@ NOTCYGNUS   d=$(srcdir); \
            install-info --info-dir=$(DESTDIR)$(infodir) 
$(DESTDIR)$(infodir)/$$file || :;\
          done; \
        else : ; fi
+else ! %?LOCAL-TEXIS%
+install-info-am:
+endif ! %?LOCAL-TEXIS%
+
+
+## -------------- ##
+## Uninstalling.  ##
+## -------------- ##
+
+?SUBDIRS?RECURSIVE_TARGETS += uninstall-info-recursive
+?SUBDIRS?.PHONY uninstall-info: uninstall-info-recursive
+?INSTALL-INFO?uninstall-am: uninstall-info-am
+
+.PHONY: uninstall-info-am
 
-uninstall-info:
+if %?LOCAL-TEXIS%
+uninstall-info-am:
        $(PRE_UNINSTALL)
 ## Run two loops here so that we can handle PRE_UNINSTALL and
-## NORMAL_UNINSTALL correctly.
-       @if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i 
debian' >/dev/null 2>&1; then \
-         ii=yes; \
-       else ii=; fi; \
-       list='$(INFO_DEPS)'; \
-       for file in $$list; do \
-         test -z "$ii" \
-           || install-info --info-dir=$(DESTDIR)$(infodir) --remove $$file; \
-       done
+## NORMAL_UNINSTALL correctly.  Debian install-info v1.8.3 prints
+## version info to stderr.
+       @if (install-info --version && \
+            install-info --version | fgrep -i -v debian) >/dev/null 2>&1; then 
\
+         list='$(INFO_DEPS)'; \
+         for file in $$list; do \
+## install-info needs the actual info file.  We use the installed one,
+## rather than relying on one still being in srcdir or builddir.
+           echo " install-info --info-dir=$(DESTDIR)$(infodir) --remove 
$(DESTDIR)$(infodir)/$$file"; \
+           install-info --info-dir=$(DESTDIR)$(infodir) --remove 
$(DESTDIR)$(infodir)/$$file; \
+         done; \
+       else :; fi
        @$(NORMAL_UNINSTALL)
-       list='$(INFO_DEPS)'; \
+       @list='$(INFO_DEPS)'; \
        for file in $$list; do \
-         (cd $(DESTDIR)$(infodir) && rm -f $$file $$file-[0-9] 
$$file-[0-9][0-9]); \
+         (if cd $(DESTDIR)$(infodir); then \
+            echo " rm -f $$file $$file-[0-9] $$file-[0-9][0-9])"; \
+            rm -f $$file $$file-[0-9] $$file-[0-9][0-9]; \
+          else :; fi); \
        done
+else ! %?LOCAL-TEXIS%
+uninstall-info-am:
+endif ! %?LOCAL-TEXIS%
 
+if %?LOCAL-TEXIS%
+.PHONY: dist-info
 dist-info: $(INFO_DEPS)
        list='$(INFO_DEPS)'; \
        for base in $$list; do \
 ## In Cygnus mode, allow info file to be in source or build dir.  In
 ## other modes, allow only source dir.
-NOTCYGNUS        d=$(srcdir); \
-CYGNUS   if test -f $$base; then d=.; else d=$(srcdir); fi; \
-         for file in `cd $$d && eval echo $$base*`; do \
+?!CYGNUS?        d=$(srcdir); \
+?CYGNUS?         if test -f $$base; then d=.; else d=$(srcdir); fi; \
+         for file in `CDPATH=: && cd $$d && eval echo $$base*`; do \
            test -f $(distdir)/$$file \
-           || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
            || cp -p $$d/$$file $(distdir)/$$file; \
          done; \
        done
+endif %?LOCAL-TEXIS%
+
+
+## ---------- ##
+## Cleaning.  ##
+## ---------- ##
+
+## The funny name is due to --cygnus influence; in Cygnus mode,
+## `clean-info' is a target that users can use.
+
+if %?LOCAL-TEXIS%
+.PHONY: mostlyclean-aminfo
+mostlyclean-am: mostlyclean-aminfo
+mostlyclean-aminfo:
+       -rm -f %TEXICLEAN%
+
+.PHONY: maintainer-clean-aminfo
+maintainer-clean-am: maintainer-clean-aminfo
+maintainer-clean-aminfo:
+## Eww.  But how else can we find all the output files from makeinfo?
+?!CYGNUS?      cd $(srcdir) && \
+       for i in $(INFO_DEPS); do \
+         rm -f $$i; \
+         if test "`echo $$i-[0-9]*`" != "$$i-[0-9]*"; then \
+           rm -f $$i-[0-9]*; \
+         fi; \
+       done
+
+?CYGNUS?.PHONY: clean-info
+?CYGNUS?clean-info: mostlyclean-aminfo
+endif %?LOCAL-TEXIS%
diff --git a/lib/am/yacc.am b/lib/am/yacc.am
new file mode 100644
index 0000000..6fc6c16
--- /dev/null
+++ b/lib/am/yacc.am
@@ -0,0 +1,37 @@
+## automake - create Makefile.in from Makefile.am
+## Copyright 1998, 1999, 2001 Free Software Foundation, Inc.
+
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2, or (at your option)
+## any later version.
+
+## This program is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU General Public License for more details.
+
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+## 02111-1307, USA.
+
+?GENERIC?.%EXT%.%DERIVED-EXT%:
+?!GENERIC?%OBJ%: %SOURCE%
+if %?MORE-THAN-ONE%
+       $(SHELL) $(YLWRAP) %SOURCE% y.tab.c %OBJ% y.tab.h %BASE%.h -- %COMPILE%
+else !%?MORE-THAN-ONE%
+       %COMPILE% %SOURCE% && mv y.tab.c %OBJ%
+       if test -f y.tab.h; then \
+         if cmp -s y.tab.h %BASE%.h; then \
+           rm -f y.tab.h; \
+         else \
+           mv y.tab.h %BASE%.h; \
+         fi; \
+       fi
+endif !%?MORE-THAN-ONE%
+
+## Also generate a dependency for the .h file.
+if !%?GENERIC%
+%BASE%.h: %OBJ%
+endif !%?GENERIC%
diff --git a/lib/ansi2knr.c b/lib/ansi2knr.c
index 4962434..00b96b9 100644
--- a/lib/ansi2knr.c
+++ b/lib/ansi2knr.c
@@ -1,6 +1,6 @@
-/* Copyright (C) 1989, 1997, 1998 Aladdin Enterprises.  All rights reserved. */
+/* Copyright (C) 1989, 2000 Aladdin Enterprises.  All rights reserved. */
 
-/*$Id: ansi2knr.c,v 1.10 1998/12/02 12:42:23 tromey Exp $*/
+/*$Id: ansi2knr.c,v 1.13 2001/05/20 05:59:43 tromey Exp $*/
 /* Convert ANSI C function definitions to K&R ("traditional C") syntax */
 
 /*
@@ -37,27 +37,62 @@ program under the GPL.
  * There are no error messages.
  *
  * ansi2knr recognizes function definitions by seeing a non-keyword
- * identifier at the left margin, followed by a left parenthesis,
- * with a right parenthesis as the last character on the line,
- * and with a left brace as the first token on the following line
- * (ignoring possible intervening comments), except that a line
+ * identifier at the left margin, followed by a left parenthesis, with a
+ * right parenthesis as the last character on the line, and with a left
+ * brace as the first token on the following line (ignoring possible
+ * intervening comments and/or preprocessor directives), except that a line
  * consisting of only
  *     identifier1(identifier2)
  * will not be considered a function definition unless identifier2 is
- * the word "void".  ansi2knr will recognize a multi-line header provided
- * that no intervening line ends with a left or right brace or a semicolon.
- * These algorithms ignore whitespace and comments, except that
- * the function name must be the first thing on the line.
- * The following constructs will confuse it:
+ * the word "void", and a line consisting of
+ *     identifier1(identifier2, <<arbitrary>>)
+ * will not be considered a function definition.
+ * ansi2knr will recognize a multi-line header provided that no intervening
+ * line ends with a left or right brace or a semicolon.  These algorithms
+ * ignore whitespace, comments, and preprocessor directives, except that
+ * the function name must be the first thing on the line.  The following
+ * constructs will confuse it:
  *     - Any other construct that starts at the left margin and
  *         follows the above syntax (such as a macro or function call).
- *     - Some macros that tinker with the syntax of the function header.
+ *     - Some macros that tinker with the syntax of function headers.
  */
 
 /*
  * The original and principal author of ansi2knr is L. Peter Deutsch
  * <address@hidden>.  Other authors are noted in the change history
  * that follows (in reverse chronological order):
+
+       lpd 2000-04-12 backs out Eggert's changes because of bugs:
+       - concatlits didn't declare the type of its bufend argument;
+       - concatlits didn't't recognize when it was inside a comment;
+       - scanstring could scan backward past the beginning of the string; when
+       - the check for \ + newline in scanstring was unnecessary.
+
+       2000-03-05  Paul Eggert  <address@hidden>
+
+       Add support for concatenated string literals.
+       * ansi2knr.c (concatlits): New decl.
+       (main): Invoke concatlits to concatenate string literals.
+       (scanstring): Handle backslash-newline correctly.  Work with
+       character constants.  Fix bug when scanning backwards through
+       backslash-quote.  Check for unterminated strings.
+       (convert1): Parse character constants, too.
+       (appendline, concatlits): New functions.
+       * ansi2knr.1: Document this.
+
+       lpd 1999-08-17 added code to allow preprocessor directives
+               wherever comments are allowed
+       lpd 1999-04-12 added minor fixes from Pavel Roskin
+               <address@hidden> for clean compilation with
+               gcc -W -Wall
+       lpd 1999-03-22 added hack to recognize lines consisting of
+               identifier1(identifier2, xxx) as *not* being procedures
+       lpd 1999-02-03 made indentation of preprocessor commands consistent
+       lpd 1999-01-28 fixed two bugs: a '/' in an argument list caused an
+               endless loop; quoted strings within an argument list
+               confused the parser
+       lpd 1999-01-24 added a check for write errors on the output,
+               suggested by Jim Meyering <address@hidden>
        lpd 1998-11-09 added further hack to recognize identifier(void)
                as being a procedure
        lpd 1998-10-23 added hack to recognize lines consisting of
@@ -153,19 +188,24 @@ program under the GPL.
 
 #endif
 
+/* Define NULL (for *very* old compilers). */
+#ifndef NULL
+# define NULL (0)
+#endif
+
 /*
  * The ctype macros don't always handle 8-bit characters correctly.
  * Compensate for this here.
  */
 #ifdef isascii
-#  undef HAVE_ISASCII          /* just in case */
-#  define HAVE_ISASCII 1
+# undef HAVE_ISASCII           /* just in case */
+# define HAVE_ISASCII 1
 #else
 #endif
 #if STDC_HEADERS || !HAVE_ISASCII
-#  define is_ascii(c) 1
+# define is_ascii(c) 1
 #else
-#  define is_ascii(c) isascii(c)
+# define is_ascii(c) isascii(c)
 #endif
 
 #define is_space(c) (is_ascii(c) && isspace(c))
@@ -177,7 +217,10 @@ program under the GPL.
 #define isidfirstchar(ch) (is_alpha(ch) || (ch) == '_')
 
 /* Forward references */
+char *ppdirforward();
+char *ppdirbackward();
 char *skipspace();
+char *scanstring();
 int writeblanks();
 int test1();
 int convert1();
@@ -190,6 +233,8 @@ main(argc, argv)
 {      FILE *in = stdin;
        FILE *out = stdout;
        char *filename = 0;
+       char *program_name = argv[0];
+       char *output_name = 0;
 #define bufsize 5000                   /* arbitrary size */
        char *buf;
        char *line;
@@ -205,6 +250,7 @@ main(argc, argv)
         * check for this switch for backward compatibility.
         */
        int convert_varargs = 1;
+       int output_error;
 
        while ( argc > 1 && argv[1][0] == '-' ) {
          if ( !strcmp(argv[1], "--varargs") ) {
@@ -219,7 +265,8 @@ main(argc, argv)
            argv += 2;
            continue;
          }
-         fprintf(stderr, "Unrecognized switch: %s\n", argv[1]);
+         fprintf(stderr, "%s: Unrecognized switch: %s\n", program_name,
+                 argv[1]);
          fprintf(stderr, usage);
          exit(1);
        }
@@ -229,16 +276,19 @@ main(argc, argv)
                fprintf(stderr, usage);
                exit(0);
        case 3:
-               out = fopen(argv[2], "w");
+               output_name = argv[2];
+               out = fopen(output_name, "w");
                if ( out == NULL ) {
-                 fprintf(stderr, "Cannot open output file %s\n", argv[2]);
+                 fprintf(stderr, "%s: Cannot open output file %s\n",
+                         program_name, output_name);
                  exit(1);
                }
                /* falls through */
        case 2:
                in = fopen(argv[1], "r");
                if ( in == NULL ) {
-                 fprintf(stderr, "Cannot open input file %s\n", argv[1]);
+                 fprintf(stderr, "%s: Cannot open input file %s\n",
+                         program_name, argv[1]);
                  exit(1);
                }
                if ( filename == 0 )
@@ -250,6 +300,11 @@ main(argc, argv)
        if ( filename )
          fprintf(out, "#line 1 \"%s\"\n", filename);
        buf = malloc(bufsize);
+       if ( buf == NULL )
+          {
+               fprintf(stderr, "Unable to allocate read buffer!\n");
+               exit(1);
+          }
        line = buf;
        while ( fgets(line, (unsigned)(buf + bufsize - line), in) != NULL )
           {
@@ -266,7 +321,7 @@ f:                  if ( line >= buf + (bufsize - 1) ) /* 
overflow check */
                          goto wl;
                        if ( fgets(line, (unsigned)(buf + bufsize - line), in) 
== NULL )
                          goto wl;
-                       switch ( *skipspace(more, 1) )
+                       switch ( *skipspace(ppdirforward(more), 1) )
                          {
                          case '{':
                            /* Definitely a function header. */
@@ -300,32 +355,91 @@ wl:                       fputs(buf, out);
        if ( line != buf )
          fputs(buf, out);
        free(buf);
-       if ( out != stdout )
-         fclose(out);
+       if ( output_name ) {
+         output_error = ferror(out);
+         output_error |= fclose(out);
+       } else {                /* out == stdout */
+         fflush(out);
+         output_error = ferror(out);
+       }
+       if ( output_error ) {
+         fprintf(stderr, "%s: error writing to %s\n", program_name,
+                 (output_name ? output_name : "stdout"));
+         exit(1);
+       }
        if ( in != stdin )
          fclose(in);
        return 0;
 }
 
-/* Skip over space and comments, in either direction. */
+/*
+ * Skip forward or backward over one or more preprocessor directives.
+ */
+char *
+ppdirforward(p)
+    char *p;
+{
+    for (; *p == '#'; ++p) {
+       for (; *p != '\r' && *p != '\n'; ++p)
+           if (*p == 0)
+               return p;
+       if (*p == '\r' && p[1] == '\n')
+           ++p;
+    }
+    return p;
+}
+char *
+ppdirbackward(p, limit)
+    char *p;
+    char *limit;
+{
+    char *np = p;
+
+    for (;; p = --np) {
+       if (*np == '\n' && np[-1] == '\r')
+           --np;
+       for (; np > limit && np[-1] != '\r' && np[-1] != '\n'; --np)
+           if (np[-1] == 0)
+               return np;
+       if (*np != '#')
+           return p;
+    }
+}
+
+/*
+ * Skip over whitespace, comments, and preprocessor directives,
+ * in either direction.
+ */
 char *
 skipspace(p, dir)
-    register char *p;
-    register int dir;                  /* 1 for forward, -1 for backward */
-{      for ( ; ; )
-          {    while ( is_space(*p) )
-                 p += dir;
-               if ( !(*p == '/' && p[dir] == '*') )
-                 break;
-               p += dir;  p += dir;
-               while ( !(*p == '*' && p[dir] == '/') )
-                  {    if ( *p == 0 )
-                         return p;     /* multi-line comment?? */
-                       p += dir;
-                  }
-               p += dir;  p += dir;
-          }
-       return p;
+    char *p;
+    int dir;                   /* 1 for forward, -1 for backward */
+{
+    for ( ; ; ) {
+       while ( is_space(*p) )
+           p += dir;
+       if ( !(*p == '/' && p[dir] == '*') )
+           break;
+       p += dir;  p += dir;
+       while ( !(*p == '*' && p[dir] == '/') ) {
+           if ( *p == 0 )
+               return p;       /* multi-line comment?? */
+           p += dir;
+       }
+       p += dir;  p += dir;
+    }
+    return p;
+}
+
+/* Scan over a quoted string, in either direction. */
+char *
+scanstring(p, dir)
+    char *p;
+    int dir;
+{
+    for (p += dir; ; p += dir)
+       if (*p == '"' && p[-dir] != '\\')
+           return p + dir;
 }
 
 /*
@@ -359,14 +473,14 @@ writeblanks(start, end)
 int
 test1(buf)
     char *buf;
-{      register char *p = buf;
+{      char *p = buf;
        char *bend;
        char *endfn;
        int contin;
 
        if ( !isidfirstchar(*p) )
          return 0;             /* no name at left margin */
-       bend = skipspace(buf + strlen(buf) - 1, -1);
+       bend = skipspace(ppdirbackward(buf + strlen(buf) - 1, buf), -1);
        switch ( *bend )
           {
           case ';': contin = 0 /*2*/; break;
@@ -396,7 +510,7 @@ test1(buf)
                   };
                char **key = words;
                char *kp;
-               int len = endfn - buf;
+               unsigned len = endfn - buf;
 
                while ( (kp = *key) != 0 )
                   {    if ( strlen(kp) == len && !strncmp(kp, buf, len) )
@@ -409,14 +523,16 @@ test1(buf)
               int len;
               /*
                * Check for identifier1(identifier2) and not
-               * identifier1(void).
+               * identifier1(void), or identifier1(identifier2, xxxx).
                */
 
               while ( isidchar(*p) )
                   p++;
               len = p - id;
               p = skipspace(p, 1);
-              if ( *p == ')' && (len != 4 || strncmp(id, "void", 4)) )
+              if (*p == ',' ||
+                  (*p == ')' && (len != 4 || strncmp(id, "void", 4)))
+                  )
                   return 0;    /* not a function */
           }
        /*
@@ -443,7 +559,7 @@ convert1(buf, out, header, convert_varargs)
     int header;                        /* Boolean */
     int convert_varargs;       /* Boolean */
 {      char *endfn;
-       register char *p;
+       char *p;
        /*
         * The breaks table contains pointers to the beginning and end
         * of each argument.
@@ -461,7 +577,7 @@ convert1(buf, out, header, convert_varargs)
          ;
 top:   p = endfn;
        breaks = (char **)malloc(sizeof(char *) * num_breaks * 2);
-       if ( breaks == 0 )
+       if ( breaks == NULL )
           {    /* Couldn't allocate break table, give up */
                fprintf(stderr, "Unable to allocate break table!\n");
                fputs(buf, out);
@@ -473,7 +589,7 @@ top:        p = endfn;
        do
           {    int level = 0;
                char *lp = NULL;
-               char *rp;
+               char *rp = NULL;
                char *end = NULL;
 
                if ( bp >= btop )
@@ -500,14 +616,18 @@ top:      p = endfn;
                                else rp = p;
                                break;
                           case '/':
-                               p = skipspace(p, 1) - 1;
+                               if (p[1] == '*')
+                                   p = skipspace(p, 1) - 1;
                                break;
+                          case '"':
+                              p = scanstring(p, 1) - 1;
+                              break;
                           default:
                                ;
                           }
                   }
                /* Erase any embedded prototype parameters. */
-               if ( lp )
+               if ( lp && rp )
                  writeblanks(lp + 1, rp);
                p--;                    /* back up over terminator */
                /* Find the name being declared. */
@@ -523,9 +643,19 @@ top:       p = endfn;
                                while ( level )
                                 switch ( *--p )
                                   {
-                                  case ']': case ')': level++; break;
-                                  case '[': case '(': level--; break;
-                                  case '/': p = skipspace(p, -1) + 1; break;
+                                  case ']': case ')':
+                                      level++;
+                                      break;
+                                  case '[': case '(':
+                                      level--;
+                                      break;
+                                  case '/':
+                                      if (p > buf && p[-1] == '*')
+                                          p = skipspace(p, -1) + 1;
+                                      break;
+                                  case '"':
+                                      p = scanstring(p, -1) + 1;
+                                      break;
                                   default: ;
                                   }
                           }
diff --git a/lib/compile b/lib/compile
new file mode 100755
index 0000000..9bb997a
--- /dev/null
+++ b/lib/compile
@@ -0,0 +1,99 @@
+#! /bin/sh
+
+# Wrapper for compilers which do not understand `-c -o'.
+
+# Copyright 1999, 2000 Free Software Foundation, Inc.
+# Written by Tom Tromey <address@hidden>.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Usage:
+# compile PROGRAM [ARGS]...
+# `-o FOO.o' is removed from the args passed to the actual compile.
+
+prog=$1
+shift
+
+ofile=
+cfile=
+args=
+while test $# -gt 0; do
+   case "$1" in
+    -o)
+       # configure might choose to run compile as `compile cc -o foo foo.c'.
+       # So we do something ugly here.
+       ofile=$2
+       shift
+       case "$ofile" in
+       *.o | *.obj)
+          ;;
+       *)
+          args="$args -o $ofile"
+          ofile=
+          ;;
+       esac
+       ;;
+    *.c)
+       cfile=$1
+       args="$args $1"
+       ;;
+    *)
+       args="$args $1"
+       ;;
+   esac
+   shift
+done
+
+if test -z "$ofile" || test -z "$cfile"; then
+   # If no `-o' option was seen then we might have been invoked from a
+   # pattern rule where we don't need one.  That is ok -- this is a
+   # normal compilation that the losing compiler can handle.  If no
+   # `.c' file was seen then we are probably linking.  That is also
+   # ok.
+   exec "$prog" $args
+fi
+
+# Name of file we expect compiler to create.
+cofile=`echo $cfile | sed -e 's|^.*/||' -e 's/\.c$/.o/'`
+
+# Create the lock directory.
+# Note: use `[/.-]' here to ensure that we don't use the same name
+# that we are using for the .o file.  Also, base the name on the expected
+# object file name, since that is what matters with a parallel build.
+lockdir=`echo $cofile | sed -e 's|[/.-]|_|g'`.d
+while true; do
+   if mkdir $lockdir > /dev/null 2>&1; then
+      break
+   fi
+   sleep 1
+done
+# FIXME: race condition here if user kills between mkdir and trap.
+trap "rmdir $lockdir; exit 1" 1 2 15
+
+# Run the compile.
+"$prog" $args
+status=$?
+
+if test -f "$cofile"; then
+   mv "$cofile" "$ofile"
+fi
+
+rmdir $lockdir
+exit $status
diff --git a/lib/config.guess b/lib/config.guess
index 4e5345f..cd430f6 100755
--- a/lib/config.guess
+++ b/lib/config.guess
@@ -1,7 +1,10 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
-#   Copyright (C) 1992, 93, 94, 95, 96, 97, 1998 Free Software Foundation, Inc.
-#
+#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+#   Free Software Foundation, Inc.
+
+timestamp='2001-08-21'
+
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
 # the Free Software Foundation; either version 2 of the License, or
@@ -22,36 +25,153 @@
 # the same distribution terms that you use for the rest of that program.
 
 # Written by Per Bothner <address@hidden>.
-# The master version of this file is at the FSF in /home/gd/gnu/lib.
+# Please send patches to <address@hidden>.
 #
 # This script attempts to guess a canonical system name similar to
 # config.sub.  If it succeeds, it prints the system name on stdout, and
 # exits with 0.  Otherwise, it exits with 1.
 #
 # The plan is that this can be called by configure scripts if you
-# don't specify an explicit system type (host/target name).
-#
-# Only a few systems have been added to this list; please add others
-# (but try to keep the structure clean).
-#
+# don't specify an explicit build system type.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION]
+
+Output the configuration name of the system \`$me' is run on.
+
+Operation modes:
+  -h, --help         print this help, then exit
+  -t, --time-stamp   print date of last modification, then exit
+  -v, --version      print version number, then exit
+
+Report bugs and patches to <address@hidden>."
+
+version="\
+GNU config.guess ($timestamp)
+
+Originally written by Per Bothner.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+  case $1 in
+    --time-stamp | --time* | -t )
+       echo "$timestamp" ; exit 0 ;;
+    --version | -v )
+       echo "$version" ; exit 0 ;;
+    --help | --h* | -h )
+       echo "$usage"; exit 0 ;;
+    -- )     # Stop option processing
+       shift; break ;;
+    - )        # Use stdin as input.
+       break ;;
+    -* )
+       echo "$me: invalid option $1$help" >&2
+       exit 1 ;;
+    * )
+       break ;;
+  esac
+done
+
+if test $# != 0; then
+  echo "$me: too many arguments$help" >&2
+  exit 1
+fi
+
+
+dummy=dummy-$$
+trap 'rm -f $dummy.c $dummy.o $dummy.rel $dummy; exit 1' 1 2 15
+
+# CC_FOR_BUILD -- compiler used by this script.
+# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
+# use `HOST_CC' if defined, but it is deprecated.
+
+set_cc_for_build='case $CC_FOR_BUILD,$HOST_CC,$CC in
+ ,,)    echo "int dummy(){}" > $dummy.c ;
+       for c in cc gcc c89 ; do
+         ($c $dummy.c -c -o $dummy.o) >/dev/null 2>&1 ;
+         if test $? = 0 ; then
+            CC_FOR_BUILD="$c"; break ;
+         fi ;
+       done ;
+       rm -f $dummy.c $dummy.o $dummy.rel ;
+       if test x"$CC_FOR_BUILD" = x ; then
+         CC_FOR_BUILD=no_compiler_found ;
+       fi
+       ;;
+ ,,*)   CC_FOR_BUILD=$CC ;;
+ ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
+esac'
 
 # This is needed to find uname on a Pyramid OSx when run in the BSD universe.
-# (address@hidden 8/24/94.)
+# (address@hidden 1994-08-24)
 if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
        PATH=$PATH:/.attbin ; export PATH
 fi
 
 UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
 UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
-UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
 
-dummy=dummy-$$
-trap 'rm -f $dummy.c $dummy.o $dummy; exit 1' 1 2 15
-
 # Note: order is significant - the case branches are not exclusive.
 
 case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+    *:NetBSD:*:*)
+       # Netbsd (nbsd) targets should (where applicable) match one or
+       # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
+       # *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
+       # switched to ELF, *-*-netbsd* would select the old
+       # object file format.  This provides both forward
+       # compatibility and a consistent mechanism for selecting the
+       # object file format.
+       # Determine the machine/vendor (is the vendor relevant).
+       case "${UNAME_MACHINE}" in
+           amiga) machine=m68k-unknown ;;
+           arm32) machine=arm-unknown ;;
+           atari*) machine=m68k-atari ;;
+           sun3*) machine=m68k-sun ;;
+           mac68k) machine=m68k-apple ;;
+           macppc) machine=powerpc-apple ;;
+           hp3[0-9][05]) machine=m68k-hp ;;
+           ibmrt|romp-ibm) machine=romp-ibm ;;
+           *) machine=${UNAME_MACHINE}-unknown ;;
+       esac
+       # The Operating System including object format, if it has switched
+       # to ELF recently, or will in the future.
+       case "${UNAME_MACHINE}" in
+           
i386|sparc|amiga|arm*|hp300|mvme68k|vax|atari|luna68k|mac68k|news68k|next68k|pc532|sun3*|x68k)
+               eval $set_cc_for_build
+               if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
+                       | grep __ELF__ >/dev/null
+               then
+                   # Once all utilities can be ECOFF (netbsdecoff) or a.out 
(netbsdaout).
+                   # Return netbsd for either.  FIX?
+                   os=netbsd
+               else
+                   os=netbsdelf
+               fi
+               ;;
+           *)
+               os=netbsd
+               ;;
+       esac
+       # The OS release
+       release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+       # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
+       # contains redundant information, the shorter form:
+       # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
+       echo "${machine}-${os}${release}"
+       exit 0 ;;
     alpha:OSF1:*:*)
        if test $UNAME_RELEASE = "V4.0"; then
                UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
@@ -61,55 +181,72 @@ case 
"${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
        # A Xn.n version is an unreleased experimental baselevel.
        # 1.2 uses "1.2" for uname -r.
        cat <<EOF >$dummy.s
+       .data
+\$Lformat:
+       .byte 37,100,45,37,120,10,0     # "%d-%x\n"
+
+       .text
        .globl main
+       .align 4
        .ent main
 main:
-       .frame \$30,0,\$26,0
-       .prologue 0
-       .long 0x47e03d80 # implver $0
-       lda \$2,259
-       .long 0x47e20c21 # amask $2,$1
-       srl \$1,8,\$2
-       sll \$2,2,\$2
-       sll \$0,3,\$0
-       addl \$1,\$0,\$0
-       addl \$2,\$0,\$0
-       ret \$31,(\$26),1
+       .frame \$30,16,\$26,0
+       ldgp \$29,0(\$27)
+       .prologue 1
+       .long 0x47e03d80 # implver \$0
+       lda \$2,-1
+       .long 0x47e20c21 # amask \$2,\$1
+       lda \$16,\$Lformat
+       mov \$0,\$17
+       not \$1,\$18
+       jsr \$26,printf
+       ldgp \$29,0(\$26)
+       mov 0,\$16
+       jsr \$26,exit
        .end main
 EOF
-       ${CC-cc} $dummy.s -o $dummy 2>/dev/null
+       eval $set_cc_for_build
+       $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
        if test "$?" = 0 ; then
-               ./$dummy
-               case "$?" in
-                       7)
+               case `./$dummy` in
+                       0-0)
                                UNAME_MACHINE="alpha"
                                ;;
-                       15)
+                       1-0)
                                UNAME_MACHINE="alphaev5"
                                ;;
-                       14)
+                       1-1)
                                UNAME_MACHINE="alphaev56"
                                ;;
-                       10)
+                       1-101)
                                UNAME_MACHINE="alphapca56"
                                ;;
-                       16)
+                       2-303)
                                UNAME_MACHINE="alphaev6"
                                ;;
+                       2-307)
+                               UNAME_MACHINE="alphaev67"
+                               ;;
+                       2-1307)
+                               UNAME_MACHINE="alphaev68"
+                               ;;
                esac
        fi
        rm -f $dummy.s $dummy
-       echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 
's/^[VTX]//' | tr [[A-Z]] [[a-z]]`
+       echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 
's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+       exit 0 ;;
+    Alpha\ *:Windows_NT*:*)
+       # How do we know it's Interix rather than the generic POSIX subsystem?
+       # Should we change UNAME_MACHINE based on the output of uname instead
+       # of the specific Alpha model?
+       echo alpha-pc-interix
        exit 0 ;;
     21064:Windows_NT:50:3)
        echo alpha-dec-winnt3.5
        exit 0 ;;
     Amiga*:UNIX_System_V:4.0:*)
-       echo m68k-cbm-sysv4
+       echo m68k-unknown-sysv4
        exit 0;;
-    amiga:NetBSD:*:*)
-      echo m68k-cbm-netbsd${UNAME_RELEASE}
-      exit 0 ;;
     amiga:OpenBSD:*:*)
        echo m68k-unknown-openbsd${UNAME_RELEASE}
        exit 0 ;;
@@ -134,16 +271,16 @@ EOF
     wgrisc:OpenBSD:*:*)
        echo mipsel-unknown-openbsd${UNAME_RELEASE}
        exit 0 ;;
+    *:OS/390:*:*)
+       echo i370-ibm-openedition
+       exit 0 ;;
     arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
        echo arm-acorn-riscix${UNAME_RELEASE}
        exit 0;;
-    arm32:NetBSD:*:*)
-       echo arm-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
-       exit 0 ;;
-    SR2?01:HI-UX/MPP:*:*)
+    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
        echo hppa1.1-hitachi-hiuxmpp
        exit 0;;
-    Pyramid*:OSx*:*:*|MIS*:OSx*:*:*|MIS*:SMP_DC-OSx*:*:*)
+    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
        # address@hidden (Earle F. Ake) contributed MIS and NILE.
        if test "`(/bin/universe) 2>/dev/null`" = att ; then
                echo pyramid-pyramid-sysv3
@@ -151,7 +288,7 @@ EOF
                echo pyramid-pyramid-bsd
        fi
        exit 0 ;;
-    NILE:*:*:dcosx)
+    NILE*:*:*:dcosx)
        echo pyramid-pyramid-svr4
        exit 0 ;;
     sun4H:SunOS:5.*:*)
@@ -196,21 +333,41 @@ EOF
     aushp:SunOS:*:*)
        echo sparc-auspex-sunos${UNAME_RELEASE}
        exit 0 ;;
-    atari*:NetBSD:*:*)
-       echo m68k-atari-netbsd${UNAME_RELEASE}
+    sparc*:NetBSD:*)
+       echo `uname -p`-unknown-netbsd${UNAME_RELEASE}
        exit 0 ;;
     atari*:OpenBSD:*:*)
        echo m68k-unknown-openbsd${UNAME_RELEASE}
        exit 0 ;;
-    sun3*:NetBSD:*:*)
-       echo m68k-sun-netbsd${UNAME_RELEASE}
+    # The situation for MiNT is a little confusing.  The machine name
+    # can be virtually everything (everything which is not
+    # "atarist" or "atariste" at least should have a processor
+    # > m68000).  The system name ranges from "MiNT" over "FreeMiNT"
+    # to the lowercase version "mint" (or "freemint").  Finally
+    # the system name "TOS" denotes a system which is actually not
+    # MiNT.  But MiNT is downward compatible to TOS, so this should
+    # be no problem.
+    atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
+        echo m68k-atari-mint${UNAME_RELEASE}
+       exit 0 ;;
+    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
+       echo m68k-atari-mint${UNAME_RELEASE}
+        exit 0 ;;
+    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
+        echo m68k-atari-mint${UNAME_RELEASE}
        exit 0 ;;
+    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
+        echo m68k-milan-mint${UNAME_RELEASE}
+        exit 0 ;;
+    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
+        echo m68k-hades-mint${UNAME_RELEASE}
+        exit 0 ;;
+    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
+        echo m68k-unknown-mint${UNAME_RELEASE}
+        exit 0 ;;
     sun3*:OpenBSD:*:*)
        echo m68k-unknown-openbsd${UNAME_RELEASE}
        exit 0 ;;
-    mac68k:NetBSD:*:*)
-       echo m68k-apple-netbsd${UNAME_RELEASE}
-       exit 0 ;;
     mac68k:OpenBSD:*:*)
        echo m68k-unknown-openbsd${UNAME_RELEASE}
        exit 0 ;;
@@ -223,9 +380,6 @@ EOF
     powerpc:machten:*:*)
        echo powerpc-apple-machten${UNAME_RELEASE}
        exit 0 ;;
-    macppc:NetBSD:*:*)
-        echo powerpc-apple-netbsd${UNAME_RELEASE}
-        exit 0 ;;
     RISC*:Mach:*:*)
        echo mips-dec-mach_bsd4.3
        exit 0 ;;
@@ -235,12 +389,17 @@ EOF
     VAX*:ULTRIX*:*:*)
        echo vax-dec-ultrix${UNAME_RELEASE}
        exit 0 ;;
-    2020:CLIX:*:*)
+    2020:CLIX:*:* | 2430:CLIX:*:*)
        echo clipper-intergraph-clix${UNAME_RELEASE}
        exit 0 ;;
     mips:*:*:UMIPS | mips:*:*:RISCos)
        sed 's/^        //' << EOF >$dummy.c
-       int main (argc, argv) int argc; char **argv; {
+#ifdef __cplusplus
+#include <stdio.h>  /* for printf() prototype */
+       int main (int argc, char *argv[]) {
+#else
+       int main (argc, argv) int argc; char *argv[]; {
+#endif
        #if defined (host_mips) && defined (MIPSEB)
        #if defined (SYSTYPE_SYSV)
          printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
@@ -255,12 +414,16 @@ EOF
          exit (-1);
        }
 EOF
-       ${CC-cc} $dummy.c -o $dummy \
+       eval $set_cc_for_build
+       $CC_FOR_BUILD $dummy.c -o $dummy \
          && ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
-         && rm $dummy.c $dummy && exit 0
+         && rm -f $dummy.c $dummy && exit 0
        rm -f $dummy.c $dummy
        echo mips-mips-riscos${UNAME_RELEASE}
        exit 0 ;;
+    Motorola:PowerMAX_OS:*:*)
+       echo powerpc-motorola-powermax
+       exit 0 ;;
     Night_Hawk:Power_UNIX:*:*)
        echo powerpc-harris-powerunix
        exit 0 ;;
@@ -276,15 +439,18 @@ EOF
     AViiON:dgux:*:*)
         # DG/UX returns AViiON for all architectures
         UNAME_PROCESSOR=`/usr/bin/uname -p`
-        if [ $UNAME_PROCESSOR = mc88100 -o $UNAME_PROCESSOR = mc88110 ] ; then
-       if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx \
-            -o ${TARGET_BINARY_INTERFACE}x = x ] ; then
+       if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
+       then
+           if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
+              [ ${TARGET_BINARY_INTERFACE}x = x ]
+           then
                echo m88k-dg-dgux${UNAME_RELEASE}
-       else
+           else
                echo m88k-dg-dguxbcs${UNAME_RELEASE}
+           fi
+       else
+           echo i586-dg-dgux${UNAME_RELEASE}
        fi
-        else echo i586-dg-dgux${UNAME_RELEASE}
-        fi
        exit 0 ;;
     M88*:DolphinOS:*:*)        # DolphinOS (SVR3)
        echo m88k-dolphin-sysv3
@@ -305,9 +471,17 @@ EOF
     ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
        echo romp-ibm-aix      # uname -m gives an 8 hex-code CPU id
        exit 0 ;;              # Note that: echo "'`uname -s`'" gives 'AIX '
-    i?86:AIX:*:*)
+    i*86:AIX:*:*)
        echo i386-ibm-aix
        exit 0 ;;
+    ia64:AIX:*:*)
+       if [ -x /usr/bin/oslevel ] ; then
+               IBM_REV=`/usr/bin/oslevel`
+       else
+               IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+       fi
+       echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
+       exit 0 ;;
     *:AIX:2:3)
        if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
                sed 's/^                //' << EOF >$dummy.c
@@ -321,7 +495,8 @@ EOF
                        exit(0);
                        }
 EOF
-               ${CC-cc} $dummy.c -o $dummy && ./$dummy && rm $dummy.c $dummy 
&& exit 0
+               eval $set_cc_for_build
+               $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c 
$dummy && exit 0
                rm -f $dummy.c $dummy
                echo rs6000-ibm-aix3.2.5
        elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
@@ -330,9 +505,9 @@ EOF
                echo rs6000-ibm-aix3.2
        fi
        exit 0 ;;
-    *:AIX:*:4)
+    *:AIX:*:[45])
        IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | 
awk '{ print $1 }'`
-       if /usr/sbin/lsattr -EHl ${IBM_CPU_ID} | grep POWER >/dev/null 2>&1; 
then
+       if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; 
then
                IBM_ARCH=rs6000
        else
                IBM_ARCH=powerpc
@@ -340,7 +515,7 @@ EOF
        if [ -x /usr/bin/oslevel ] ; then
                IBM_REV=`/usr/bin/oslevel`
        else
-               IBM_REV=4.${UNAME_RELEASE}
+               IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
        fi
        echo ${IBM_ARCH}-ibm-aix${IBM_REV}
        exit 0 ;;
@@ -350,7 +525,7 @@ EOF
     ibmrt:4.4BSD:*|romp-ibm:BSD:*)
        echo romp-ibm-bsd4.4
        exit 0 ;;
-    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC NetBSD and
+    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
        echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
        exit 0 ;;                           # report: romp-ibm BSD 4.3
     *:BOSX:*:*)
@@ -366,28 +541,48 @@ EOF
        echo m68k-hp-bsd4.4
        exit 0 ;;
     9000/[34678]??:HP-UX:*:*)
+       HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
        case "${UNAME_MACHINE}" in
            9000/31? )            HP_ARCH=m68000 ;;
            9000/[34]?? )         HP_ARCH=m68k ;;
-           9000/6?? | 9000/7?? | 9000/80[24] | 9000/8?[13679] | 9000/892 )
+           9000/[678][0-9][0-9])
+              case "${HPUX_REV}" in
+                11.[0-9][0-9])
+                  if [ -x /usr/bin/getconf ]; then
+                    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 
2>/dev/null`
+                    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 
2>/dev/null`
+                    case "${sc_cpu_version}" in
+                      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
+                      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+                      532)                      # CPU_PA_RISC2_0
+                        case "${sc_kernel_bits}" in
+                          32) HP_ARCH="hppa2.0n" ;;
+                          64) HP_ARCH="hppa2.0w" ;;
+                        esac ;;
+                    esac
+                  fi ;;
+              esac
+              if [ "${HP_ARCH}" = "" ]; then
               sed 's/^              //' << EOF >$dummy.c
+
+              #define _HPUX_SOURCE
               #include <stdlib.h>
               #include <unistd.h>
-              
+
               int main ()
               {
               #if defined(_SC_KERNEL_BITS)
                   long bits = sysconf(_SC_KERNEL_BITS);
-              #endif 
+              #endif
                   long cpu  = sysconf (_SC_CPU_VERSION);
-              
-                  switch (cpu) 
+
+                  switch (cpu)
                {
                case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
                case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
-               case CPU_PA_RISC2_0: 
+               case CPU_PA_RISC2_0:
               #if defined(_SC_KERNEL_BITS)
-                   switch (bits) 
+                   switch (bits)
                        {
                        case 64: puts ("hppa2.0w"); break;
                        case 32: puts ("hppa2.0n"); break;
@@ -395,18 +590,24 @@ EOF
                        } break;
               #else  /* !defined(_SC_KERNEL_BITS) */
                    puts ("hppa2.0"); break;
-              #endif 
+              #endif
                default: puts ("hppa1.0"); break;
                }
                   exit (0);
               }
 EOF
-       (${CC-cc} $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy`
+       eval $set_cc_for_build
+       (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ) && 
HP_ARCH=`./$dummy`
+       if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi
        rm -f $dummy.c $dummy
+       fi ;;
        esac
-       HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
        echo ${HP_ARCH}-hp-hpux${HPUX_REV}
        exit 0 ;;
+    ia64:HP-UX:*:*)
+       HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+       echo ia64-hp-hpux${HPUX_REV}
+       exit 0 ;;
     3050*:HI-UX:*:*)
        sed 's/^        //' << EOF >$dummy.c
        #include <unistd.h>
@@ -433,7 +634,8 @@ EOF
          exit (0);
        }
 EOF
-       ${CC-cc} $dummy.c -o $dummy && ./$dummy && rm $dummy.c $dummy && exit 0
+       eval $set_cc_for_build
+       $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy 
&& exit 0
        rm -f $dummy.c $dummy
        echo unknown-hitachi-hiuxwe2
        exit 0 ;;
@@ -443,13 +645,16 @@ EOF
     9000/8??:4.3bsd:*:*)
        echo hppa1.0-hp-bsd
        exit 0 ;;
+    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
+       echo hppa1.0-hp-mpeix
+       exit 0 ;;
     hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
        echo hppa1.1-hp-osf
        exit 0 ;;
     hp8??:OSF1:*:*)
        echo hppa1.0-hp-osf
        exit 0 ;;
-    i?86:OSF1:*:*)
+    i*86:OSF1:*:*)
        if [ -x /usr/sbin/sysversion ] ; then
            echo ${UNAME_MACHINE}-unknown-osf1mk
        else
@@ -459,6 +664,9 @@ EOF
     parisc*:Lites*:*:*)
        echo hppa1.1-hp-lites
        exit 0 ;;
+    hppa*:OpenBSD:*:*)
+       echo hppa-unknown-openbsd
+       exit 0 ;;
     C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
        echo c1-convex-bsd
         exit 0 ;;
@@ -481,51 +689,50 @@ EOF
        echo xmp-cray-unicos
         exit 0 ;;
     CRAY*Y-MP:*:*:*)
-       echo ymp-cray-unicos${UNAME_RELEASE}
+       echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
        exit 0 ;;
     CRAY*[A-Z]90:*:*:*)
        echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
        | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
-             -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/
+             -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
+             -e 's/\.[^.]*$/.X/'
        exit 0 ;;
     CRAY*TS:*:*:*)
-       echo t90-cray-unicos${UNAME_RELEASE}
+       echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+       exit 0 ;;
+    CRAY*T3D:*:*:*)
+       echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
        exit 0 ;;
     CRAY*T3E:*:*:*)
-       echo t3e-cray-unicosmk${UNAME_RELEASE}
+       echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+       exit 0 ;;
+    CRAY*SV1:*:*:*)
+       echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
        exit 0 ;;
     CRAY-2:*:*:*)
        echo cray2-cray-unicos
         exit 0 ;;
-    F300:UNIX_System_V:*:*)
-        FUJITSU_SYS=`uname -p | tr [A-Z] [a-z] | sed -e 's/\///'`
+    F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
+       FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 
'abcdefghijklmnopqrstuvwxyz'`
+        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 
'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
         FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
-        echo "f300-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+        echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
         exit 0 ;;
-    F301:UNIX_System_V:*:*)
-       echo f301-fujitsu-uxpv`echo $UNAME_RELEASE | sed 's/ .*//'`
-       exit 0 ;;
-    hp3[0-9][05]:NetBSD:*:*)
-       echo m68k-hp-netbsd${UNAME_RELEASE}
-       exit 0 ;;
     hp300:OpenBSD:*:*)
        echo m68k-unknown-openbsd${UNAME_RELEASE}
        exit 0 ;;
+    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
+       echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+       exit 0 ;;
     sparc*:BSD/OS:*:*)
        echo sparc-unknown-bsdi${UNAME_RELEASE}
        exit 0 ;;
-    i?86:BSD/386:*:* | i?86:BSD/OS:*:*)
-       echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
-       exit 0 ;;
     *:BSD/OS:*:*)
        echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
        exit 0 ;;
     *:FreeBSD:*:*)
        echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 
's/[-(].*//'`
        exit 0 ;;
-    *:NetBSD:*:*)
-       echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 
's/[-_].*/\./'`
-       exit 0 ;;
     *:OpenBSD:*:*)
        echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 
's/[-_].*/\./'`
        exit 0 ;;
@@ -535,6 +742,18 @@ EOF
     i*:MINGW*:*)
        echo ${UNAME_MACHINE}-pc-mingw32
        exit 0 ;;
+    i*:PW*:*)
+       echo ${UNAME_MACHINE}-pc-pw32
+       exit 0 ;;
+    i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
+       # How do we know it's Interix rather than the generic POSIX subsystem?
+       # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
+       # UNAME_MACHINE based on the output of uname instead of i386?
+       echo i386-pc-interix
+       exit 0 ;;
+    i*:UWIN*:*)
+       echo ${UNAME_MACHINE}-pc-uwin
+       exit 0 ;;
     p*:CYGWIN*:*)
        echo powerpcle-unknown-cygwin
        exit 0 ;;
@@ -544,145 +763,130 @@ EOF
     *:GNU:*:*)
        echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo 
${UNAME_RELEASE}|sed -e 's,/.*$,,'`
        exit 0 ;;
-    *:Linux:*:*)
-       # uname on the ARM produces all sorts of strangeness, and we need to
-       # filter it out.
-       case "$UNAME_MACHINE" in
-         arm* | sa110*)              UNAME_MACHINE="arm" ;;
+    i*86:Minix:*:*)
+       echo ${UNAME_MACHINE}-pc-minix
+       exit 0 ;;
+    arm*:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       exit 0 ;;
+    ia64:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux
+       exit 0 ;;
+    m68*:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       exit 0 ;;
+    mips:Linux:*:*)
+       case `sed -n '/^byte/s/^.*: \(.*\) endian/\1/p' < /proc/cpuinfo` in
+         big)    echo mips-unknown-linux-gnu && exit 0 ;;
+         little) echo mipsel-unknown-linux-gnu && exit 0 ;;
        esac
-
+       ;;
+    ppc:Linux:*:*)
+       echo powerpc-unknown-linux-gnu
+       exit 0 ;;
+    ppc64:Linux:*:*)
+       echo powerpc64-unknown-linux-gnu
+       exit 0 ;;
+    alpha:Linux:*:*)
+       case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+         EV5)   UNAME_MACHINE=alphaev5 ;;
+         EV56)  UNAME_MACHINE=alphaev56 ;;
+         PCA56) UNAME_MACHINE=alphapca56 ;;
+         PCA57) UNAME_MACHINE=alphapca56 ;;
+         EV6)   UNAME_MACHINE=alphaev6 ;;
+         EV67)  UNAME_MACHINE=alphaev67 ;;
+         EV68*) UNAME_MACHINE=alphaev68 ;;
+        esac
+       objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
+       if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
+       echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+       exit 0 ;;
+    parisc:Linux:*:* | hppa:Linux:*:*)
+       # Look for CPU level
+       case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
+         PA7*) echo hppa1.1-unknown-linux-gnu ;;
+         PA8*) echo hppa2.0-unknown-linux-gnu ;;
+         *)    echo hppa-unknown-linux-gnu ;;
+       esac
+       exit 0 ;;
+    parisc64:Linux:*:* | hppa64:Linux:*:*)
+       echo hppa64-unknown-linux-gnu
+       exit 0 ;;
+    s390:Linux:*:* | s390x:Linux:*:*)
+       echo ${UNAME_MACHINE}-ibm-linux
+       exit 0 ;;
+    sh*:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       exit 0 ;;
+    sparc:Linux:*:* | sparc64:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       exit 0 ;;
+    x86_64:Linux:*:*)
+       echo x86_64-unknown-linux-gnu
+       exit 0 ;;
+    i*86:Linux:*:*)
        # The BFD linker knows what the default object file format is, so
-       # first see if it will tell us.
-       ld_help_string=`ld --help 2>&1`
-       ld_supported_emulations=`echo $ld_help_string \
-                        | sed -ne '/supported emulations:/!d
+       # first see if it will tell us. cd to the root directory to prevent
+       # problems with other programs or directories called `ld' in the path.
+       ld_supported_targets=`cd /; ld --help 2>&1 \
+                        | sed -ne '/supported targets:/!d
                                    s/[         ][      ]*/ /g
-                                   s/.*supported emulations: *//
+                                   s/.*supported targets: *//
                                    s/ .*//
                                    p'`
-        case "$ld_supported_emulations" in
-         i?86linux)  echo "${UNAME_MACHINE}-pc-linux-gnuaout"      ; exit 0 ;;
-         i?86coff)   echo "${UNAME_MACHINE}-pc-linux-gnucoff"      ; exit 0 ;;
-         sparclinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;;
-         armlinux)   echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;;
-         m68klinux)  echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;;
-         elf32ppc)   echo "powerpc-unknown-linux-gnu"              ; exit 0 ;;
+        case "$ld_supported_targets" in
+         elf32-i386)
+               TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
+               ;;
+         a.out-i386-linux)
+               echo "${UNAME_MACHINE}-pc-linux-gnuaout"
+               exit 0 ;;               
+         coff-i386)
+               echo "${UNAME_MACHINE}-pc-linux-gnucoff"
+               exit 0 ;;
+         "")
+               # Either a pre-BFD a.out linker (linux-gnuoldld) or
+               # one that does not give us useful --help.
+               echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
+               exit 0 ;;
        esac
-
-       if test "${UNAME_MACHINE}" = "alpha" ; then
-               sed 's/^        //'  <<EOF >$dummy.s
-               .globl main
-               .ent main
-       main:
-               .frame \$30,0,\$26,0
-               .prologue 0
-               .long 0x47e03d80 # implver $0
-               lda \$2,259
-               .long 0x47e20c21 # amask $2,$1
-               srl \$1,8,\$2
-               sll \$2,2,\$2
-               sll \$0,3,\$0
-               addl \$1,\$0,\$0
-               addl \$2,\$0,\$0
-               ret \$31,(\$26),1
-               .end main
-EOF
-               LIBC=""
-               ${CC-cc} $dummy.s -o $dummy 2>/dev/null
-               if test "$?" = 0 ; then
-                       ./$dummy
-                       case "$?" in
-                       7)
-                               UNAME_MACHINE="alpha"
-                               ;;
-                       15)
-                               UNAME_MACHINE="alphaev5"
-                               ;;
-                       14)
-                               UNAME_MACHINE="alphaev56"
-                               ;;
-                       10)
-                               UNAME_MACHINE="alphapca56"
-                               ;;
-                       16)
-                               UNAME_MACHINE="alphaev6"
-                               ;;
-                       esac    
-
-                       objdump --private-headers $dummy | \
-                         grep ld.so.1 > /dev/null
-                       if test "$?" = 0 ; then
-                               LIBC="libc1"
-                       fi
-               fi      
-               rm -f $dummy.s $dummy
-               echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ; exit 0
-       elif test "${UNAME_MACHINE}" = "mips" ; then
-         cat >$dummy.c <<EOF
-main(argc, argv)
-     int argc;
-     char *argv[];
-{
-#ifdef __MIPSEB__
-  printf ("%s-unknown-linux-gnu\n", argv[1]);
-#endif
-#ifdef __MIPSEL__
-  printf ("%sel-unknown-linux-gnu\n", argv[1]);
-#endif
-  return 0;
-}
-EOF
-         ${CC-cc} $dummy.c -o $dummy 2>/dev/null && ./$dummy 
"${UNAME_MACHINE}" && rm $dummy.c $dummy && exit 0
-         rm -f $dummy.c $dummy
-       else
-         # Either a pre-BFD a.out linker (linux-gnuoldld)
-         # or one that does not give us useful --help.
-         # GCC wants to distinguish between linux-gnuoldld and linux-gnuaout.
-         # If ld does not provide *any* "supported emulations:"
-         # that means it is gnuoldld.
-         echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations:"
-         test $? != 0 && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0
-
-         case "${UNAME_MACHINE}" in
-         i?86)
-           VENDOR=pc;
-           ;;
-         *)
-           VENDOR=unknown;
-           ;;
-         esac
-         # Determine whether the default compiler is a.out or elf
-         cat >$dummy.c <<EOF
+       # Determine whether the default compiler is a.out or elf
+       cat >$dummy.c <<EOF
 #include <features.h>
-main(argc, argv)
-     int argc;
-     char *argv[];
-{
+#ifdef __cplusplus
+#include <stdio.h>  /* for printf() prototype */
+       int main (int argc, char *argv[]) {
+#else
+       int main (argc, argv) int argc; char *argv[]; {
+#endif
 #ifdef __ELF__
 # ifdef __GLIBC__
 #  if __GLIBC__ >= 2
-    printf ("%s-${VENDOR}-linux-gnu\n", argv[1]);
+    printf ("%s-pc-linux-gnu\n", argv[1]);
 #  else
-    printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]);
+    printf ("%s-pc-linux-gnulibc1\n", argv[1]);
 #  endif
 # else
-   printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]);
+   printf ("%s-pc-linux-gnulibc1\n", argv[1]);
 # endif
 #else
-  printf ("%s-${VENDOR}-linux-gnuaout\n", argv[1]);
+  printf ("%s-pc-linux-gnuaout\n", argv[1]);
 #endif
   return 0;
 }
 EOF
-         ${CC-cc} $dummy.c -o $dummy 2>/dev/null && ./$dummy 
"${UNAME_MACHINE}" && rm $dummy.c $dummy && exit 0
-         rm -f $dummy.c $dummy
-       fi ;;
-# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.  earlier versions
-# are messed up and put the nodename in both sysname and nodename.
-    i?86:DYNIX/ptx:4*:*)
+       eval $set_cc_for_build
+       $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy 
"${UNAME_MACHINE}" && rm -f $dummy.c $dummy && exit 0
+       rm -f $dummy.c $dummy
+       test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
+       ;;
+    i*86:DYNIX/ptx:4*:*)
+       # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
+       # earlier versions are messed up and put the nodename in both
+       # sysname and nodename.
        echo i386-sequent-sysv4
        exit 0 ;;
-    i?86:UNIX_SV:4.2MP:2.*)
+    i*86:UNIX_SV:4.2MP:2.*)
         # Unixware is an offshoot of SVR4, but it has its own version
         # number series starting with 2...
         # I am not positive that other SVR4 systems won't match this,
@@ -690,14 +894,23 @@ EOF
         # Use sysv4.2uw... so that sysv4* matches it.
        echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
        exit 0 ;;
-    i?86:*:4.*:* | i?86:SYSTEM_V:4.*:*)
+    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
+       UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
        if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
-               echo ${UNAME_MACHINE}-univel-sysv${UNAME_RELEASE}
+               echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
        else
-               echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE}
+               echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
        fi
        exit 0 ;;
-    i?86:*:3.2:*)
+    i*86:*:5:[78]*)
+       case `/bin/uname -X | grep "^Machine"` in
+           *486*)           UNAME_MACHINE=i486 ;;
+           *Pentium)        UNAME_MACHINE=i586 ;;
+           *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
+       esac
+       echo 
${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+       exit 0 ;;
+    i*86:*:3.2:*)
        if test -f /usr/options/cb.name; then
                UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
                echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
@@ -706,19 +919,20 @@ EOF
                (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486
                (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \
                        && UNAME_MACHINE=i586
+               (/bin/uname -X|egrep '^Machine.*Pent ?II' >/dev/null) \
+                       && UNAME_MACHINE=i686
+               (/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \
+                       && UNAME_MACHINE=i686
                echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
        else
                echo ${UNAME_MACHINE}-pc-sysv32
        fi
        exit 0 ;;
-    i?86:UnixWare:*:*)
-       if /bin/uname -X 2>/dev/null >/dev/null ; then
-         (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \
-           && UNAME_MACHINE=i586
-       fi
-       echo ${UNAME_MACHINE}-unixware-${UNAME_RELEASE}-${UNAME_VERSION}
+    i*86:*DOS:*:*)
+       echo ${UNAME_MACHINE}-pc-msdosdjgpp
        exit 0 ;;
     pc:*:*:*)
+       # Left here for compatibility:
         # uname -m prints for DJGPP always 'pc', but it prints nothing about
         # the processor, so we play safe by assuming i386.
        echo i386-pc-msdosdjgpp
@@ -742,7 +956,7 @@ EOF
        exit 0 ;;
     M68*:*:R3V[567]*:*)
        test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
-    3[34]??:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0)
+    3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 
4850:*:4.0:3.0)
        OS_REL=''
        test -r /etc/.relid \
        && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
@@ -753,24 +967,30 @@ EOF
     3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
         /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
           && echo i486-ncr-sysv4 && exit 0 ;;
-    m68*:LynxOS:2.*:*)
+    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
        echo m68k-unknown-lynxos${UNAME_RELEASE}
        exit 0 ;;
     mc68030:UNIX_System_V:4.*:*)
        echo m68k-atari-sysv4
        exit 0 ;;
-    i?86:LynxOS:2.*:*)
+    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
        echo i386-unknown-lynxos${UNAME_RELEASE}
        exit 0 ;;
     TSUNAMI:LynxOS:2.*:*)
        echo sparc-unknown-lynxos${UNAME_RELEASE}
        exit 0 ;;
-    rs6000:LynxOS:2.*:* | PowerPC:LynxOS:2.*:*)
+    rs6000:LynxOS:2.*:*)
        echo rs6000-unknown-lynxos${UNAME_RELEASE}
        exit 0 ;;
+    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
+       echo powerpc-unknown-lynxos${UNAME_RELEASE}
+       exit 0 ;;
     SM[BE]S:UNIX_SV:*:*)
        echo mips-dde-sysv${UNAME_RELEASE}
        exit 0 ;;
+    RM*:ReliantUNIX-*:*:*)
+       echo mips-sni-sysv4
+       exit 0 ;;
     RM*:SINIX-*:*:*)
        echo mips-sni-sysv4
        exit 0 ;;
@@ -782,8 +1002,8 @@ EOF
                echo ns32k-sni-sysv
        fi
        exit 0 ;;
-    PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
-                           # says <address@hidden>
+    PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+                      # says <address@hidden>
         echo i586-unisys-sysv4
         exit 0 ;;
     *:UNIX_System_V:4*:FTX*)
@@ -795,13 +1015,17 @@ EOF
        # From address@hidden
        echo i860-stratus-sysv4
        exit 0 ;;
+    *:VOS:*:*)
+       # From address@hidden
+       echo hppa1.1-stratus-vos
+       exit 0 ;;
     mc68*:A/UX:*:*)
        echo m68k-apple-aux${UNAME_RELEASE}
        exit 0 ;;
-    news*:NEWS-OS:*:6*)
+    news*:NEWS-OS:6*:*)
        echo mips-sony-newsos6
        exit 0 ;;
-    R3000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R4000:UNIX_SV:*:*)
+    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
        if [ -d /usr/nec ]; then
                echo mips-nec-sysv${UNAME_RELEASE}
        else
@@ -829,6 +1053,67 @@ EOF
     *:Rhapsody:*:*)
        echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
        exit 0 ;;
+    *:Darwin:*:*)
+       echo `uname -p`-apple-darwin${UNAME_RELEASE}
+       exit 0 ;;
+    *:procnto*:*:* | *:QNX:[0123456789]*:*)
+       if test "${UNAME_MACHINE}" = "x86pc"; then
+               UNAME_MACHINE=pc
+       fi
+       echo `uname -p`-${UNAME_MACHINE}-nto-qnx
+       exit 0 ;;
+    *:QNX:*:4*)
+       echo i386-pc-qnx
+       exit 0 ;;
+    NSR-[KW]:NONSTOP_KERNEL:*:*)
+       echo nsr-tandem-nsk${UNAME_RELEASE}
+       exit 0 ;;
+    *:NonStop-UX:*:*)
+       echo mips-compaq-nonstopux
+       exit 0 ;;
+    BS2000:POSIX*:*:*)
+       echo bs2000-siemens-sysv
+       exit 0 ;;
+    DS/*:UNIX_System_V:*:*)
+       echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
+       exit 0 ;;
+    *:Plan9:*:*)
+       # "uname -m" is not consistent, so use $cputype instead. 386
+       # is converted to i386 for consistency with other x86
+       # operating systems.
+       if test "$cputype" = "386"; then
+           UNAME_MACHINE=i386
+       else
+           UNAME_MACHINE="$cputype"
+       fi
+       echo ${UNAME_MACHINE}-unknown-plan9
+       exit 0 ;;
+    i*86:OS/2:*:*)
+       # If we were able to find `uname', then EMX Unix compatibility
+       # is probably installed.
+       echo ${UNAME_MACHINE}-pc-os2-emx
+       exit 0 ;;
+    *:TOPS-10:*:*)
+       echo pdp10-unknown-tops10
+       exit 0 ;;
+    *:TENEX:*:*)
+       echo pdp10-unknown-tenex
+       exit 0 ;;
+    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
+       echo pdp10-dec-tops20
+       exit 0 ;;
+    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
+       echo pdp10-xkl-tops20
+       exit 0 ;;
+    *:TOPS-20:*:*)
+       echo pdp10-unknown-tops20
+       exit 0 ;;
+    *:ITS:*:*)
+       echo pdp10-unknown-its
+       exit 0 ;;
+    i*86:XTS-300:*:STOP)
+       echo ${UNAME_MACHINE}-unknown-stop
+       exit 0 ;;
 esac
 
 #echo '(No uname command or uname output not recognized.)' 1>&2
@@ -920,11 +1205,24 @@ main ()
 #endif
 
 #if defined (vax)
-#if !defined (ultrix)
-  printf ("vax-dec-bsd\n"); exit (0);
-#else
-  printf ("vax-dec-ultrix\n"); exit (0);
-#endif
+# if !defined (ultrix)
+#  include <sys/param.h>
+#  if defined (BSD)
+#   if BSD == 43
+      printf ("vax-dec-bsd4.3\n"); exit (0);
+#   else
+#    if BSD == 199006
+      printf ("vax-dec-bsd4.3reno\n"); exit (0);
+#    else
+      printf ("vax-dec-bsd\n"); exit (0);
+#    endif
+#   endif
+#  else
+    printf ("vax-dec-bsd\n"); exit (0);
+#  endif
+# else
+    printf ("vax-dec-ultrix\n"); exit (0);
+# endif
 #endif
 
 #if defined (alliant) && defined (i860)
@@ -935,7 +1233,8 @@ main ()
 }
 EOF
 
-${CC-cc} $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm $dummy.c $dummy && 
exit 0
+eval $set_cc_for_build
+$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm -f $dummy.c 
$dummy && exit 0
 rm -f $dummy.c $dummy
 
 # Apollos put the system type in the environment.
@@ -968,6 +1267,48 @@ then
     esac
 fi
 
-#echo '(Unable to guess system type)' 1>&2
+cat >&2 <<EOF
+$0: unable to guess system type
+
+This script, last modified $timestamp, has failed to recognize
+the operating system you are using. It is advised that you
+download the most up to date version of the config scripts from
+
+    ftp://ftp.gnu.org/pub/gnu/config/
+
+If the version you run ($0) is already up to date, please
+send the following data and any information you think might be
+pertinent to <address@hidden> in order to provide the needed
+information to handle your system.
+
+config.guess timestamp = $timestamp
+
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
+/bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
+
+hostinfo               = `(hostinfo) 2>/dev/null`
+/bin/universe          = `(/bin/universe) 2>/dev/null`
+/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
+/bin/arch              = `(/bin/arch) 2>/dev/null`
+/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
+
+UNAME_MACHINE = ${UNAME_MACHINE}
+UNAME_RELEASE = ${UNAME_RELEASE}
+UNAME_SYSTEM  = ${UNAME_SYSTEM}
+UNAME_VERSION = ${UNAME_VERSION}
+EOF
 
 exit 1
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
diff --git a/lib/config.sub b/lib/config.sub
index da8b7ae..12ebc78 100644
--- a/lib/config.sub
+++ b/lib/config.sub
@@ -1,6 +1,10 @@
 #! /bin/sh
-# Configuration validation subroutine script, version 1.1.
-#   Copyright (C) 1991, 92-97, 1998 Free Software Foundation, Inc.
+# Configuration validation subroutine script.
+#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+#   Free Software Foundation, Inc.
+
+timestamp='2001-08-13'
+
 # This file is (in principle) common to ALL GNU software.
 # The presence of a machine in this file suggests that SOME GNU software
 # can handle that machine.  It does not imply ALL GNU software can.
@@ -25,6 +29,8 @@
 # configuration script generated by Autoconf, you may include it under
 # the same distribution terms that you use for the rest of that program.
 
+# Please send patches to <address@hidden>.
+#
 # Configuration subroutine to validate and canonicalize a configuration type.
 # Supply the specified configuration type as an argument.
 # If it is invalid, we print an error message on stderr and exit with code 1.
@@ -45,30 +51,73 @@
 #      CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
 # It is wrong to echo any other type of specification.
 
-if [ x$1 = x ]
-then
-       echo Configuration name missing. 1>&2
-       echo "Usage: $0 CPU-MFR-OPSYS" 1>&2
-       echo "or     $0 ALIAS" 1>&2
-       echo where ALIAS is a recognized configuration type. 1>&2
-       exit 1
-fi
+me=`echo "$0" | sed -e 's,.*/,,'`
 
-# First pass through any local machine types.
-case $1 in
-       *local*)
-               echo $1
-               exit 0
-               ;;
-       *)
-       ;;
+usage="\
+Usage: $0 [OPTION] CPU-MFR-OPSYS
+       $0 [OPTION] ALIAS
+
+Canonicalize a configuration name.
+
+Operation modes:
+  -h, --help         print this help, then exit
+  -t, --time-stamp   print date of last modification, then exit
+  -v, --version      print version number, then exit
+
+Report bugs and patches to <address@hidden>."
+
+version="\
+GNU config.sub ($timestamp)
+
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+  case $1 in
+    --time-stamp | --time* | -t )
+       echo "$timestamp" ; exit 0 ;;
+    --version | -v )
+       echo "$version" ; exit 0 ;;
+    --help | --h* | -h )
+       echo "$usage"; exit 0 ;;
+    -- )     # Stop option processing
+       shift; break ;;
+    - )        # Use stdin as input.
+       break ;;
+    -* )
+       echo "$me: invalid option $1$help"
+       exit 1 ;;
+
+    *local*)
+       # First pass through any local machine types.
+       echo $1
+       exit 0;;
+
+    * )
+       break ;;
+  esac
+done
+
+case $# in
+ 0) echo "$me: missing argument$help" >&2
+    exit 1;;
+ 1) ;;
+ *) echo "$me: too many arguments$help" >&2
+    exit 1;;
 esac
 
 # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
 # Here we must recognize all the valid KERNEL-OS combinations.
 maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
 case $maybe_os in
-  linux-gnu*)
+  nto-qnx* | linux-gnu* | storm-chaos* | os2-emx* | windows32-*)
     os=-$maybe_os
     basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
     ;;
@@ -94,15 +143,33 @@ case $os in
        -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
        -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
        -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
-       -apple)
+       -apple | -axis)
+               os=
+               basic_machine=$1
+               ;;
+       -sim | -cisco | -oki | -wec | -winbond)
                os=
                basic_machine=$1
                ;;
+       -scout)
+               ;;
+       -wrs)
+               os=-vxworks
+               basic_machine=$1
+               ;;
+       -chorusos*)
+               os=-chorusos
+               basic_machine=$1
+               ;;
+       -chorusrdb)
+               os=-chorusrdb
+               basic_machine=$1
+               ;;
        -hiux*)
                os=-hiuxwe2
                ;;
        -sco5)
-               os=sco3.2v5
+               os=-sco3.2v5
                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
                ;;
        -sco4)
@@ -121,6 +188,9 @@ case $os in
                os=-sco3.2v2
                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
                ;;
+       -udk*)
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
        -isc)
                os=-isc2.2
                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
@@ -143,26 +213,59 @@ case $os in
        -psos*)
                os=-psos
                ;;
+       -mint | -mint[0-9]*)
+               basic_machine=m68k-atari
+               os=-mint
+               ;;
 esac
 
 # Decode aliases for certain CPU-COMPANY combinations.
 case $basic_machine in
        # Recognize the basic CPU types without company name.
        # Some are omitted here because they have special meanings below.
-       tahoe | i860 | m32r | m68k | m68000 | m88k | ns32k | arc | arm \
-               | arme[lb] | pyramid | mn10200 | mn10300 | tron | a29k \
-               | 580 | i960 | h8300 | hppa | hppa1.0 | hppa1.1 | hppa2.0 \
-               | alpha | alphaev5 | alphaev56 | we32k | ns16k | clipper \
-               | i370 | sh | powerpc | powerpcle | 1750a | dsp16xx | pdp11 \
-               | mips64 | mipsel | mips64el | mips64orion | mips64orionel \
-               | mipstx39 | mipstx39el \
-               | sparc | sparclet | sparclite | sparc64 | v850)
+       1750a | 580 \
+       | a29k \
+       | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
+       | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
+       | c4x | clipper \
+       | d10v | d30v | dsp16xx \
+       | fr30 \
+       | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+       | i370 | i860 | i960 | ia64 \
+       | m32r | m68000 | m68k | m88k | mcore \
+       | mips16 | mips64 | mips64el | mips64orion | mips64orionel \
+       | mips64vr4100 | mips64vr4100el | mips64vr4300 \
+       | mips64vr4300el | mips64vr5000 | mips64vr5000el \
+       | mipsbe | mipsel | mipsle | mipstx39 | mipstx39el \
+       | mn10200 | mn10300 \
+       | ns16k | ns32k \
+       | openrisc \
+       | pdp10 | pdp11 | pj | pjl \
+       | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
+       | pyramid \
+       | s390 | s390x \
+       | sh | sh[34] | sh[34]eb | shbe | shle \
+       | sparc | sparc64 | sparclet | sparclite | sparcv9 | sparcv9b \
+       | strongarm \
+       | tahoe | thumb | tic80 | tron \
+       | v850 \
+       | we32k \
+       | x86 | xscale \
+       | z8k)
                basic_machine=$basic_machine-unknown
                ;;
+       m6811 | m68hc11 | m6812 | m68hc12)
+               # Motorola 68HC11/12.
+               basic_machine=$basic_machine-unknown
+               os=-none
+               ;;
+       m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
+               ;;
+
        # We use `pc' rather than `unknown'
        # because (1) that's what they normally are, and
        # (2) the word "unknown" tends to confuse beginning users.
-       i[34567]86)
+       i*86 | x86_64)
          basic_machine=$basic_machine-pc
          ;;
        # Object if more than one company name word.
@@ -171,27 +274,64 @@ case $basic_machine in
                exit 1
                ;;
        # Recognize the basic CPU types with company name.
-       vax-* | tahoe-* | i[34567]86-* | i860-* | m32r-* | m68k-* | m68000-* \
-             | m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | arm-* | c[123]* \
-             | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \
-             | power-* | none-* | 580-* | cray2-* | h8300-* | i960-* \
-             | xmp-* | ymp-* | hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* \
-             | alpha-* | alphaev5-* | alphaev56-* | we32k-* | cydra-* \
-             | ns16k-* | pn-* | np1-* | xps100-* | clipper-* | orion-* \
-             | sparclite-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \
-             | sparc64-* | mips64-* | mipsel-* \
-             | mips64el-* | mips64orion-* | mips64orionel-*  \
-             | mipstx39-* | mipstx39el-* \
-             | f301-*)
+       580-* \
+       | a29k-* \
+       | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
+       | alphapca5[67]-* | arc-* \
+       | arm-*  | armbe-* | armle-* | armv*-* \
+       | bs2000-* \
+       | c[123]* | c30-* | [cjt]90-* | c54x-* \
+       | clipper-* | cray2-* | cydra-* \
+       | d10v-* | d30v-* \
+       | elxsi-* \
+       | f30[01]-* | f700-* | fr30-* | fx80-* \
+       | h8300-* | h8500-* \
+       | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
+       | i*86-* | i860-* | i960-* | ia64-* \
+       | m32r-* \
+       | m68000-* | m680[01234]0-* | m68360-* | m683?2-* | m68k-* \
+       | m88110-* | m88k-* | mcore-* \
+       | mips-* | mips16-* | mips64-* | mips64el-* | mips64orion-* \
+       | mips64orionel-* | mips64vr4100-* | mips64vr4100el-* \
+       | mips64vr4300-* | mips64vr4300el-* | mipsbe-* | mipsel-* \
+       | mipsle-* | mipstx39-* | mipstx39el-* \
+       | none-* | np1-* | ns16k-* | ns32k-* \
+       | orion-* \
+       | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
+       | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
+       | pyramid-* \
+       | romp-* | rs6000-* \
+       | s390-* | s390x-* \
+       | sh-* | sh[34]-* | sh[34]eb-* | shbe-* | shle-* \
+       | sparc-* | sparc64-* | sparc86x-* | sparclite-* \
+       | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* \
+       | t3e-* | tahoe-* | thumb-* | tic30-* | tic54x-* | tic80-* | tron-* \
+       | v850-* | vax-* \
+       | we32k-* \
+       | x86-* | x86_64-* | xmp-* | xps100-* | xscale-* \
+       | ymp-* \
+       | z8k-*)
                ;;
        # Recognize the various machine names and aliases which stand
        # for a CPU type and a company and sometimes even an OS.
+       386bsd)
+               basic_machine=i386-unknown
+               os=-bsd
+               ;;
        3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
                basic_machine=m68000-att
                ;;
        3b*)
                basic_machine=we32k-att
                ;;
+       a29khif)
+               basic_machine=a29k-amd
+               os=-udi
+               ;;
+       adobe68k)
+               basic_machine=m68010-adobe
+               os=-scout
+               ;;
        alliant | fx80)
                basic_machine=fx80-alliant
                ;;
@@ -207,20 +347,24 @@ case $basic_machine in
                os=-sysv
                ;;
        amiga | amiga-*)
-               basic_machine=m68k-cbm
+               basic_machine=m68k-unknown
                ;;
        amigaos | amigados)
-               basic_machine=m68k-cbm
+               basic_machine=m68k-unknown
                os=-amigaos
                ;;
        amigaunix | amix)
-               basic_machine=m68k-cbm
+               basic_machine=m68k-unknown
                os=-sysv4
                ;;
        apollo68)
                basic_machine=m68k-apollo
                os=-sysv
                ;;
+       apollo68bsd)
+               basic_machine=m68k-apollo
+               os=-bsd
+               ;;
        aux)
                basic_machine=m68k-apple
                os=-aux
@@ -257,13 +401,16 @@ case $basic_machine in
                basic_machine=cray2-cray
                os=-unicos
                ;;
-       [ctj]90-cray)
-               basic_machine=c90-cray
+       [cjt]90)
+               basic_machine=${basic_machine}-cray
                os=-unicos
                ;;
        crds | unos)
                basic_machine=m68k-crds
                ;;
+       cris | cris-* | etrax*)
+               basic_machine=cris-axis
+               ;;
        da30 | da30-*)
                basic_machine=m68k-da30
                ;;
@@ -297,6 +444,10 @@ case $basic_machine in
        encore | umax | mmax)
                basic_machine=ns32k-encore
                ;;
+       es1800 | OSE68k | ose68k | ose | OSE)
+               basic_machine=m68k-ericsson
+               os=-ose
+               ;;
        fx2800)
                basic_machine=i860-alliant
                ;;
@@ -307,6 +458,10 @@ case $basic_machine in
                basic_machine=tron-gmicro
                os=-sysv
                ;;
+       go32)
+               basic_machine=i386-pc
+               os=-go32
+               ;;
        h3050r* | hiux*)
                basic_machine=hppa1.1-hitachi
                os=-hiuxwe2
@@ -315,6 +470,14 @@ case $basic_machine in
                basic_machine=h8300-hitachi
                os=-hms
                ;;
+       h8300xray)
+               basic_machine=h8300-hitachi
+               os=-xray
+               ;;
+       h8500hms)
+               basic_machine=h8500-hitachi
+               os=-hms
+               ;;
        harris)
                basic_machine=m88k-harris
                os=-sysv3
@@ -330,13 +493,30 @@ case $basic_machine in
                basic_machine=m68k-hp
                os=-hpux
                ;;
+       hp3k9[0-9][0-9] | hp9[0-9][0-9])
+               basic_machine=hppa1.0-hp
+               ;;
        hp9k2[0-9][0-9] | hp9k31[0-9])
                basic_machine=m68000-hp
                ;;
        hp9k3[2-9][0-9])
                basic_machine=m68k-hp
                ;;
-       hp9k7[0-9][0-9] | hp7[0-9][0-9] | hp9k8[0-9]7 | hp8[0-9]7)
+       hp9k6[0-9][0-9] | hp6[0-9][0-9])
+               basic_machine=hppa1.0-hp
+               ;;
+       hp9k7[0-79][0-9] | hp7[0-79][0-9])
+               basic_machine=hppa1.1-hp
+               ;;
+       hp9k78[0-9] | hp78[0-9])
+               # FIXME: really hppa2.0-hp
+               basic_machine=hppa1.1-hp
+               ;;
+       hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | 
hp9k893 | hp893)
+               # FIXME: really hppa2.0-hp
+               basic_machine=hppa1.1-hp
+               ;;
+       hp9k8[0-9][13679] | hp8[0-9][13679])
                basic_machine=hppa1.1-hp
                ;;
        hp9k8[0-9][0-9] | hp8[0-9][0-9])
@@ -345,27 +525,42 @@ case $basic_machine in
        hppa-next)
                os=-nextstep3
                ;;
+       hppaosf)
+               basic_machine=hppa1.1-hp
+               os=-osf
+               ;;
+       hppro)
+               basic_machine=hppa1.1-hp
+               os=-proelf
+               ;;
        i370-ibm* | ibm*)
                basic_machine=i370-ibm
-               os=-mvs
                ;;
 # I'm not sure what "Sysv32" means.  Should this be sysv3.2?
-       i[34567]86v32)
+       i*86v32)
                basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
                os=-sysv32
                ;;
-       i[34567]86v4*)
+       i*86v4*)
                basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
                os=-sysv4
                ;;
-       i[34567]86v)
+       i*86v)
                basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
                os=-sysv
                ;;
-       i[34567]86sol2)
+       i*86sol2)
                basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
                os=-solaris2
                ;;
+       i386mach)
+               basic_machine=i386-mach
+               os=-mach
+               ;;
+       i386-vsta | vsta)
+               basic_machine=i386-unknown
+               os=-vsta
+               ;;
        iris | iris4d)
                basic_machine=mips-sgi
                case $os in
@@ -391,9 +586,17 @@ case $basic_machine in
                basic_machine=ns32k-utek
                os=-sysv
                ;;
+       mingw32)
+               basic_machine=i386-pc
+               os=-mingw32
+               ;;
        miniframe)
                basic_machine=m68000-convergent
                ;;
+       *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
+               basic_machine=m68k-atari
+               os=-mint
+               ;;
        mipsel*-linux*)
                basic_machine=mipsel-unknown
                os=-linux-gnu
@@ -408,10 +611,34 @@ case $basic_machine in
        mips3*)
                basic_machine=`echo $basic_machine | sed -e 
's/mips3/mips64/'`-unknown
                ;;
+       mmix*)
+               basic_machine=mmix-knuth
+               os=-mmixware
+               ;;
+       monitor)
+               basic_machine=m68k-rom68k
+               os=-coff
+               ;;
+       msdos)
+               basic_machine=i386-pc
+               os=-msdos
+               ;;
+       mvs)
+               basic_machine=i370-ibm
+               os=-mvs
+               ;;
        ncr3000)
                basic_machine=i486-ncr
                os=-sysv4
                ;;
+       netbsd386)
+               basic_machine=i386-unknown
+               os=-netbsd
+               ;;
+       netwinder)
+               basic_machine=armv4l-rebel
+               os=-linux
+               ;;
        news | news700 | news800 | news900)
                basic_machine=m68k-sony
                os=-newsos
@@ -424,6 +651,10 @@ case $basic_machine in
                basic_machine=mips-sony
                os=-newsos
                ;;
+       necv70)
+               basic_machine=v70-nec
+               os=-sysv
+               ;;
        next | m*-next )
                basic_machine=m68k-next
                case $os in
@@ -449,9 +680,32 @@ case $basic_machine in
                basic_machine=i960-intel
                os=-nindy
                ;;
+       mon960)
+               basic_machine=i960-intel
+               os=-mon960
+               ;;
+       nonstopux)
+               basic_machine=mips-compaq
+               os=-nonstopux
+               ;;
        np1)
                basic_machine=np1-gould
                ;;
+       nsr-tandem)
+               basic_machine=nsr-tandem
+               ;;
+       op50n-* | op60c-*)
+               basic_machine=hppa1.1-oki
+               os=-proelf
+               ;;
+       OSE68000 | ose68000)
+               basic_machine=m68000-ericsson
+               os=-ose
+               ;;
+       os68k)
+               basic_machine=m68k-none
+               os=-os68k
+               ;;
        pa-hitachi)
                basic_machine=hppa1.1-hitachi
                os=-hiuxwe2
@@ -469,28 +723,28 @@ case $basic_machine in
         pc532 | pc532-*)
                basic_machine=ns32k-pc532
                ;;
-       pentium | p5 | k5 | nexen)
+       pentium | p5 | k5 | k6 | nexgen)
                basic_machine=i586-pc
                ;;
-       pentiumpro | p6 | k6 | 6x86)
+       pentiumpro | p6 | 6x86 | athlon)
                basic_machine=i686-pc
                ;;
        pentiumii | pentium2)
-               basic_machine=i786-pc
+               basic_machine=i686-pc
                ;;
-       pentium-* | p5-* | k5-* | nexen-*)
+       pentium-* | p5-* | k5-* | k6-* | nexgen-*)
                basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
                ;;
-       pentiumpro-* | p6-* | k6-* | 6x86-*)
+       pentiumpro-* | p6-* | 6x86-* | athlon-*)
                basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
                ;;
        pentiumii-* | pentium2-*)
-               basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
+               basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
                ;;
        pn)
                basic_machine=pn-gould
                ;;
-       power)  basic_machine=rs6000-ibm
+       power)  basic_machine=power-ibm
                ;;
        ppc)    basic_machine=powerpc-unknown
                ;;
@@ -502,15 +756,37 @@ case $basic_machine in
        ppcle-* | powerpclittle-*)
                basic_machine=powerpcle-`echo $basic_machine | sed 
's/^[^-]*-//'`
                ;;
+       ppc64)  basic_machine=powerpc64-unknown
+               ;;
+       ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 
's/^[^-]*-//'`
+               ;;
+       ppc64le | powerpc64little | ppc64-le | powerpc64-little)
+               basic_machine=powerpc64le-unknown
+               ;;
+       ppc64le-* | powerpc64little-*)
+               basic_machine=powerpc64le-`echo $basic_machine | sed 
's/^[^-]*-//'`
+               ;;
        ps2)
                basic_machine=i386-ibm
                ;;
+       pw32)
+               basic_machine=i586-unknown
+               os=-pw32
+               ;;
+       rom68k)
+               basic_machine=m68k-rom68k
+               os=-coff
+               ;;
        rm[46]00)
                basic_machine=mips-siemens
                ;;
        rtpc | rtpc-*)
                basic_machine=romp-ibm
                ;;
+       sa29200)
+               basic_machine=a29k-amd
+               os=-udi
+               ;;
        sequent)
                basic_machine=i386-sequent
                ;;
@@ -518,6 +794,10 @@ case $basic_machine in
                basic_machine=sh-hitachi
                os=-hms
                ;;
+       sparclite-wrs)
+               basic_machine=sparclite-wrs
+               os=-vxworks
+               ;;
        sps7)
                basic_machine=m68k-bull
                os=-sysv2
@@ -525,6 +805,13 @@ case $basic_machine in
        spur)
                basic_machine=spur-unknown
                ;;
+       st2000)
+               basic_machine=m68k-tandem
+               ;;
+       stratus)
+               basic_machine=i860-stratus
+               os=-sysv4
+               ;;
        sun2)
                basic_machine=m68000-sun
                ;;
@@ -565,10 +852,22 @@ case $basic_machine in
        sun386 | sun386i | roadrunner)
                basic_machine=i386-sun
                ;;
+       sv1)
+               basic_machine=sv1-cray
+               os=-unicos
+               ;;
        symmetry)
                basic_machine=i386-sequent
                os=-dynix
                ;;
+       t3e)
+               basic_machine=t3e-cray
+               os=-unicos
+               ;;
+       tic54x | c54x*)
+               basic_machine=tic54x-unknown
+               os=-coff
+               ;;
        tx39)
                basic_machine=mipstx39-unknown
                ;;
@@ -586,6 +885,10 @@ case $basic_machine in
                basic_machine=a29k-nyu
                os=-sym1
                ;;
+       v810 | necv810)
+               basic_machine=v810-nec
+               os=-none
+               ;;
        vaxv)
                basic_machine=vax-dec
                os=-sysv
@@ -609,6 +912,18 @@ case $basic_machine in
                basic_machine=a29k-wrs
                os=-vxworks
                ;;
+       w65*)
+               basic_machine=w65-wdc
+               os=-none
+               ;;
+       w89k-*)
+               basic_machine=hppa1.1-winbond
+               os=-proelf
+               ;;
+       windows32)
+               basic_machine=i386-pc
+               os=-windows32-msvcrt
+               ;;
        xmp)
                basic_machine=xmp-cray
                os=-unicos
@@ -616,6 +931,10 @@ case $basic_machine in
         xps | xps100)
                basic_machine=xps100-honeywell
                ;;
+       z8k-*-coff)
+               basic_machine=z8k-unknown
+               os=-sim
+               ;;
        none)
                basic_machine=none-none
                os=-none
@@ -623,6 +942,15 @@ case $basic_machine in
 
 # Here we handle the default manufacturer of certain CPU types.  It is in
 # some cases the only manufacturer, in others, it is the most popular.
+       w89k)
+               basic_machine=hppa1.1-winbond
+               ;;
+       op50n)
+               basic_machine=hppa1.1-oki
+               ;;
+       op60c)
+               basic_machine=hppa1.1-oki
+               ;;
        mips)
                if [ x$os = x-linux-gnu ]; then
                        basic_machine=mips-unknown
@@ -639,13 +967,20 @@ case $basic_machine in
        vax)
                basic_machine=vax-dec
                ;;
+       pdp10)
+               # there are many clones, so DEC is not a safe bet
+               basic_machine=pdp10-unknown
+               ;;
        pdp11)
                basic_machine=pdp11-dec
                ;;
        we32k)
                basic_machine=we32k-att
                ;;
-       sparc)
+       sh3 | sh4 | sh3eb | sh4eb)
+               basic_machine=sh-unknown
+               ;;
+       sparc | sparcv9 | sparcv9b)
                basic_machine=sparc-sun
                ;;
         cydra)
@@ -657,6 +992,19 @@ case $basic_machine in
        orion105)
                basic_machine=clipper-highlevel
                ;;
+       mac | mpw | mac-mpw)
+               basic_machine=m68k-apple
+               ;;
+       pmac | pmac-mpw)
+               basic_machine=powerpc-apple
+               ;;
+       c4x*)
+               basic_machine=c4x-none
+               os=-coff
+               ;;
+       *-unknown)
+               # Make sure to match an already-canonicalized machine name.
+               ;;
        *)
                echo Invalid configuration \`$1\': machine \`$basic_machine\' 
not recognized 1>&2
                exit 1
@@ -710,14 +1058,37 @@ case $os in
              | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
              | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
              | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* 
\
-             | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* \
+             | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | 
-oabi* \
              | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
              | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+             | -chorusos* | -chorusrdb* \
              | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-             | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -rhapsody* \
-             | -openstep*)
+             | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
+             | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \
+             | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
+             | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
+             | -os2* | -vos*)
        # Remember, each alternative MUST END IN *, to match a version number.
                ;;
+       -qnx*)
+               case $basic_machine in
+                   x86-* | i*86-*)
+                       ;;
+                   *)
+                       os=-nto$os
+                       ;;
+               esac
+               ;;
+       -nto*)
+               os=-nto-qnx
+               ;;
+       -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
+             | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
+             | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
+               ;;
+       -mac*)
+               os=`echo $os | sed -e 's|mac|macos|'`
+               ;;
        -linux*)
                os=`echo $os | sed -e 's|linux|linux-gnu|'`
                ;;
@@ -727,6 +1098,12 @@ case $os in
        -sunos6*)
                os=`echo $os | sed -e 's|sunos6|solaris3|'`
                ;;
+       -opened*)
+               os=-openedition
+               ;;
+       -wince*)
+               os=-wince
+               ;;
        -osfrose*)
                os=-osfrose
                ;;
@@ -742,12 +1119,18 @@ case $os in
        -acis*)
                os=-aos
                ;;
+       -386bsd)
+               os=-bsd
+               ;;
        -ctix* | -uts*)
                os=-sysv
                ;;
        -ns2 )
                os=-nextstep2
                ;;
+       -nsk*)
+               os=-nsk
+               ;;
        # Preserve the version number of sinix5.
        -sinix5.*)
                os=`echo $os | sed -e 's|sinix|sysv|'`
@@ -773,9 +1156,18 @@ case $os in
        # This must come after -sysvr4.
        -sysv*)
                ;;
+       -ose*)
+               os=-ose
+               ;;
+       -es1800*)
+               os=-ose
+               ;;
        -xenix)
                os=-xenix
                ;;
+        -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+               os=-mint
+               ;;
        -none)
                ;;
        *)
@@ -801,9 +1193,15 @@ case $basic_machine in
        *-acorn)
                os=-riscix1.2
                ;;
+       arm*-rebel)
+               os=-linux
+               ;;
        arm*-semi)
                os=-aout
                ;;
+       pdp10-*)
+               os=-tops20
+               ;;
         pdp11-*)
                os=-none
                ;;
@@ -822,6 +1220,15 @@ case $basic_machine in
                # default.
                # os=-sunos4
                ;;
+       m68*-cisco)
+               os=-aout
+               ;;
+       mips*-cisco)
+               os=-elf
+               ;;
+       mips*-*)
+               os=-elf
+               ;;
        *-tti)  # must be before sparc entry or we get the wrong os.
                os=-sysv3
                ;;
@@ -834,6 +1241,15 @@ case $basic_machine in
        *-ibm)
                os=-aix
                ;;
+       *-wec)
+               os=-proelf
+               ;;
+       *-winbond)
+               os=-proelf
+               ;;
+       *-oki)
+               os=-proelf
+               ;;
        *-hp)
                os=-hpux
                ;;
@@ -894,9 +1310,21 @@ case $basic_machine in
        *-masscomp)
                os=-rtu
                ;;
-       f301-fujitsu)
+       f30[01]-fujitsu | f700-fujitsu)
                os=-uxpv
                ;;
+       *-rom68k)
+               os=-coff
+               ;;
+       *-*bug)
+               os=-coff
+               ;;
+       *-apple)
+               os=-macos
+               ;;
+       *-atari*)
+               os=-mint
+               ;;
        *)
                os=-none
                ;;
@@ -918,9 +1346,15 @@ case $basic_machine in
                        -aix*)
                                vendor=ibm
                                ;;
+                       -beos*)
+                               vendor=be
+                               ;;
                        -hpux*)
                                vendor=hp
                                ;;
+                       -mpeix*)
+                               vendor=hp
+                               ;;
                        -hiux*)
                                vendor=hitachi
                                ;;
@@ -936,7 +1370,7 @@ case $basic_machine in
                        -genix*)
                                vendor=ns
                                ;;
-                       -mvs*)
+                       -mvs* | -opened*)
                                vendor=ibm
                                ;;
                        -ptx*)
@@ -948,9 +1382,29 @@ case $basic_machine in
                        -aux*)
                                vendor=apple
                                ;;
+                       -hms*)
+                               vendor=hitachi
+                               ;;
+                       -mpw* | -macos*)
+                               vendor=apple
+                               ;;
+                       -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+                               vendor=atari
+                               ;;
+                       -vos*)
+                               vendor=stratus
+                               ;;
                esac
                basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
                ;;
 esac
 
 echo $basic_machine$os
+exit 0
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
diff --git a/lib/depcomp b/lib/depcomp
new file mode 100755
index 0000000..6589965
--- /dev/null
+++ b/lib/depcomp
@@ -0,0 +1,411 @@
+#! /bin/sh
+
+# depcomp - compile a program generating dependencies as side-effects
+# Copyright 1999, 2000 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Originally written by Alexandre Oliva <address@hidden>.
+
+if test -z "$depmode" || test -z "$source" || test -z "$object"; then
+  echo "depcomp: Variables source, object and depmode must be set" 1>&2
+  exit 1
+fi
+# `libtool' can also be set to `yes' or `no'.
+
+depfile=${depfile-`echo "$object" | sed 
's,\([^/]*\)$,.deps/\1,;s/\.\([^.]*\)$/.P\1/'`}
+tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
+
+rm -f "$tmpdepfile"
+
+# Some modes work just like other modes, but use different flags.  We
+# parameterize here, but still list the modes in the big case below,
+# to make depend.m4 easier to write.  Note that we *cannot* use a case
+# here, because this file can only contain one case statement.
+if test "$depmode" = hp; then
+  # HP compiler uses -M and no extra arg.
+  gccflag=-M
+  depmode=gcc
+fi
+
+if test "$depmode" = dashXmstdout; then
+   # This is just like dashmstdout with a different argument.
+   dashmflag=-xM
+   depmode=dashmstdout
+fi
+
+case "$depmode" in
+gcc3)
+## gcc 3 implements dependency tracking that does exactly what
+## we want.  Yay!  Note: for some reason libtool 1.4 doesn't like
+## it if -MD -MP comes after the -MF stuff.  Hmm.
+  "$@" -MT "$object" -MD -MP -MF "$tmpdepfile"
+  stat=$?
+  if test $stat -eq 0; then :
+  else
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  mv "$tmpdepfile" "$depfile"
+  ;;
+
+gcc)
+## There are various ways to get dependency output from gcc.  Here's
+## why we pick this rather obscure method:
+## - Don't want to use -MD because we'd like the dependencies to end
+##   up in a subdir.  Having to rename by hand is ugly.
+##   (We might end up doing this anyway to support other compilers.)
+## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
+##   -MM, not -M (despite what the docs say).
+## - Using -M directly means running the compiler twice (even worse
+##   than renaming).
+  if test -z "$gccflag"; then
+    gccflag=-MD,
+  fi
+  "$@" -Wp,"$gccflag$tmpdepfile"
+  stat=$?
+  if test $stat -eq 0; then :
+  else
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  rm -f "$depfile"
+  echo "$object : \\" > "$depfile"
+  alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
+## The second -e expression handles DOS-style file names with drive letters.
+  sed -e 's/^[^:]*: / /' \
+      -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
+## This next piece of magic avoids the `deleted header file' problem.
+## The problem is that when a header file which appears in a .P file
+## is deleted, the dependency causes make to die (because there is
+## typically no way to rebuild the header).  We avoid this by adding
+## dummy dependencies for each header file.  Too bad gcc doesn't do
+## this for us directly.
+  tr ' ' '
+' < "$tmpdepfile" |
+## Some versions of gcc put a space before the `:'.  On the theory
+## that the space means something, we add a space to the output as
+## well.
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly.  Breaking it into two sed invocations is a workaround.
+    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+hp)
+  # This case exists only to let depend.m4 do its work.  It works by
+  # looking at the text of this script.  This case will never be run,
+  # since it is checked for above.
+  exit 1
+  ;;
+
+sgi)
+  if test "$libtool" = yes; then
+    "$@" "-Wp,-MDupdate,$tmpdepfile"
+  else
+    "$@" -MDupdate "$tmpdepfile"
+  fi
+  stat=$?
+  if test $stat -eq 0; then :
+  else
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  rm -f "$depfile"
+
+  if test -f "$tmpdepfile"; then  # yes, the sourcefile depend on other files
+    echo "$object : \\" > "$depfile"
+
+    # Clip off the initial element (the dependent).  Don't try to be
+    # clever and replace this with sed code, as IRIX sed won't handle
+    # lines with more than a fixed number of characters (4096 in
+    # IRIX 6.2 sed, 8192 in IRIX 6.5).  We also remove comment lines;
+    # the IRIX cc adds comments like `#:fec' to the end of the
+    # dependency line.
+    tr ' ' '
+' < "$tmpdepfile" \
+    | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
+    tr '
+' ' ' >> $depfile
+    echo >> $depfile
+
+    # The second pass generates a dummy entry for each header file.
+    tr ' ' '
+' < "$tmpdepfile" \
+   | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
+   >> $depfile
+  else
+    # The sourcefile does not contain any dependencies, so just
+    # store a dummy comment line, to avoid errors with the Makefile
+    # "include basename.Plo" scheme.
+    echo "#dummy" > "$depfile"
+  fi
+  rm -f "$tmpdepfile"
+  ;;
+
+aix)
+  # The C for AIX Compiler uses -M and outputs the dependencies
+  # in a .u file.  This file always lives in the current directory.
+  # Also, the AIX compiler puts `$object:' at the start of each line;
+  # $object doesn't have directory information.
+  stripped=`echo "$object" | sed -e 's,^.*/,,' -e 's/\(.*\)\..*$/\1/'`
+  tmpdepfile="$stripped.u"
+  outname="$stripped.o"
+  if test "$libtool" = yes; then
+    "$@" -Wc,-M
+  else
+    "$@" -M
+  fi
+
+  stat=$?
+  if test $stat -eq 0; then :
+  else
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+
+  if test -f "$tmpdepfile"; then
+    # Each line is of the form `foo.o: dependent.h'.
+    # Do two passes, one to just change these to
+    # `$object: dependent.h' and one to simply `dependent.h:'.
+    sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
+    sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
+  else
+    # The sourcefile does not contain any dependencies, so just
+    # store a dummy comment line, to avoid errors with the Makefile
+    # "include basename.Plo" scheme.
+    echo "#dummy" > "$depfile"
+  fi
+  rm -f "$tmpdepfile"
+  ;;
+
+tru64)
+   # The Tru64 AIX compiler uses -MD to generate dependencies as a side
+   # effect.  `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
+   # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put 
+   # dependencies in `foo.d' instead, so we check for that too.
+   # Subdirectories are respected.
+
+   tmpdepfile1="$object.d"
+   tmpdepfile2=`echo "$object" | sed -e 's/.o$/.d/'` 
+   if test "$libtool" = yes; then
+      "$@" -Wc,-MD
+   else
+      "$@" -MD
+   fi
+
+   stat=$?
+   if test $stat -eq 0; then :
+   else
+      rm -f "$tmpdepfile1" "$tmpdepfile2"
+      exit $stat
+   fi
+
+   if test -f "$tmpdepfile1"; then
+      tmpdepfile="$tmpdepfile1"
+   else
+      tmpdepfile="$tmpdepfile2"
+   fi
+   if test -f "$tmpdepfile"; then
+      sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
+      # That's a space and a tab in the [].
+      sed -e 's,^.*\.[a-z]*:[  ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
+   else
+      echo "#dummy" > "$depfile"
+   fi
+   rm -f "$tmpdepfile"
+   ;;
+
+#nosideeffect)
+  # This comment above is used by automake to tell side-effect
+  # dependency tracking mechanisms from slower ones.
+
+dashmstdout)
+  # Important note: in order to support this mode, a compiler *must*
+  # always write the proprocessed file to stdout, regardless of -o,
+  # because we must use -o when running libtool.
+  test -z "$dashmflag" && dashmflag=-M
+  ( IFS=" "
+    case " $* " in
+    *" --mode=compile "*) # this is libtool, let us make it quiet
+      for arg
+      do # cycle over the arguments
+        case "$arg" in
+       "--mode=compile")
+         # insert --quiet before "--mode=compile"
+         set fnord "$@" --quiet
+         shift # fnord
+         ;;
+       esac
+       set fnord "$@" "$arg"
+       shift # fnord
+       shift # "$arg"
+      done
+      ;;
+    esac
+    "$@" $dashmflag | sed 's:^[^:]*\:[         ]*:'"$object"'\: :' > 
"$tmpdepfile"
+  ) &
+  proc=$!
+  "$@"
+  stat=$?
+  wait "$proc"
+  if test "$stat" != 0; then exit $stat; fi
+  rm -f "$depfile"
+  cat < "$tmpdepfile" > "$depfile"
+  tr ' ' '
+' < "$tmpdepfile" | \
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly.  Breaking it into two sed invocations is a workaround.
+    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+dashXmstdout)
+  # This case only exists to satisfy depend.m4.  It is never actually
+  # run, as this mode is specially recognized in the preamble.
+  exit 1
+  ;;
+
+makedepend)
+  # X makedepend
+  (
+    shift
+    cleared=no
+    for arg in "$@"; do
+      case $cleared in no)
+        set ""; shift
+       cleared=yes
+      esac
+      case "$arg" in
+        -D*|-I*)
+         set fnord "$@" "$arg"; shift;;
+       -*)
+         ;;
+       *)
+         set fnord "$@" "$arg"; shift;;
+      esac
+    done
+    obj_suffix="`echo $object | sed 's/^.*\././'`"
+    touch "$tmpdepfile"
+    ${MAKEDEPEND-makedepend} 2>/dev/null -o"$obj_suffix" -f"$tmpdepfile" "$@"
+  ) &
+  proc=$!
+  "$@"
+  stat=$?
+  wait "$proc"
+  if test "$stat" != 0; then exit $stat; fi
+  rm -f "$depfile"
+  cat < "$tmpdepfile" > "$depfile"
+  tail +3 "$tmpdepfile" | tr ' ' '
+' | \
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly.  Breaking it into two sed invocations is a workaround.
+    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile" "$tmpdepfile".bak
+  ;;
+
+cpp)
+  # Important note: in order to support this mode, a compiler *must*
+  # always write the proprocessed file to stdout, regardless of -o,
+  # because we must use -o when running libtool.
+  ( IFS=" "
+    case " $* " in
+    *" --mode=compile "*)
+      for arg
+      do # cycle over the arguments
+        case $arg in
+       "--mode=compile")
+         # insert --quiet before "--mode=compile"
+         set fnord "$@" --quiet
+         shift # fnord
+         ;;
+       esac
+       set fnord "$@" "$arg"
+       shift # fnord
+       shift # "$arg"
+      done
+      ;;
+    esac
+    "$@" -E |
+    sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
+    sed '$ s: \\$::' > "$tmpdepfile"
+  ) &
+  proc=$!
+  "$@"
+  stat=$?
+  wait "$proc"
+  if test "$stat" != 0; then exit $stat; fi
+  rm -f "$depfile"
+  echo "$object : \\" > "$depfile"
+  cat < "$tmpdepfile" >> "$depfile"
+  sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+msvisualcpp)
+  # Important note: in order to support this mode, a compiler *must*
+  # always write the proprocessed file to stdout, regardless of -o,
+  # because we must use -o when running libtool.
+  ( IFS=" "
+    case " $* " in
+    *" --mode=compile "*)
+      for arg
+      do # cycle over the arguments
+        case $arg in
+       "--mode=compile")
+         # insert --quiet before "--mode=compile"
+         set fnord "$@" --quiet
+         shift # fnord
+         ;;
+       esac
+       set fnord "$@" "$arg"
+       shift # fnord
+       shift # "$arg"
+      done
+      ;;
+    esac
+    "$@" -E |
+    sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u 
\\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
+  ) &
+  proc=$!
+  "$@"
+  stat=$?
+  wait "$proc"
+  if test "$stat" != 0; then exit $stat; fi
+  rm -f "$depfile"
+  echo "$object : \\" > "$depfile"
+  . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::   \1 \\:p' >> 
"$depfile"
+  echo "       " >> "$depfile"
+  . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> 
"$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+none)
+  exec "$@"
+  ;;
+
+*)
+  echo "Unknown depmode $depmode" 1>&2
+  exit 1
+  ;;
+esac
+
+exit 0
diff --git a/lib/elisp-comp b/lib/elisp-comp
index 96e4aa5..dc7d7ca 100755
--- a/lib/elisp-comp
+++ b/lib/elisp-comp
@@ -1,5 +1,5 @@
 #!/bin/sh
-# Copyright (C) 1995 Free Software Foundation, Inc.
+# Copyright 1995 Free Software Foundation, Inc.
 # François Pinard <address@hidden>, 1995.
 #
 # This program is free software; you can redistribute it and/or modify
@@ -16,6 +16,11 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
 # This script byte-compiles all `.el' files which are part of its
 # arguments, using GNU Emacs, and put the resulting `.elc' files into
 # the current directory, so disregarding the original directories used
@@ -41,7 +46,7 @@ else
    cd $tempdir
 
    echo "(setq load-path (cons nil load-path))" > script
-   $EMACS -q -batch -l script -f batch-byte-compile *.el
+   $EMACS -batch -q -l script -f batch-byte-compile *.el
    mv *.elc ..
 
    cd ..
diff --git a/lib/mdate-sh b/lib/mdate-sh
index 37171f2..c079aed 100755
--- a/lib/mdate-sh
+++ b/lib/mdate-sh
@@ -1,6 +1,6 @@
 #!/bin/sh
 # Get modification time of a file or directory and pretty-print it.
-# Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+# Copyright 1995, 1996, 1997 Free Software Foundation, Inc.
 # written by Ulrich Drepper <address@hidden>, June 1995
 #
 # This program is free software; you can redistribute it and/or modify
@@ -17,6 +17,11 @@
 # along with this program; if not, write to the Free Software Foundation,
 # Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
 # Prevent date giving response in another language.
 LANG=C
 export LANG
diff --git a/lib/missing b/lib/missing
index 7789652..0a7fb5a 100755
--- a/lib/missing
+++ b/lib/missing
@@ -1,7 +1,7 @@
 #! /bin/sh
 # Common stub for a few missing GNU programs while installing.
-# Copyright (C) 1996, 1997 Free Software Foundation, Inc.
-# Franc,ois Pinard <address@hidden>, 1996.
+# Copyright 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
+# Originally by Fran,cois Pinard <address@hidden>, 1996.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -18,11 +18,37 @@
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 # 02111-1307, USA.
 
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
 if test $# -eq 0; then
   echo 1>&2 "Try \`$0 --help' for more information"
   exit 1
 fi
 
+run=:
+
+# In the cases where this matters, `missing' is being run in the
+# srcdir already.
+if test -f configure.ac; then
+  configure_ac=configure.ac
+else
+  configure_ac=configure.in
+fi
+
+case "$1" in
+--run)
+  # Try to run requested program, and just exit if it succeeds.
+  run=
+  shift
+  "$@" && exit 0
+  ;;
+esac
+
+# If it does not exist, or fails to run (possibly an outdated version),
+# try to emulate it.
 case "$1" in
 
   -h|--h|--he|--hel|--help)
@@ -35,6 +61,7 @@ error status if there is no known handling for PROGRAM.
 Options:
   -h, --help      display this help and exit
   -v, --version   output version information and exit
+  --run           try to run the given command, and emulate it if it fails
 
 Supported PROGRAM values:
   aclocal      touch file \`aclocal.m4'
@@ -43,13 +70,15 @@ Supported PROGRAM values:
   automake     touch all \`Makefile.in' files
   bison        create \`y.tab.[ch]', if possible, from existing .[ch]
   flex         create \`lex.yy.c', if possible, from existing .c
+  help2man     touch the output file
   lex          create \`lex.yy.c', if possible, from existing .c
   makeinfo     touch the output file
+  tar          try tar, gnutar, gtar, then tar without non-portable flags
   yacc         create \`y.tab.[ch]', if possible, from existing .[ch]"
     ;;
 
   -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
-    echo "missing - GNU libit 0.0"
+    echo "missing 0.3 - GNU automake"
     ;;
 
   -*)
@@ -61,7 +90,7 @@ Supported PROGRAM values:
   aclocal)
     echo 1>&2 "\
 WARNING: \`$1' is missing on your system.  You should only need it if
-         you modified \`acinclude.m4' or \`configure.in'.  You might want
+         you modified \`acinclude.m4' or \`${configure_ac}'.  You might want
          to install the \`Automake' and \`Perl' packages.  Grab them from
          any GNU archive site."
     touch aclocal.m4
@@ -70,7 +99,7 @@ WARNING: \`$1' is missing on your system.  You should only 
need it if
   autoconf)
     echo 1>&2 "\
 WARNING: \`$1' is missing on your system.  You should only need it if
-         you modified \`configure.in'.  You might want to install the
+         you modified \`${configure_ac}'.  You might want to install the
          \`Autoconf' and \`GNU m4' packages.  Grab them from any GNU
          archive site."
     touch configure
@@ -79,10 +108,10 @@ WARNING: \`$1' is missing on your system.  You should only 
need it if
   autoheader)
     echo 1>&2 "\
 WARNING: \`$1' is missing on your system.  You should only need it if
-         you modified \`acconfig.h' or \`configure.in'.  You might want
+         you modified \`acconfig.h' or \`${configure_ac}'.  You might want
          to install the \`Autoconf' and \`GNU m4' packages.  Grab them
          from any GNU archive site."
-    files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' configure.in`
+    files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' 
${configure_ac}`
     test -z "$files" && files="config.h"
     touch_files=
     for f in $files; do
@@ -98,7 +127,7 @@ WARNING: \`$1' is missing on your system.  You should only 
need it if
   automake)
     echo 1>&2 "\
 WARNING: \`$1' is missing on your system.  You should only need it if
-         you modified \`Makefile.am', \`acinclude.m4' or \`configure.in'.
+         you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
          You might want to install the \`Automake' and \`Perl' packages.
          Grab them from any GNU archive site."
     find . -type f -name Makefile.am -print |
@@ -159,7 +188,32 @@ WARNING: \`$1' is missing on your system.  You should only 
need it if
     fi
     ;;
 
+  help2man)
+    echo 1>&2 "\
+WARNING: \`$1' is missing on your system.  You should only need it if
+        you modified a dependency of a manual page.  You may need the
+        \`Help2man' package in order for those modifications to take
+        effect.  You can get \`Help2man' from any GNU archive site."
+
+    file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
+    if test -z "$file"; then
+       file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
+    fi
+    if [ -f "$file" ]; then
+       touch $file
+    else
+       test -z "$file" || exec >$file
+       echo ".ab help2man is required to generate this page"
+       exit 1
+    fi
+    ;;
+
   makeinfo)
+    if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then
+       # We have makeinfo, but it failed.
+       exit 1
+    fi
+
     echo 1>&2 "\
 WARNING: \`$1' is missing on your system.  You should only need it if
          you modified a \`.texi' or \`.texinfo' file, or any other file
@@ -175,6 +229,45 @@ WARNING: \`$1' is missing on your system.  You should only 
need it if
     touch $file
     ;;
 
+  tar)
+    shift
+    if test -n "$run"; then
+      echo 1>&2 "ERROR: \`tar' requires --run"
+      exit 1
+    fi
+
+    # We have already tried tar in the generic part.
+    # Look for gnutar/gtar before invocation to avoid ugly error
+    # messages.
+    if (gnutar --version > /dev/null 2>&1); then
+       gnutar ${1+"$@"} && exit 0
+    fi
+    if (gtar --version > /dev/null 2>&1); then
+       gtar ${1+"$@"} && exit 0
+    fi
+    firstarg="$1"
+    if shift; then
+       case "$firstarg" in
+       *o*)
+           firstarg=`echo "$firstarg" | sed s/o//`
+           tar "$firstarg" ${1+"$@"} && exit 0
+           ;;
+       esac
+       case "$firstarg" in
+       *h*)
+           firstarg=`echo "$firstarg" | sed s/h//`
+           tar "$firstarg" ${1+"$@"} && exit 0
+           ;;
+       esac
+    fi
+
+    echo 1>&2 "\
+WARNING: I can't seem to be able to run \`tar' with the given arguments.
+         You may want to install GNU tar or Free paxutils, or check the
+         command line arguments."
+    exit 1
+    ;;
+
   *)
     echo 1>&2 "\
 WARNING: \`$1' is needed, and you do not seem to have it handy on your
diff --git a/lib/py-compile b/lib/py-compile
new file mode 100755
index 0000000..a055fae
--- /dev/null
+++ b/lib/py-compile
@@ -0,0 +1,92 @@
+#!/bin/sh
+
+# py-compile - Compile a Python program
+# Copyright 2000, 2001 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# called as "py-compile [--basedir DIR] PY_FILES ...
+
+if [ -z "$PYTHON" ]; then
+  PYTHON=python
+fi
+
+basedir=
+
+case "$1" in
+    --basedir)
+       basedir=$2
+       shift 2
+       ;;
+    --help)
+       echo "Usage: py-compile [--basedir DIR] PY_FILES ..."
+       echo "Byte compile some python scripts.  This should be performed"
+       echo "after they have been moved to the final installation location"
+       exit 0
+       ;;
+    --version)
+       echo "py-compile version 0.0"
+       exit 0
+       ;;
+esac
+
+if [ $# = 0 ]; then
+    echo "No files given to $0" 1>&2
+    exit 1
+fi
+
+# if basedir was given, then it should be prepended to filenames before
+# byte compilation.
+if [ -z "$basedir" ]; then
+    trans="path = file"
+else
+    trans="path = os.path.join('$basedir', file)"
+fi
+
+$PYTHON -c "
+import sys, os, string, py_compile
+
+files = '''$*'''
+print 'Byte-compiling python modules...'
+for file in string.split(files):
+    $trans
+    if not os.path.exists(path) or not (len(path) >= 3 and path[-3:] == '.py'):
+       continue
+    print file,
+    sys.stdout.flush()
+    py_compile.compile(path)
+print" || exit $?
+
+# this will fail for python < 1.5, but that doesn't matter ...
+$PYTHON -O -c "
+import sys, os, string, py_compile
+
+files = '''$*'''
+print 'Byte-compiling python modules (optimised versions) ...'
+for file in string.split(files):
+    $trans
+    if not os.path.exists(path) or not (len(path) >= 3 and path[-3:] == '.py'):
+       continue
+    print file,
+    sys.stdout.flush()
+    py_compile.compile(path)
+print" 2>/dev/null || :
+
diff --git a/lib/texinfo.tex b/lib/texinfo.tex
index aa52853..0c98fa2 100644
--- a/lib/texinfo.tex
+++ b/lib/texinfo.tex
@@ -3,9 +3,9 @@
 % Load plain if necessary, i.e., if running under initex.
 \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
 %
-\def\texinfoversion{1999-01-05}%
+\def\texinfoversion{2000-12-12.07}
 %
-% Copyright (C) 1985, 86, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98
+% Copyright (C) 1985, 86, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 2000
 % Free Software Foundation, Inc.
 %
 % This texinfo.tex file is free software; you can redistribute it and/or
@@ -29,30 +29,34 @@
 %
 % Please try the latest version of texinfo.tex before submitting bug
 % reports; you can get the latest version from:
-%   ftp://ftp.gnu.org/pub/gnu/texinfo.tex
-%   /home/gd/gnu/doc/texinfo.tex on the GNU machines.
+%   ftp://ftp.gnu.org/gnu/texinfo.tex
 %   (and all GNU mirrors, see http://www.gnu.org/order/ftp.html)
-%   ftp://tug.org/tex/texinfo.tex
-%   ftp://ctan.org/macros/texinfo/texinfo.tex
-%   (and all CTAN mirrors, finger address@hidden for a list).
-% The texinfo.tex in the texinfo distribution itself could well be out
+%   ftp://texinfo.org/tex/texinfo.tex
+%   ftp://us.ctan.org/macros/texinfo/texinfo.tex
+%   (and all CTAN mirrors, finger address@hidden for a list).
+%   /home/gd/gnu/doc/texinfo.tex on the GNU machines.
+% The texinfo.tex in any given Texinfo distribution could well be out
 % of date, so if that's what you're using, please check.
-% 
-% Send bug reports to address@hidden
-% Please include a precise test case in each bug report,
-% including a complete document with which we can reproduce the problem.
-% 
+% Texinfo has a small home page at http://texinfo.org/.
+%
+% Send bug reports to address@hidden  Please include including a
+% complete document in each bug report with which we can reproduce the
+% problem.  Patches are, of course, greatly appreciated.
+%
 % To process a Texinfo manual with TeX, it's most reliable to use the
-% texi2dvi shell script that comes with the distribution.  For simple
-% manuals, however, you can get away with:
+% texi2dvi shell script that comes with the distribution.  For a simple
+% manual foo.texi, however, you can get away with this:
 %   tex foo.texi
 %   texindex foo.??
 %   tex foo.texi
 %   tex foo.texi
-%   dvips foo.dvi -o # or whatever, to process the dvi file.
+%   dvips foo.dvi -o # or whatever, to process the dvi file; this makes foo.ps.
 % The extra runs of TeX get the cross-reference information correct.
 % Sometimes one run after texindex suffices, and sometimes you need more
 % than two; texi2dvi does it as many times as necessary.
+%
+% It is possible to adapt texinfo.tex for other languages.  You can get
+% the existing language-specific files from ftp://ftp.gnu.org/gnu/texinfo/.
 
 \message{Loading texinfo [version \texinfoversion]:}
 
@@ -63,7 +67,6 @@
   \catcode`+=\active \catcode`\_=\active}
 
 % Save some parts of plain tex whose names we will redefine.
-
 \let\ptexb=\b
 \let\ptexbullet=\bullet
 \let\ptexc=\c
@@ -83,7 +86,6 @@
 % For @tex, we can use \tabalign.
 \let\+ = \relax
 
-
 \message{Basics,}
 \chardef\other=12
 
@@ -92,19 +94,46 @@
 \newlinechar = `^^J
 
 % Set up fixed words for English if not already set.
-\ifx\putwordAppendix\undefined \gdef\putwordAppendix{Appendix}\fi
-\ifx\putwordChapter\undefined  \gdef\putwordChapter{Chapter}\fi
-\ifx\putwordfile\undefined     \gdef\putwordfile{file}\fi
-\ifx\putwordInfo\undefined     \gdef\putwordInfo{Info}\fi
-\ifx\putwordMethodon\undefined \gdef\putwordMethodon{Method on}\fi
-\ifx\putwordon\undefined       \gdef\putwordon{on}\fi
-\ifx\putwordpage\undefined     \gdef\putwordpage{page}\fi
-\ifx\putwordsection\undefined  \gdef\putwordsection{section}\fi
-\ifx\putwordSection\undefined  \gdef\putwordSection{Section}\fi
-\ifx\putwordsee\undefined      \gdef\putwordsee{see}\fi
-\ifx\putwordSee\undefined      \gdef\putwordSee{See}\fi
-\ifx\putwordShortContents\undefined  \gdef\putwordShortContents{Short 
Contents}\fi
-\ifx\putwordTableofContents\undefined\gdef\putwordTableofContents{Table of 
Contents}\fi
+\ifx\putwordAppendix\undefined  \gdef\putwordAppendix{Appendix}\fi
+\ifx\putwordChapter\undefined   \gdef\putwordChapter{Chapter}\fi
+\ifx\putwordfile\undefined      \gdef\putwordfile{file}\fi
+\ifx\putwordin\undefined        \gdef\putwordin{in}\fi
+\ifx\putwordIndexIsEmpty\undefined     \gdef\putwordIndexIsEmpty{(Index is 
empty)}\fi
+\ifx\putwordIndexNonexistent\undefined \gdef\putwordIndexNonexistent{(Index is 
nonexistent)}\fi
+\ifx\putwordInfo\undefined      \gdef\putwordInfo{Info}\fi
+\ifx\putwordInstanceVariableof\undefined 
\gdef\putwordInstanceVariableof{Instance Variable of}\fi
+\ifx\putwordMethodon\undefined  \gdef\putwordMethodon{Method on}\fi
+\ifx\putwordNoTitle\undefined   \gdef\putwordNoTitle{No Title}\fi
+\ifx\putwordof\undefined        \gdef\putwordof{of}\fi
+\ifx\putwordon\undefined        \gdef\putwordon{on}\fi
+\ifx\putwordpage\undefined      \gdef\putwordpage{page}\fi
+\ifx\putwordsection\undefined   \gdef\putwordsection{section}\fi
+\ifx\putwordSection\undefined   \gdef\putwordSection{Section}\fi
+\ifx\putwordsee\undefined       \gdef\putwordsee{see}\fi
+\ifx\putwordSee\undefined       \gdef\putwordSee{See}\fi
+\ifx\putwordShortTOC\undefined  \gdef\putwordShortTOC{Short Contents}\fi
+\ifx\putwordTOC\undefined       \gdef\putwordTOC{Table of Contents}\fi
+%
+\ifx\putwordMJan\undefined \gdef\putwordMJan{January}\fi
+\ifx\putwordMFeb\undefined \gdef\putwordMFeb{February}\fi
+\ifx\putwordMMar\undefined \gdef\putwordMMar{March}\fi
+\ifx\putwordMApr\undefined \gdef\putwordMApr{April}\fi
+\ifx\putwordMMay\undefined \gdef\putwordMMay{May}\fi
+\ifx\putwordMJun\undefined \gdef\putwordMJun{June}\fi
+\ifx\putwordMJul\undefined \gdef\putwordMJul{July}\fi
+\ifx\putwordMAug\undefined \gdef\putwordMAug{August}\fi
+\ifx\putwordMSep\undefined \gdef\putwordMSep{September}\fi
+\ifx\putwordMOct\undefined \gdef\putwordMOct{October}\fi
+\ifx\putwordMNov\undefined \gdef\putwordMNov{November}\fi
+\ifx\putwordMDec\undefined \gdef\putwordMDec{December}\fi
+%
+\ifx\putwordDefmac\undefined    \gdef\putwordDefmac{Macro}\fi
+\ifx\putwordDefspec\undefined   \gdef\putwordDefspec{Special Form}\fi
+\ifx\putwordDefvar\undefined    \gdef\putwordDefvar{Variable}\fi
+\ifx\putwordDefopt\undefined    \gdef\putwordDefopt{User Option}\fi
+\ifx\putwordDeftypevar\undefined\gdef\putwordDeftypevar{Variable}\fi
+\ifx\putwordDeffunc\undefined   \gdef\putwordDeffunc{Function}\fi
+\ifx\putwordDeftypefun\undefined\gdef\putwordDeftypefun{Function}\fi
 
 % Ignore a token.
 %
@@ -143,7 +172,7 @@
 
 % For @cropmarks command.
 % Do @cropmarks to get crop marks.
-% 
+%
 \newif\ifcropmarks
 \let\cropmarks = \cropmarkstrue
 %
@@ -185,6 +214,9 @@
     \normalturnoffactive  % \ in index entries must not stay \, e.g., if
                    % the page break happens to be in the middle of an example.
     \shipout\vbox{%
+      % Do this early so pdf references go to the beginning of the page.
+      \ifpdfmakepagedest \pdfmkdest{\the\pageno} \fi
+      %
       \ifcropmarks \vbox to \outervsize\bgroup
         \hsize = \outerhsize
         \vskip-\topandbottommargin
@@ -568,36 +600,42 @@ where each line of input produces a line of output.}
 %}}
 
 \def\needx#1{%
-  % Go into vertical mode, so we don't make a big box in the middle of a
+  % Ensure vertical mode, so we don't make a big box in the middle of a
   % paragraph.
   \par
   %
-  % Don't add any leading before our big empty box, but allow a page
-  % break, since the best break might be right here.
-  \allowbreak
-  \nointerlineskip
-  \vtop to #1\mil{\vfil}%
-  %
-  % TeX does not even consider page breaks if a penalty added to the
-  % main vertical list is 10000 or more.  But in order to see if the
-  % empty box we just added fits on the page, we must make it consider
-  % page breaks.  On the other hand, we don't want to actually break the
-  % page after the empty box.  So we use a penalty of 9999.
-  %
-  % There is an extremely small chance that TeX will actually break the
-  % page at this \penalty, if there are no other feasible breakpoints in
-  % sight.  (If the user is using lots of big @group commands, which
-  % almost-but-not-quite fill up a page, TeX will have a hard time doing
-  % good page breaking, for example.)  However, I could not construct an
-  % example where a page broke at this \penalty; if it happens in a real
-  % document, then we can reconsider our strategy.
-  \penalty9999
-  %
-  % Back up by the size of the box, whether we did a page break or not.
-  \kern -#1\mil
-  %
-  % Do not allow a page break right after this kern.
-  \nobreak
+  % If the @need value is less than one line space, it's useless.
+  \dimen0 = #1\mil
+  \dimen2 = \ht\strutbox
+  \advance\dimen2 by \dp\strutbox
+  \ifdim\dimen0 > \dimen2
+    %
+    % Do a \strut just to make the height of this box be normal, so the
+    % normal leading is inserted relative to the preceding line.
+    % And a page break here is fine.
+    \vtop to #1\mil{\strut\vfil}%
+    %
+    % TeX does not even consider page breaks if a penalty added to the
+    % main vertical list is 10000 or more.  But in order to see if the
+    % empty box we just added fits on the page, we must make it consider
+    % page breaks.  On the other hand, we don't want to actually break the
+    % page after the empty box.  So we use a penalty of 9999.
+    %
+    % There is an extremely small chance that TeX will actually break the
+    % page at this \penalty, if there are no other feasible breakpoints in
+    % sight.  (If the user is using lots of big @group commands, which
+    % almost-but-not-quite fill up a page, TeX will have a hard time doing
+    % good page breaking, for example.)  However, I could not construct an
+    % example where a page broke at this \penalty; if it happens in a real
+    % document, then we can reconsider our strategy.
+    \penalty9999
+    %
+    % Back up by the size of the box, whether we did a page break or not.
+    \kern -#1\mil
+    %
+    % Do not allow a page break right after this kern.
+    \nobreak
+  \fi
 }
 
 % @br   forces paragraph break
@@ -618,7 +656,7 @@ where each line of input produces a line of output.}
 }
 
 % @enddots{} is an end-of-sentence ellipsis.
-% 
+%
 \def\enddots{%
   \leavevmode
   \hbox to 2em{%
@@ -650,16 +688,54 @@ where each line of input produces a line of output.}
 \def\nofillexdentyyy #1{{\advance \leftskip by -\exdentamount
 \leftline{\hskip\leftskip{\rm#1}}}}
 
-% @inmargin{TEXT} puts TEXT in the margin next to the current paragraph.
-
-\def\inmargin#1{%
-\strut\vadjust{\nobreak\kern-\strutdepth
-  \vtop to \strutdepth{\baselineskip\strutdepth\vss
-  \llap{\rightskip=\inmarginspacing \vbox{\noindent #1}}\null}}}
+% @inmargin{WHICH}{TEXT} puts TEXT in the WHICH margin next to the current
+% paragraph.  For more general purposes, use the \margin insertion
+% class.  WHICH is `l' or `r'.
+%
 \newskip\inmarginspacing \inmarginspacing=1cm
 \def\strutdepth{\dp\strutbox}
-
-%\hbox{{\rm#1}}\hfil\break}}
+%
+\def\doinmargin#1#2{\strut\vadjust{%
+  \nobreak
+  \kern-\strutdepth
+  \vtop to \strutdepth{%
+    \baselineskip=\strutdepth
+    \vss
+    % if you have multiple lines of stuff to put here, you'll need to
+    % make the vbox yourself of the appropriate size.
+    \ifx#1l%
+      \llap{\ignorespaces #2\hskip\inmarginspacing}%
+    \else
+      \rlap{\hskip\hsize \hskip\inmarginspacing \ignorespaces #2}%
+    \fi
+    \null
+  }%
+}}
+\def\inleftmargin{\doinmargin l}
+\def\inrightmargin{\doinmargin r}
+%
+% @inmargin{TEXT [, RIGHT-TEXT]}
+% (if RIGHT-TEXT is given, use TEXT for left page, RIGHT-TEXT for right;
+% else use TEXT for both).
+% 
+\def\inmargin#1{\parseinmargin #1,,\finish}
+\def\parseinmargin#1,#2,#3\finish{% not perfect, but better than nothing.
+  \setbox0 = \hbox{\ignorespaces #2}% 
+  \ifdim\wd0 > 0pt
+    \def\lefttext{#1}%  have both texts
+    \def\righttext{#2}%
+  \else
+    \def\lefttext{#1}%  have only one text
+    \def\righttext{#1}%
+  \fi
+  %
+  \ifodd\pageno
+    \def\temp{\inrightmargin\righttext}% odd page -> outside is right margin
+  \else
+    \def\temp{\inleftmargin\lefttext}%
+  \fi
+  \temp
+}
 
 % @include file    insert text of that file as input.
 % Allow normal characters that  we make active in the argument (a file name).
@@ -705,353 +781,43 @@ where each line of input produces a line of output.}
 
 \let\c=\comment
 
-% @paragraphindent  is defined for the Info formatting commands only.
-\let\paragraphindent=\comment
-
-% Prevent errors for section commands.
-% Used in @ignore and in failing conditionals.
-\def\ignoresections{%
-\let\chapter=\relax
-\let\unnumbered=\relax
-\let\top=\relax
-\let\unnumberedsec=\relax
-\let\unnumberedsection=\relax
-\let\unnumberedsubsec=\relax
-\let\unnumberedsubsection=\relax
-\let\unnumberedsubsubsec=\relax
-\let\unnumberedsubsubsection=\relax
-\let\section=\relax
-\let\subsec=\relax
-\let\subsubsec=\relax
-\let\subsection=\relax
-\let\subsubsection=\relax
-\let\appendix=\relax
-\let\appendixsec=\relax
-\let\appendixsection=\relax
-\let\appendixsubsec=\relax
-\let\appendixsubsection=\relax
-\let\appendixsubsubsec=\relax
-\let\appendixsubsubsection=\relax
-\let\contents=\relax
-\let\smallbook=\relax
-\let\titlepage=\relax
-}
-
-% Used in nested conditionals, where we have to parse the Texinfo source
-% and so want to turn off most commands, in case they are used
-% incorrectly.
-%
-\def\ignoremorecommands{%
-  \let\defcodeindex = \relax
-  \let\defcv = \relax
-  \let\deffn = \relax
-  \let\deffnx = \relax
-  \let\defindex = \relax
-  \let\defivar = \relax
-  \let\defmac = \relax
-  \let\defmethod = \relax
-  \let\defop = \relax
-  \let\defopt = \relax
-  \let\defspec = \relax
-  \let\deftp = \relax
-  \let\deftypefn = \relax
-  \let\deftypefun = \relax
-  \let\deftypevar = \relax
-  \let\deftypevr = \relax
-  \let\defun = \relax
-  \let\defvar = \relax
-  \let\defvr = \relax
-  \let\ref = \relax
-  \let\xref = \relax
-  \let\printindex = \relax
-  \let\pxref = \relax
-  \let\settitle = \relax
-  \let\setchapternewpage = \relax
-  \let\setchapterstyle = \relax
-  \let\everyheading = \relax
-  \let\evenheading = \relax
-  \let\oddheading = \relax
-  \let\everyfooting = \relax
-  \let\evenfooting = \relax
-  \let\oddfooting = \relax
-  \let\headings = \relax
-  \let\include = \relax
-  \let\lowersections = \relax
-  \let\down = \relax
-  \let\raisesections = \relax
-  \let\up = \relax
-  \let\set = \relax
-  \let\clear = \relax
-  \let\item = \relax
-}
-
-% Ignore @ignore ... @end ignore.
-%
-\def\ignore{\doignore{ignore}}
-
-% Ignore @ifinfo, @ifhtml, @ifnottex, @html, @menu, and @direntry text.
-%
-\def\ifinfo{\doignore{ifinfo}}
-\def\ifhtml{\doignore{ifhtml}}
-\def\ifnottex{\doignore{ifnottex}}
-\def\html{\doignore{html}}
-\def\menu{\doignore{menu}}
-\def\direntry{\doignore{direntry}}
-
-% @dircategory CATEGORY  -- specify a category of the dir file
-% which this file should belong to.  Ignore this in TeX.
-\let\dircategory = \comment
-
-% Ignore text until a line address@hidden #1'.
-%
-\def\doignore#1{\begingroup
-  % Don't complain about control sequences we have declared \outer.
-  \ignoresections
-  %
-  % Define a command to swallow text until we reach address@hidden #1'.
-  % This @ is a catcode 12 token (that is the normal catcode of @ in
-  % this texinfo.tex file).  We change the catcode of @ below to match.
-  address@hidden #1{\enddoignore}%
-  %
-  % Make sure that spaces turn into tokens that match what \doignoretext wants.
-  \catcode32 = 10
-  %
-  % Ignore braces, too, so mismatched braces don't cause trouble.
-  \catcode`\{ = 9
-  \catcode`\} = 9
-  %
-  % We must not have @c interpreted as a control sequence.
-  \catcode`\@ = 12
-  %
-  % Make the letter c a comment character so that the rest of the line
-  % will be ignored. This way, the document can have (for example)
-  %   @c @end ifinfo
-  % and the @end ifinfo will be properly ignored.
-  % (We've just changed @ to catcode 12.)
-  \catcode`\c = 14
-  %
-  % And now expand that command.
-  \doignoretext
-}
-
-% What we do to finish off ignored text.
-%
-\def\enddoignore{\endgroup\ignorespaces}%
-
-\newif\ifwarnedobs\warnedobsfalse
-\def\obstexwarn{%
-  \ifwarnedobs\relax\else
-  % We need to warn folks that they may have trouble with TeX 3.0.
-  % This uses \immediate\write16 rather than \message to get newlines.
-    \immediate\write16{}
-    \immediate\write16{***WARNING*** for users of Unix TeX 3.0!}
-    \immediate\write16{This manual trips a bug in TeX version 3.0 (tex hangs).}
-    \immediate\write16{If you are running another version of TeX, relax.}
-    \immediate\write16{If you are running Unix TeX 3.0, kill this TeX process.}
-    \immediate\write16{  Then upgrade your TeX installation if you can.}
-    \immediate\write16{  (See ftp://ftp.gnu.org/pub/gnu/TeX.README.)}
-    \immediate\write16{If you are stuck with version 3.0, run the}
-    \immediate\write16{  script ``tex3patch'' from the Texinfo distribution}
-    \immediate\write16{  to use a workaround.}
-    \immediate\write16{}
-    \global\warnedobstrue
-    \fi
-}
-
-% **In TeX 3.0, setting text in \nullfont hangs tex.  For a
-% workaround (which requires the file ``dummy.tfm'' to be installed),
-% uncomment the following line:
-%%%%%\font\nullfont=dummy\let\obstexwarn=\relax
-
-% Ignore text, except that we keep track of conditional commands for
-% purposes of nesting, up to an address@hidden #1' command.
-%
-\def\nestedignore#1{%
-  \obstexwarn
-  % We must actually expand the ignored text to look for the @end
-  % command, so that nested ignore constructs work.  Thus, we put the
-  % text into a \vbox and then do nothing with the result.  To minimize
-  % the change of memory overflow, we follow the approach outlined on
-  % page 401 of the TeXbook: make the current font be a dummy font.
-  %
-  \setbox0 = \vbox\bgroup
-    % Don't complain about control sequences we have declared \outer.
-    \ignoresections
-    %
-    % Define address@hidden #1' to end the box, which will in turn undefine the
-    % @end command again.
-    \expandafter\def\csname E#1\endcsname{\egroup\ignorespaces}%
-    %
-    % We are going to be parsing Texinfo commands.  Most cause no
-    % trouble when they are used incorrectly, but some commands do
-    % complicated argument parsing or otherwise get confused, so we
-    % undefine them.
-    %
-    % We can't do anything about stray @-signs, unfortunately;
-    % they'll produce `undefined control sequence' errors.
-    \ignoremorecommands
-    %
-    % Set the current font to be \nullfont, a TeX primitive, and define
-    % all the font commands to also use \nullfont.  We don't use
-    % dummy.tfm, as suggested in the TeXbook, because not all sites
-    % might have that installed.  Therefore, math mode will still
-    % produce output, but that should be an extremely small amount of
-    % stuff compared to the main input.
-    %
-    \nullfont
-    \let\tenrm = \nullfont  \let\tenit = \nullfont  \let\tensl = \nullfont
-    \let\tenbf = \nullfont  \let\tentt = \nullfont  \let\smallcaps = \nullfont
-    \let\tensf = \nullfont
-    % Similarly for index fonts (mostly for their use in
-    % smallexample)
-    \let\indrm = \nullfont  \let\indit = \nullfont  \let\indsl = \nullfont
-    \let\indbf = \nullfont  \let\indtt = \nullfont  \let\indsc = \nullfont
-    \let\indsf = \nullfont
-    %
-    % Don't complain when characters are missing from the fonts.
-    \tracinglostchars = 0
-    %
-    % Don't bother to do space factor calculations.
-    \frenchspacing
-    %
-    % Don't report underfull hboxes.
-    \hbadness = 10000
-    %
-    % Do minimal line-breaking.
-    \pretolerance = 10000
-    %
-    % Do not execute instructions in @tex
-    \def\tex{\doignore{tex}}%
-    % Do not execute macro definitions.
-    % `c' is a comment character, so the word `macro' will get cut off.
-    \def\macro{\doignore{ma}}%
-}
-
-% @set VAR sets the variable VAR to an empty value.
-% @set VAR REST-OF-LINE sets VAR to the value REST-OF-LINE.
-%
-% Since we want to separate VAR from REST-OF-LINE (which might be
-% empty), we can't just use \parsearg; we have to insert a space of our
-% own to delimit the rest of the line, and then take it out again if we
-% didn't need it.  Make sure the catcode of space is correct to avoid
-% losing inside @example, for instance.
-%
-\def\set{\begingroup\catcode` =10
-  \catcode`\-=12 \catcode`\_=12 % Allow - and _ in VAR.
-  \parsearg\setxxx}
-\def\setxxx#1{\setyyy#1 \endsetyyy}
-\def\setyyy#1 #2\endsetyyy{%
-  \def\temp{#2}%
-  \ifx\temp\empty \global\expandafter\let\csname SET#1\endcsname = \empty
-  \else \setzzz{#1}#2\endsetzzz % Remove the trailing space \setxxx inserted.
-  \fi
-  \endgroup
-}
-% Can't use \xdef to pre-expand #2 and save some time, since \temp or
-% \next or other control sequences that we've defined might get us into
-% an infinite loop. Consider address@hidden foo @cite{bar}'.
-\def\setzzz#1#2 \endsetzzz{\expandafter\gdef\csname SET#1\endcsname{#2}}
-
-% @clear VAR clears (i.e., unsets) the variable VAR.
-%
-\def\clear{\parsearg\clearxxx}
-\def\clearxxx#1{\global\expandafter\let\csname SET#1\endcsname=\relax}
-
-% @value{foo} gets the text saved in variable foo.
-%
-{
-  \catcode`\_ = \active
-  %
-  % We might end up with active _ or - characters in the argument if
-  % we're called from @code, as @address@hidden  So \let any
-  % such active characters to their normal equivalents.
-  \gdef\value{\begingroup
-    \catcode`\-=12 \catcode`\_=12
-    \indexbreaks \let_\normalunderscore
-    \valuexxx}
-}
-\def\valuexxx#1{\expandablevalue{#1}\endgroup}
-
-% We have this subroutine so that we can handle at least some @value's
-% properly in indexes (we \let\value to this in \indexdummies).  Ones
-% whose names contain - or _ still won't work, but we can't do anything
-% about that.  The command has to be fully expandable, since the result
-% winds up in the index file.  This means that if the variable's value
-% contains other Texinfo commands, it's almost certain it will fail
-% (although perhaps we could fix that with sufficient work to do a
-% one-level expansion on the result, instead of complete).
+% @paragraphindent NCHARS
+% We'll use ems for NCHARS, close enough.
+% We cannot implement @paragraphindent asis, though.
 % 
-\def\expandablevalue#1{%
-  \expandafter\ifx\csname SET#1\endcsname\relax
-    {[No value for ``#1'']}%
-  \else
-    \csname SET#1\endcsname
-  \fi
-}
-
-% @ifset VAR ... @end ifset reads the `...' iff VAR has been defined
-% with @set.
+\def\asisword{asis} % no translation, these are keywords
+\def\noneword{none}
 %
-\def\ifset{\parsearg\ifsetxxx}
-\def\ifsetxxx #1{%
-  \expandafter\ifx\csname SET#1\endcsname\relax
-    \expandafter\ifsetfail
+\def\paragraphindent{\parsearg\doparagraphindent}
+\def\doparagraphindent#1{%
+  \def\temp{#1}%
+  \ifx\temp\asisword
   \else
-    \expandafter\ifsetsucceed
+    \ifx\temp\noneword
+      \defaultparindent = 0pt
+    \else
+      \defaultparindent = #1em
+    \fi
   \fi
+  \parindent = \defaultparindent
 }
-\def\ifsetsucceed{\conditionalsucceed{ifset}}
-\def\ifsetfail{\nestedignore{ifset}}
-\defineunmatchedend{ifset}
 
-% @ifclear VAR ... @end ifclear reads the `...' iff VAR has never been
-% defined with @set, or has been undefined with @clear.
-%
-\def\ifclear{\parsearg\ifclearxxx}
-\def\ifclearxxx #1{%
-  \expandafter\ifx\csname SET#1\endcsname\relax
-    \expandafter\ifclearsucceed
+% @exampleindent NCHARS
+% We'll use ems for NCHARS like @paragraphindent.
+% It seems @exampleindent asis isn't necessary, but
+% I preserve it to make it similar to @paragraphindent.
+\def\exampleindent{\parsearg\doexampleindent}
+\def\doexampleindent#1{%
+  \def\temp{#1}%
+  \ifx\temp\asisword
   \else
-    \expandafter\ifclearfail
+    \ifx\temp\noneword
+      \lispnarrowing = 0pt
+    \else
+      \lispnarrowing = #1em
+    \fi
   \fi
 }
-\def\ifclearsucceed{\conditionalsucceed{ifclear}}
-\def\ifclearfail{\nestedignore{ifclear}}
-\defineunmatchedend{ifclear}
-
-% @iftex, @ifnothtml, @ifnotinfo always succeed; we read the text
-% following, through the first @end iftex (etc.).  Make address@hidden iftex'
-% (etc.) valid only after an @iftex.
-%
-\def\iftex{\conditionalsucceed{iftex}}
-\def\ifnothtml{\conditionalsucceed{ifnothtml}}
-\def\ifnotinfo{\conditionalsucceed{ifnotinfo}}
-\defineunmatchedend{iftex}
-\defineunmatchedend{ifnothtml}
-\defineunmatchedend{ifnotinfo}
-
-% We can't just want to start a group at @iftex (for example) and end it
-% at @end iftex, since then @set commands inside the conditional have no
-% effect (they'd get reverted at the end of the group).  So we must
-% define \Eiftex to redefine itself to be its previous value.  (We can't
-% just define it to fail again with an ``unmatched end'' error, since
-% the @ifset might be nested.)
-%
-\def\conditionalsucceed#1{%
-  \edef\temp{%
-    % Remember the current value of \E#1.
-    \let\nece{prevE#1} = \nece{E#1}%
-    %
-    % At the address@hidden #1', redefine \E#1 to be its previous value.
-    \def\nece{E#1}{\let\nece{E#1} = \nece{prevE#1}}%
-  }%
-  \temp
-}
-
-% We need to expand lots of \csname's, but we don't want to expand the
-% control sequences after we've constructed them.
-%
-\def\nece#1{\expandafter\noexpand\csname#1\endcsname}
 
 % @asis just yields its argument.  Used with @table, for example.
 %
@@ -1088,7 +854,7 @@ where each line of input produces a line of output.}
 % So open here the files we need to have open while reading the input.
 % This makes it possible to make a .fmt file for texinfo.
 \def\setfilename{%
-   \iflinks 
+   \iflinks
      \readauxfile
    \fi % \openindices needs to do some work in any case.
    \openindices
@@ -1107,7 +873,7 @@ where each line of input produces a line of output.}
 }
 
 % Called from \setfilename.
-% 
+%
 \def\openindices{%
   \newindex{cp}%
   \newcodeindex{fn}%
@@ -1121,6 +887,179 @@ where each line of input produces a line of output.}
 \outer\def\bye{\pagealignmacro\tracingstats=1\ptexend}
 
 
+\message{pdf,}
+% adobe `portable' document format
+\newcount\tempnum
+\newcount\lnkcount
+\newtoks\filename
+\newcount\filenamelength
+\newcount\pgn
+\newtoks\toksA
+\newtoks\toksB
+\newtoks\toksC
+\newtoks\toksD
+\newbox\boxA
+\newcount\countA
+\newif\ifpdf
+\newif\ifpdfmakepagedest
+
+\ifx\pdfoutput\undefined
+  \pdffalse
+  \let\pdfmkdest = \gobble
+  \let\pdfurl = \gobble
+  \let\endlink = \relax
+  \let\linkcolor = \relax
+  \let\pdfmakeoutlines = \relax
+\else
+  \pdftrue
+  \pdfoutput = 1
+  \input pdfcolor
+  \def\dopdfimage#1#2#3{%
+    \def\imagewidth{#2}%
+    \def\imageheight{#3}%
+    \ifnum\pdftexversion < 14
+      \pdfimage
+    \else
+      \pdfximage
+    \fi
+      \ifx\empty\imagewidth\else width \imagewidth \fi
+      \ifx\empty\imageheight\else height \imageheight \fi
+      {#1.pdf}%
+    \ifnum\pdftexversion < 14 \else
+      \pdfrefximage \pdflastximage
+    \fi}
+  \def\pdfmkdest#1{\pdfdest address@hidden xyz}
+  address@hidden
+  \let\linkcolor = \Blue  % was Cyan, but that seems light?
+  \def\endlink{\Black\pdfendlink}
+  % Adding outlines to PDF; macros for calculating structure of outlines
+  % come from Petr Olsak
+  \def\expnumber#1{\expandafter\ifx\csname#1\endcsname\relax 0%
+    \else \csname#1\endcsname \fi}
+  \def\advancenumber#1{\tempnum=\expnumber{#1}\relax
+    \advance\tempnum by1
+    \expandafter\xdef\csname#1\endcsname{\the\tempnum}}
+  \def\pdfmakeoutlines{{%
+    \openin 1 \jobname.toc
+    \ifeof 1\else\bgroup
+      \closein 1 
+      \indexnofonts
+      \def\tt{}
+      \let\_ = \normalunderscore
+      % Thanh's hack / proper braces in bookmarks  
+      \edef\mylbrace{\iftrue \string{\else}\fi}\let\{=\mylbrace
+      \edef\myrbrace{\iffalse{\else\string}\fi}\let\}=\myrbrace
+      %
+      \def\chapentry ##1##2##3{}
+      \def\unnumbchapentry ##1##2{}
+      \def\secentry ##1##2##3##4{\advancenumber{chap##2}}
+      \def\unnumbsecentry ##1##2{}
+      \def\subsecentry ##1##2##3##4##5{\advancenumber{sec##2.##3}}
+      \def\unnumbsubsecentry ##1##2{}
+      \def\subsubsecentry ##1##2##3##4##5##6{\advancenumber{subsec##2.##3.##4}}
+      \def\unnumbsubsubsecentry ##1##2{}
+      \input \jobname.toc
+      \def\chapentry ##1##2##3{%
+        \pdfoutline goto name{\pdfmkpgn{##3}}count-\expnumber{chap##2}{##1}}
+      \def\unnumbchapentry ##1##2{%
+        \pdfoutline goto name{\pdfmkpgn{##2}}{##1}}
+      \def\secentry ##1##2##3##4{%
+        \pdfoutline goto name{\pdfmkpgn{##4}}count-\expnumber{sec##2.##3}{##1}}
+      \def\unnumbsecentry ##1##2{%
+        \pdfoutline goto name{\pdfmkpgn{##2}}{##1}}
+      \def\subsecentry ##1##2##3##4##5{%
+        \pdfoutline goto 
name{\pdfmkpgn{##5}}count-\expnumber{subsec##2.##3.##4}{##1}}
+      \def\unnumbsubsecentry ##1##2{%
+        \pdfoutline goto name{\pdfmkpgn{##2}}{##1}}
+      \def\subsubsecentry ##1##2##3##4##5##6{%
+        \pdfoutline goto name{\pdfmkpgn{##6}}{##1}}
+      \def\unnumbsubsubsecentry ##1##2{%
+        \pdfoutline goto name{\pdfmkpgn{##2}}{##1}}
+      \input \jobname.toc
+    \egroup\fi
+  }}
+  \def\makelinks #1,{%
+    \def\params{#1}\def\E{END}%
+    \ifx\params\E
+      \let\nextmakelinks=\relax
+    \else
+      \let\nextmakelinks=\makelinks
+      \ifnum\lnkcount>0,\fi
+      \picknum{#1}%
+      \startlink attr{/Border [0 0 0]} 
+        goto name{\pdfmkpgn{\the\pgn}}%
+      \linkcolor #1%
+      \advance\lnkcount by 1%
+      \endlink
+    \fi
+    \nextmakelinks
+  }
+  \def\picknum#1{\expandafter\pn#1}
+  \def\pn#1{%
+    \def\p{#1}%
+    \ifx\p\lbrace
+      \let\nextpn=\ppn
+    \else
+      \let\nextpn=\ppnn
+      \def\first{#1}
+    \fi
+    \nextpn
+  }
+  \def\ppn#1{\pgn=#1\gobble}
+  \def\ppnn{\pgn=\first}
+  \def\pdfmklnk#1{\lnkcount=0\makelinks #1,END,}
+  \def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks}
+  \def\skipspaces#1{\def\PP{#1}\def\D{|}%
+    \ifx\PP\D\let\nextsp\relax
+    \else\let\nextsp\skipspaces
+      \ifx\p\space\else\addtokens{\filename}{\PP}%
+        \advance\filenamelength by 1
+      \fi
+    \fi
+    \nextsp}
+  \def\getfilename#1{\filenamelength=0\expandafter\skipspaces#1|\relax}
+  \ifnum\pdftexversion < 14
+    \let \startlink \pdfannotlink
+  \else
+    \let \startlink \pdfstartlink
+  \fi
+  \def\pdfurl#1{%
+    \begingroup
+      address@hidden@}%
+      \leavevmode\Red
+      \startlink attr{/Border [0 0 0]}%
+        user{/Subtype /Link /A << /S /URI /URI (#1) >>}%
+        % #1
+    \endgroup}
+  \def\pdfgettoks#1.{\setbox\boxA=\hbox{\toksA={#1.}\toksB={}\maketoks}}
+  \def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks}
+  \def\adn#1{\addtokens{\toksC}{#1}\global\countA=1\let\next=\maketoks}
+  \def\poptoks#1#2|ENDTOKS|{\let\first=#1\toksD={#1}\toksA={#2}}
+  \def\maketoks{%
+    \expandafter\poptoks\the\toksA|ENDTOKS|
+    \ifx\first0\adn0
+    \else\ifx\first1\adn1 \else\ifx\first2\adn2 \else\ifx\first3\adn3
+    \else\ifx\first4\adn4 \else\ifx\first5\adn5 \else\ifx\first6\adn6
+    \else\ifx\first7\adn7 \else\ifx\first8\adn8 \else\ifx\first9\adn9 
+    \else
+      \ifnum0=\countA\else\makelink\fi
+      \ifx\first.\let\next=\done\else
+        \let\next=\maketoks
+        \addtokens{\toksB}{\the\toksD}
+        \ifx\first,\addtokens{\toksB}{\space}\fi
+      \fi
+    \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+    \next}
+  \def\makelink{\addtokens{\toksB}%
+    {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0}
+  \def\pdflink#1{%
+    \startlink attr{/Border [0 0 0]} goto name{\mkpgn{#1}}
+    \linkcolor #1\endlink}
+  address@hidden 
+  \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st}
+\fi % \ifx\pdfoutput
+
+
 \message{fonts,}
 % Font-change commands.
 
@@ -1190,23 +1129,17 @@ where each line of input produces a line of output.}
 \setfont\deftt\ttshape{10}{\magstep1}
 \def\df{\let\tentt=\deftt \let\tenbf = \defbf \bf}
 
-% Fonts for indices and small examples (9pt).
-% We actually use the slanted font rather than the italic,
-% because texinfo normally uses the slanted fonts for that.
-% Do not make many font distinctions in general in the index, since they
-% aren't very useful.
-\setfont\ninett\ttshape{9}{1000}
-\setfont\ninettsl\ttslshape{10}{900}
-\setfont\indrm\rmshape{9}{1000}
-\setfont\indit\itshape{9}{1000}
-\setfont\indsl\slshape{9}{1000}
-\let\indtt=\ninett
-\let\indttsl=\ninettsl
-\let\indsf=\indrm
-\let\indbf=\indrm
-\setfont\indsc\scshape{10}{900}
-\font\indi=cmmi9
-\font\indsy=cmsy9
+% Fonts for indices, footnotes, small examples (9pt).
+\setfont\smallrm\rmshape{9}{1000}
+\setfont\smalltt\ttshape{9}{1000}
+\setfont\smallbf\bfshape{10}{900}
+\setfont\smallit\itshape{9}{1000}
+\setfont\smallsl\slshape{9}{1000}
+\setfont\smallsf\sfshape{9}{1000}
+\setfont\smallsc\scshape{10}{900}
+\setfont\smallttsl\ttslshape{10}{900}
+\font\smalli=cmmi9
+\font\smallsy=cmsy9
 
 % Fonts for title page:
 \setfont\titlerm\rmbshape{12}{\magstep3}
@@ -1320,11 +1253,12 @@ where each line of input produces a line of output.}
   \let\tensf=\ssecsf \let\teni=\sseci \let\tensy=\ssecsy \let\tenttsl=\ssecttsl
   \resetmathfonts \setleading{15pt}}
 \let\subsubsecfonts = \subsecfonts % Maybe make sssec fonts scaled magstephalf?
-\def\indexfonts{%
-  \let\tenrm=\indrm \let\tenit=\indit \let\tensl=\indsl
-  \let\tenbf=\indbf \let\tentt=\indtt \let\smallcaps=\indsc
-  \let\tensf=\indsf \let\teni=\indi \let\tensy=\indsy \let\tenttsl=\indttsl
-  \resetmathfonts \setleading{12pt}}
+\def\smallfonts{%
+  \let\tenrm=\smallrm \let\tenit=\smallit \let\tensl=\smallsl
+  \let\tenbf=\smallbf \let\tentt=\smalltt \let\smallcaps=\smallsc
+  \let\tensf=\smallsf \let\teni=\smalli \let\tensy=\smallsy
+  \let\tenttsl=\smallttsl
+  \resetmathfonts \setleading{11pt}}
 
 % Set up the default fonts, so we can use them for creating boxes.
 %
@@ -1373,9 +1307,9 @@ where each line of input produces a line of output.}
 }
 \let\ttfont=\t
 \def\samp#1{`\tclose{#1}'\null}
-\setfont\smallrm\rmshape{8}{1000}
-\font\smallsy=cmsy9
-\def\key#1{{\smallrm\textfont2=\smallsy \leavevmode\hbox{%
+\setfont\keyrm\rmshape{8}{1000}
+\font\keysy=cmsy9
+\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{%
   \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{%
     \vbox{\hrule\kern-0.4pt
      \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}%
@@ -1479,24 +1413,50 @@ where each line of input produces a line of output.}
 \let\env=\code
 \let\command=\code
 
-% @uref (abbreviation for `urlref') takes an optional second argument
-% specifying the text to display.  First (mandatory) arg is the url.
-% Perhaps eventually put in a hypertex \special here.
-% 
-\def\uref#1{\urefxxx #1,,\finish}
-\def\urefxxx#1,#2,#3\finish{%
-  \setbox0 = \hbox{\ignorespaces #2}%
+% @uref (abbreviation for `urlref') takes an optional (comma-separated)
+% second argument specifying the text to display and an optional third
+% arg as text to display instead of (rather than in addition to) the url
+% itself.  First (mandatory) arg is the url.  Perhaps eventually put in
+% a hypertex \special here.
+%
+\def\uref#1{\douref #1,,,\finish}
+\def\douref#1,#2,#3,#4\finish{\begingroup
+  \unsepspaces
+  \pdfurl{#1}%
+  \setbox0 = \hbox{\ignorespaces #3}%
   \ifdim\wd0 > 0pt
-    \unhbox0\ (\code{#1})%
+    \unhbox0 % third arg given, show only that
   \else
-    \code{#1}%
+    \setbox0 = \hbox{\ignorespaces #2}%
+    \ifdim\wd0 > 0pt
+      \ifpdf
+        \unhbox0             % PDF: 2nd arg given, show only it
+      \else
+        \unhbox0\ (\code{#1})% DVI: 2nd arg given, show both it and url
+      \fi
+    \else
+      \code{#1}% only url given, so show it
+    \fi
   \fi
-}
+  \endlink
+\endgroup}
 
-% rms does not like the angle brackets --karl, 17may97.
-% So now @email is just like @uref.
+% rms does not like angle brackets --karl, 17may97.
+% So now @email is just like @uref, unless we are pdf.
+% 
 %\def\email#1{\angleleft{\tt #1}\angleright}
-\let\email=\uref
+\ifpdf
+  \def\email#1{\doemail#1,,\finish}
+  \def\doemail#1,#2,#3\finish{\begingroup
+    \unsepspaces
+    \pdfurl{mailto:#1}%
+    \setbox0 = \hbox{\ignorespaces #2}%
+    \ifdim\wd0>0pt\unhbox0\else\code{#1}\fi
+    \endlink
+  \endgroup}
+\else
+  \let\email=\uref
+\fi
 
 % Check if we are currently using a typewriter font.  Since all the
 % Computer Modern typewriter fonts have zero interword stretch (and
@@ -1540,7 +1500,7 @@ where each line of input produces a line of output.}
 
 % Do an implicit @contents or @shortcontents after @end titlepage if the
 % user says @setcontentsaftertitlepage or @setshortcontentsaftertitlepage.
-% 
+%
 \newif\ifsetcontentsaftertitlepage
  \let\setcontentsaftertitlepage = \setcontentsaftertitlepagetrue
 \newif\ifsetshortcontentsaftertitlepage
@@ -1615,6 +1575,8 @@ where each line of input produces a line of output.}
      \global\let\shortcontents = \relax
    \fi
    %
+   \ifpdf \pdfmakepagedesttrue \fi
+   %
    \HEADINGSon
 }
 
@@ -1748,23 +1710,23 @@ where each line of input produces a line of output.}
 }
 
 % Subroutines used in generating headings
-% Produces Day Month Year style of output.
-\def\today{\number\day\space
-\ifcase\month\or
-January\or February\or March\or April\or May\or June\or
-July\or August\or September\or October\or November\or December\fi
-\space\number\year}
-
-% Use this if you want the Month Day, Year style of output.
-%\def\today{\ifcase\month\or
-%January\or February\or March\or April\or May\or June\or
-%July\or August\or September\or October\or November\or December\fi
-%\space\number\day, \number\year}
-
-% @settitle line...  specifies the title of the document, for headings
-% It generates no output of its own
-
-\def\thistitle{No Title}
+% This produces Day Month Year style of output.
+% Only define if not already defined, in case a txi-??.tex file has set
+% up a different format (e.g., txi-cs.tex does this).
+\ifx\today\undefined
+\def\today{%
+  \number\day\space
+  \ifcase\month
+  \or\putwordMJan\or\putwordMFeb\or\putwordMMar\or\putwordMApr
+  \or\putwordMMay\or\putwordMJun\or\putwordMJul\or\putwordMAug
+  \or\putwordMSep\or\putwordMOct\or\putwordMNov\or\putwordMDec
+  \fi
+  \space\number\year}
+\fi
+
+% @settitle line...  specifies the title of the document, for headings.
+% It generates no output of its own.
+\def\thistitle{\putwordNoTitle}
 \def\settitle{\parsearg\settitlezzz}
 \def\settitlezzz #1{\gdef\thistitle{#1}}
 
@@ -1841,7 +1803,7 @@ July\or August\or September\or October\or November\or 
December\fi
     \itemxneedsnegativevskipfalse
   \else
     % The item text fits into the space.  Start a paragraph, so that the
-    % following text (if any) will end up on the same line.  
+    % following text (if any) will end up on the same line.
     \noindent
     % Do this with kerns and \unhbox so that if there is a footnote in
     % the item text, it can migrate to the main vertical list and
@@ -2138,7 +2100,7 @@ July\or August\or September\or October\or November\or 
December\fi
 \multitablelinespace=0pt
 
 % Macros used to set up halign preamble:
-% 
+%
 \let\endsetuptable\relax
 \def\xendsetuptable{\endsetuptable}
 \let\columnfractions\relax
@@ -2184,10 +2146,11 @@ July\or August\or September\or October\or November\or 
December\fi
   \go
 }
 
-% multitable syntax
-\def\tab{&\hskip1sp\relax} % 2/2/96
-                           % tiny skip here makes sure this column space is
-                           % maintained, even if it is never used.
+% This used to have \hskip1sp.  But then the space in a template line is
+% not enough.  That is bad.  So let's go back to just & until we
+% encounter the problem it was intended to solve again.
+% --karl, address@hidden, 20apr99.
+\def\tab{&}
 
 % @multitable ... @end multitable definitions:
 %
@@ -2229,15 +2192,15 @@ July\or August\or September\or October\or November\or 
December\fi
   % In order to keep entries from bumping into each other
   % we will add a \leftskip of \multitablecolspace to all columns after
   % the first one.
-  % 
+  %
   % If a template has been used, we will add \multitablecolspace
   % to the width of each template entry.
-  % 
+  %
   % If the user has set preamble in terms of percent of \hsize we will
   % use that dimension as the width of the column, and the \leftskip
   % will keep entries from bumping into each other.  Table will start at
   % left margin and final column will justify at right margin.
-  % 
+  %
   % Make sure we don't inherit \rightskip from the outer environment.
   \rightskip=0pt
   \ifnum\colcount=1
@@ -2268,15 +2231,18 @@ July\or August\or September\or October\or November\or 
December\fi
 % If so, do nothing. If not, give it an appropriate dimension based on
 % current baselineskip.
 \ifdim\multitablelinespace=0pt
+\setbox0=\vbox{X}\global\multitablelinespace=\the\baselineskip
+\global\advance\multitablelinespace by-\ht0
 %% strut to put in table in case some entry doesn't have descenders,
 %% to keep lines equally spaced
 \let\multistrut = \strut
-%% Test to see if parskip is larger than space between lines of
-%% table. If not, do nothing.
-%%        If so, set to same dimension as multitablelinespace.
 \else
+%% FIXME: what is \box0 supposed to be?
 \gdef\multistrut{\vrule height\multitablelinespace depth\dp0
 width0pt\relax} \fi
+%% Test to see if parskip is larger than space between lines of
+%% table. If not, do nothing.
+%%        If so, set to same dimension as multitablelinespace.
 \ifdim\multitableparskip>\multitablelinespace
 \global\multitableparskip=\multitablelinespace
 \global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller
@@ -2289,6 +2255,356 @@ width0pt\relax} \fi
 \fi}
 
 
+\message{conditionals,}
+% Prevent errors for section commands.
+% Used in @ignore and in failing conditionals.
+\def\ignoresections{%
+  \let\chapter=\relax
+  \let\unnumbered=\relax
+  \let\top=\relax
+  \let\unnumberedsec=\relax
+  \let\unnumberedsection=\relax
+  \let\unnumberedsubsec=\relax
+  \let\unnumberedsubsection=\relax
+  \let\unnumberedsubsubsec=\relax
+  \let\unnumberedsubsubsection=\relax
+  \let\section=\relax
+  \let\subsec=\relax
+  \let\subsubsec=\relax
+  \let\subsection=\relax
+  \let\subsubsection=\relax
+  \let\appendix=\relax
+  \let\appendixsec=\relax
+  \let\appendixsection=\relax
+  \let\appendixsubsec=\relax
+  \let\appendixsubsection=\relax
+  \let\appendixsubsubsec=\relax
+  \let\appendixsubsubsection=\relax
+  \let\contents=\relax
+  \let\smallbook=\relax
+  \let\titlepage=\relax
+}
+
+% Used in nested conditionals, where we have to parse the Texinfo source
+% and so want to turn off most commands, in case they are used
+% incorrectly.
+%
+\def\ignoremorecommands{%
+  \let\defcodeindex = \relax
+  \let\defcv = \relax
+  \let\deffn = \relax
+  \let\deffnx = \relax
+  \let\defindex = \relax
+  \let\defivar = \relax
+  \let\defmac = \relax
+  \let\defmethod = \relax
+  \let\defop = \relax
+  \let\defopt = \relax
+  \let\defspec = \relax
+  \let\deftp = \relax
+  \let\deftypefn = \relax
+  \let\deftypefun = \relax
+  \let\deftypeivar = \relax
+  \let\deftypeop = \relax
+  \let\deftypevar = \relax
+  \let\deftypevr = \relax
+  \let\defun = \relax
+  \let\defvar = \relax
+  \let\defvr = \relax
+  \let\ref = \relax
+  \let\xref = \relax
+  \let\printindex = \relax
+  \let\pxref = \relax
+  \let\settitle = \relax
+  \let\setchapternewpage = \relax
+  \let\setchapterstyle = \relax
+  \let\everyheading = \relax
+  \let\evenheading = \relax
+  \let\oddheading = \relax
+  \let\everyfooting = \relax
+  \let\evenfooting = \relax
+  \let\oddfooting = \relax
+  \let\headings = \relax
+  \let\include = \relax
+  \let\lowersections = \relax
+  \let\down = \relax
+  \let\raisesections = \relax
+  \let\up = \relax
+  \let\set = \relax
+  \let\clear = \relax
+  \let\item = \relax
+}
+
+% Ignore @ignore ... @end ignore.
+%
+\def\ignore{\doignore{ignore}}
+
+% Ignore @ifinfo, @ifhtml, @ifnottex, @html, @menu, and @direntry text.
+%
+\def\ifinfo{\doignore{ifinfo}}
+\def\ifhtml{\doignore{ifhtml}}
+\def\ifnottex{\doignore{ifnottex}}
+\def\html{\doignore{html}}
+\def\menu{\doignore{menu}}
+\def\direntry{\doignore{direntry}}
+
+% @dircategory CATEGORY  -- specify a category of the dir file
+% which this file should belong to.  Ignore this in TeX.
+\let\dircategory = \comment
+
+% Ignore text until a line address@hidden #1'.
+%
+\def\doignore#1{\begingroup
+  % Don't complain about control sequences we have declared \outer.
+  \ignoresections
+  %
+  % Define a command to swallow text until we reach address@hidden #1'.
+  % This @ is a catcode 12 token (that is the normal catcode of @ in
+  % this texinfo.tex file).  We change the catcode of @ below to match.
+  address@hidden #1{\enddoignore}%
+  %
+  % Make sure that spaces turn into tokens that match what \doignoretext wants.
+  \catcode32 = 10
+  %
+  % Ignore braces, too, so mismatched braces don't cause trouble.
+  \catcode`\{ = 9
+  \catcode`\} = 9
+  %
+  % We must not have @c interpreted as a control sequence.
+  \catcode`\@ = 12
+  %
+  % Make the letter c a comment character so that the rest of the line
+  % will be ignored. This way, the document can have (for example)
+  %   @c @end ifinfo
+  % and the @end ifinfo will be properly ignored.
+  % (We've just changed @ to catcode 12.)
+  \catcode`\c = 14
+  %
+  % And now expand that command.
+  \doignoretext
+}
+
+% What we do to finish off ignored text.
+%
+\def\enddoignore{\endgroup\ignorespaces}%
+
+\newif\ifwarnedobs\warnedobsfalse
+\def\obstexwarn{%
+  \ifwarnedobs\relax\else
+  % We need to warn folks that they may have trouble with TeX 3.0.
+  % This uses \immediate\write16 rather than \message to get newlines.
+    \immediate\write16{}
+    \immediate\write16{WARNING: for users of Unix TeX 3.0!}
+    \immediate\write16{This manual trips a bug in TeX version 3.0 (tex hangs).}
+    \immediate\write16{If you are running another version of TeX, relax.}
+    \immediate\write16{If you are running Unix TeX 3.0, kill this TeX process.}
+    \immediate\write16{  Then upgrade your TeX installation if you can.}
+    \immediate\write16{  (See ftp://ftp.gnu.org/pub/gnu/TeX.README.)}
+    \immediate\write16{If you are stuck with version 3.0, run the}
+    \immediate\write16{  script ``tex3patch'' from the Texinfo distribution}
+    \immediate\write16{  to use a workaround.}
+    \immediate\write16{}
+    \global\warnedobstrue
+    \fi
+}
+
+% **In TeX 3.0, setting text in \nullfont hangs tex.  For a
+% workaround (which requires the file ``dummy.tfm'' to be installed),
+% uncomment the following line:
+%%%%%\font\nullfont=dummy\let\obstexwarn=\relax
+
+% Ignore text, except that we keep track of conditional commands for
+% purposes of nesting, up to an address@hidden #1' command.
+%
+\def\nestedignore#1{%
+  \obstexwarn
+  % We must actually expand the ignored text to look for the @end
+  % command, so that nested ignore constructs work.  Thus, we put the
+  % text into a \vbox and then do nothing with the result.  To minimize
+  % the change of memory overflow, we follow the approach outlined on
+  % page 401 of the TeXbook: make the current font be a dummy font.
+  %
+  \setbox0 = \vbox\bgroup
+    % Don't complain about control sequences we have declared \outer.
+    \ignoresections
+    %
+    % Define address@hidden #1' to end the box, which will in turn undefine the
+    % @end command again.
+    \expandafter\def\csname E#1\endcsname{\egroup\ignorespaces}%
+    %
+    % We are going to be parsing Texinfo commands.  Most cause no
+    % trouble when they are used incorrectly, but some commands do
+    % complicated argument parsing or otherwise get confused, so we
+    % undefine them.
+    %
+    % We can't do anything about stray @-signs, unfortunately;
+    % they'll produce `undefined control sequence' errors.
+    \ignoremorecommands
+    %
+    % Set the current font to be \nullfont, a TeX primitive, and define
+    % all the font commands to also use \nullfont.  We don't use
+    % dummy.tfm, as suggested in the TeXbook, because not all sites
+    % might have that installed.  Therefore, math mode will still
+    % produce output, but that should be an extremely small amount of
+    % stuff compared to the main input.
+    %
+    \nullfont
+    \let\tenrm=\nullfont \let\tenit=\nullfont \let\tensl=\nullfont
+    \let\tenbf=\nullfont \let\tentt=\nullfont \let\smallcaps=\nullfont
+    \let\tensf=\nullfont
+    % Similarly for index fonts (mostly for their use in smallexample).
+    \let\smallrm=\nullfont \let\smallit=\nullfont \let\smallsl=\nullfont
+    \let\smallbf=\nullfont \let\smalltt=\nullfont \let\smallsc=\nullfont
+    \let\smallsf=\nullfont
+    %
+    % Don't complain when characters are missing from the fonts.
+    \tracinglostchars = 0
+    %
+    % Don't bother to do space factor calculations.
+    \frenchspacing
+    %
+    % Don't report underfull hboxes.
+    \hbadness = 10000
+    %
+    % Do minimal line-breaking.
+    \pretolerance = 10000
+    %
+    % Do not execute instructions in @tex
+    \def\tex{\doignore{tex}}%
+    % Do not execute macro definitions.
+    % `c' is a comment character, so the word `macro' will get cut off.
+    \def\macro{\doignore{ma}}%
+}
+
+% @set VAR sets the variable VAR to an empty value.
+% @set VAR REST-OF-LINE sets VAR to the value REST-OF-LINE.
+%
+% Since we want to separate VAR from REST-OF-LINE (which might be
+% empty), we can't just use \parsearg; we have to insert a space of our
+% own to delimit the rest of the line, and then take it out again if we
+% didn't need it.  Make sure the catcode of space is correct to avoid
+% losing inside @example, for instance.
+%
+\def\set{\begingroup\catcode` =10
+  \catcode`\-=12 \catcode`\_=12 % Allow - and _ in VAR.
+  \parsearg\setxxx}
+\def\setxxx#1{\setyyy#1 \endsetyyy}
+\def\setyyy#1 #2\endsetyyy{%
+  \def\temp{#2}%
+  \ifx\temp\empty \global\expandafter\let\csname SET#1\endcsname = \empty
+  \else \setzzz{#1}#2\endsetzzz % Remove the trailing space \setxxx inserted.
+  \fi
+  \endgroup
+}
+% Can't use \xdef to pre-expand #2 and save some time, since \temp or
+% \next or other control sequences that we've defined might get us into
+% an infinite loop. Consider address@hidden foo @cite{bar}'.
+\def\setzzz#1#2 \endsetzzz{\expandafter\gdef\csname SET#1\endcsname{#2}}
+
+% @clear VAR clears (i.e., unsets) the variable VAR.
+%
+\def\clear{\parsearg\clearxxx}
+\def\clearxxx#1{\global\expandafter\let\csname SET#1\endcsname=\relax}
+
+% @value{foo} gets the text saved in variable foo.
+{
+  \catcode`\_ = \active
+  %
+  % We might end up with active _ or - characters in the argument if
+  % we're called from @code, as @address@hidden  So \let any
+  % such active characters to their normal equivalents.
+  \gdef\value{\begingroup
+    \catcode`\-=12 \catcode`\_=12
+    \indexbreaks \let_\normalunderscore
+    \valuexxx}
+}
+\def\valuexxx#1{\expandablevalue{#1}\endgroup}
+
+% We have this subroutine so that we can handle at least some @value's
+% properly in indexes (we \let\value to this in \indexdummies).  Ones
+% whose names contain - or _ still won't work, but we can't do anything
+% about that.  The command has to be fully expandable, since the result
+% winds up in the index file.  This means that if the variable's value
+% contains other Texinfo commands, it's almost certain it will fail
+% (although perhaps we could fix that with sufficient work to do a
+% one-level expansion on the result, instead of complete).
+%
+\def\expandablevalue#1{%
+  \expandafter\ifx\csname SET#1\endcsname\relax
+    {[No value for ``#1'']}%
+  \else
+    \csname SET#1\endcsname
+  \fi
+}
+
+% @ifset VAR ... @end ifset reads the `...' iff VAR has been defined
+% with @set.
+%
+\def\ifset{\parsearg\ifsetxxx}
+\def\ifsetxxx #1{%
+  \expandafter\ifx\csname SET#1\endcsname\relax
+    \expandafter\ifsetfail
+  \else
+    \expandafter\ifsetsucceed
+  \fi
+}
+\def\ifsetsucceed{\conditionalsucceed{ifset}}
+\def\ifsetfail{\nestedignore{ifset}}
+\defineunmatchedend{ifset}
+
+% @ifclear VAR ... @end ifclear reads the `...' iff VAR has never been
+% defined with @set, or has been undefined with @clear.
+%
+\def\ifclear{\parsearg\ifclearxxx}
+\def\ifclearxxx #1{%
+  \expandafter\ifx\csname SET#1\endcsname\relax
+    \expandafter\ifclearsucceed
+  \else
+    \expandafter\ifclearfail
+  \fi
+}
+\def\ifclearsucceed{\conditionalsucceed{ifclear}}
+\def\ifclearfail{\nestedignore{ifclear}}
+\defineunmatchedend{ifclear}
+
+% @iftex, @ifnothtml, @ifnotinfo always succeed; we read the text
+% following, through the first @end iftex (etc.).  Make address@hidden iftex'
+% (etc.) valid only after an @iftex.
+%
+\def\iftex{\conditionalsucceed{iftex}}
+\def\ifnothtml{\conditionalsucceed{ifnothtml}}
+\def\ifnotinfo{\conditionalsucceed{ifnotinfo}}
+\defineunmatchedend{iftex}
+\defineunmatchedend{ifnothtml}
+\defineunmatchedend{ifnotinfo}
+
+% We can't just want to start a group at @iftex (for example) and end it
+% at @end iftex, since then @set commands inside the conditional have no
+% effect (they'd get reverted at the end of the group).  So we must
+% define \Eiftex to redefine itself to be its previous value.  (We can't
+% just define it to fail again with an ``unmatched end'' error, since
+% the @ifset might be nested.)
+%
+\def\conditionalsucceed#1{%
+  \edef\temp{%
+    % Remember the current value of \E#1.
+    \let\nece{prevE#1} = \nece{E#1}%
+    %
+    % At the address@hidden #1', redefine \E#1 to be its previous value.
+    \def\nece{E#1}{\let\nece{E#1} = \nece{prevE#1}}%
+  }%
+  \temp
+}
+
+% We need to expand lots of \csname's, but we don't want to expand the
+% control sequences after we've constructed them.
+%
+\def\nece#1{\expandafter\noexpand\csname#1\endcsname}
+
+% @defininfoenclose.
+\let\definfoenclose=\comment
+
+
 \message{indexing,}
 % Index generation facilities
 
@@ -2315,42 +2631,48 @@ width0pt\relax} \fi
 }
 
 % @defindex foo  ==  \newindex{foo}
-
+%
 \def\defindex{\parsearg\newindex}
 
 % Define @defcodeindex, like @defindex except put all entries in @code.
-
+%
+\def\defcodeindex{\parsearg\newcodeindex}
+%
 \def\newcodeindex#1{%
   \iflinks
     \expandafter\newwrite \csname#1indfile\endcsname
     \openout \csname#1indfile\endcsname \jobname.#1
   \fi
   \expandafter\xdef\csname#1index\endcsname{%
-    \noexpand\docodeindex{#1}}
+    \noexpand\docodeindex{#1}}%
 }
 
-\def\defcodeindex{\parsearg\newcodeindex}
 
 % @synindex foo bar    makes index foo feed into index bar.
 % Do this instead of @defindex foo if you don't want it as a separate index.
-% The \closeout helps reduce unnecessary open files; the limit on the
-% Acorn RISC OS is a mere 16 files.
-\def\synindex#1 #2 {%
-  
\expandafter\let\expandafter\synindexfoo\expandafter=\csname#2indfile\endcsname
-  \expandafter\closeout\csname#1indfile\endcsname
-  \expandafter\let\csname#1indfile\endcsname=\synindexfoo
-  \expandafter\xdef\csname#1index\endcsname{% define \xxxindex
-    \noexpand\doindex{#2}}%
-}
-
+% 
 % @syncodeindex foo bar   similar, but put all entries made for index foo
 % inside @code.
-\def\syncodeindex#1 #2 {%
-  
\expandafter\let\expandafter\synindexfoo\expandafter=\csname#2indfile\endcsname
-  \expandafter\closeout\csname#1indfile\endcsname
-  \expandafter\let\csname#1indfile\endcsname=\synindexfoo
-  \expandafter\xdef\csname#1index\endcsname{% define \xxxindex
-    \noexpand\docodeindex{#2}}%
+% 
+\def\synindex#1 #2 {\dosynindex\doindex{#1}{#2}}
+\def\syncodeindex#1 #2 {\dosynindex\docodeindex{#1}{#2}}
+
+% #1 is \doindex or \docodeindex, #2 the index getting redefined (foo),
+% #3 the target index (bar).
+\def\dosynindex#1#2#3{%
+  % Only do \closeout if we haven't already done it, else we'll end up
+  % closing the target index.
+  \expandafter \ifx\csname donesynindex#2\endcsname \undefined
+    % The \closeout helps reduce unnecessary open files; the limit on the
+    % Acorn RISC OS is a mere 16 files.
+    \expandafter\closeout\csname#2indfile\endcsname
+    \expandafter\let\csname\donesynindex#2\endcsname = 1
+  \fi
+  % redefine \fooindfile:
+  \expandafter\let\expandafter\temp\expandafter=\csname#3indfile\endcsname
+  \expandafter\let\csname#2indfile\endcsname=\temp
+  % redefine \fooindex:
+  \expandafter\xdef\csname#2index\endcsname{\noexpand#1{#3}}%
 }
 
 % Define \doindex, the driver for all \fooindex macros.
@@ -2403,7 +2725,7 @@ width0pt\relax} \fi
 address@hidden@}% will be @@ when we switch to @ as escape char.
 % Need these in case \tex is in effect and \{ is a \delimiter again.
 % But can't use \lbracecmd and \rbracecmd because texindex assumes
-% braces and backslashes are used only as delimiters.
+% braces and backslashes are used only as delimiters.  
 \let\{ = \mylbrace
 \let\} = \myrbrace
 \def\_{{\realbackslash _}}%
@@ -2455,6 +2777,8 @@ width0pt\relax} \fi
 \let\value = \expandablevalue
 %
 \unsepspaces
+% Turn off macro expansion
+\turnoffmacros
 }
 
 % If an index command is used in an @example environment, any spaces
@@ -2514,6 +2838,7 @@ width0pt\relax} \fi
 \let\url=\indexdummyfont
 \let\uref=\indexdummyfont
 \let\env=\indexdummyfont
+\let\acronym=\indexdummyfont
 \let\command=\indexdummyfont
 \let\option=\indexdummyfont
 \let\file=\indexdummyfont
@@ -2540,14 +2865,14 @@ width0pt\relax} \fi
 \def\emptymacro{\empty}
 
 % Most index entries go through here, but \dosubind is the general case.
-% 
+%
 \def\doind#1#2{\dosubind{#1}{#2}\empty}
 
 % Workhorse for all \fooindexes.
 % #1 is name of index, #2 is stuff to put there, #3 is subentry --
 % \empty if called from \doind, as we usually are.  The main exception
 % is with defuns, which call us directly.
-% 
+%
 \def\dosubind#1#2#3{%
   % Put the index entry in the margin if desired.
   \ifx\SETmarginindex\relax\else
@@ -2572,24 +2897,28 @@ width0pt\relax} \fi
           \def\subentry{ #3}%
         \fi
         %
-        % First process the index-string with all font commands turned off
-        % to get the string to sort by.
+        % First process the index entry with all font commands turned
+        % off to get the string to sort by.
         {\indexnofonts \xdef\indexsorttmp{#2\subentry}}%
         %
-        % Now produce the complete index entry, with both the sort key and the
-        % original text, including any font commands.
+        % Now the real index entry with the fonts.
         \toks0 = {#2}%
+        %
+        % If third (subentry) arg is present, add it to the index
+        % string.  And include a space.
+        \ifx\thirdarg\emptymacro \else
+          \toks0 = \expandafter{\the\toks0 \space #3}%
+        \fi
+        %
+        % Set up the complete index entry, with both the sort key
+        % and the original text, including any font commands.  We write
+        % three arguments to \entry to the .?? file, texindex reduces to
+        % two when writing the .??s sorted result.
         \edef\temp{%
           \write\csname#1indfile\endcsname{%
             \realbackslash entry{\indexsorttmp}{\folio}{\the\toks0}}%
         }%
         %
-        % If third (subentry) arg is present, add it to the index string.
-        \ifx\thirdarg\emptymacro \else
-          \toks0 = {#3}%
-          \edef\temp{\temp{\the\toks0}}%
-        \fi
-        %
         % If a skip is the last thing on the list now, preserve it
         % by backing up by \lastskip, doing the \write, then inserting
         % the skip again.  Otherwise, the whatsit generated by the
@@ -2601,12 +2930,12 @@ width0pt\relax} \fi
         % will have extra space inserted, because the \medbreak in the
         % start of the @defun won't see the skip inserted by the @end of
         % the previous defun.
-        % 
+        %
         % But don't do any of this if we're not in vertical mode.  We
         % don't want to do a \vskip and prematurely end a paragraph.
-        % 
+        %
         % Avoid page breaks due to these extra skips, too.
-        % 
+        %
         \iflinks
           \ifvmode
             \skip0 = \lastskip
@@ -2615,7 +2944,7 @@ width0pt\relax} \fi
           %
           \temp % do the write
           %
-          % 
+          %
           \ifvmode \ifdim\skip0 = 0pt \else \nobreak\vskip\skip0 \fi \fi
         \fi
       }%
@@ -2663,7 +2992,7 @@ width0pt\relax} \fi
 \def\doprintindex#1{\begingroup
   \dobreak \chapheadingskip{10000}%
   %
-  \indexfonts \rm
+  \smallfonts \rm
   \tolerance = 9500
   \indexbreaks
   %
@@ -2679,7 +3008,7 @@ width0pt\relax} \fi
     % and it loses the chapter title and the aux file entries for the
     % index.  The easiest way to prevent this problem is to make sure
     % there is some text.
-    (Index is nonexistent)
+    \putwordIndexNonexistent
   \else
     %
     % If the index file exists but is empty, then \openin leaves \ifeof
@@ -2687,7 +3016,7 @@ width0pt\relax} \fi
     % it can discover if there is anything in it.
     \read 1 to \temp
     \ifeof 1
-      (Index is empty)
+      \putwordIndexIsEmpty
     \else
       % Index files are almost Texinfo source, but we use \ as the escape
       % character.  It would be better to use @, but that's too big a change
@@ -2712,7 +3041,7 @@ width0pt\relax} \fi
   %
   % Remove any glue we may have, we'll be inserting our own.
   \removelastskip
-  % 
+  %
   % We like breaks before the index initials, so insert a bonus.
   \penalty -300
   %
@@ -2720,7 +3049,7 @@ width0pt\relax} \fi
   % baselineskips increases the chance of the dots lining up from column
   % to column.  It still won't often be perfect, because of the stretch
   % we need before each entry, but it's better.
-  % 
+  %
   % No shrink because it confuses \balancecolumns.
   \vskip 1.67\baselineskip plus .5\baselineskip
   \leftline{\secbf #1}%
@@ -2790,7 +3119,11 @@ width0pt\relax} \fi
     % The `\ ' here is removed by the implicit \unskip that TeX does as
     % part of (the primitive) \par.  Without it, a spurious underfull
     % \hbox ensues.
-    \ #2% The page number ends the paragraph.
+    \ifpdf
+      \pdfgettoks#2.\ \the\toksA % The page number ends the paragraph.
+    \else
+      \ #2% The page number ends the paragraph.
+    \fi
   \fi%
   \par
 \endgroup}
@@ -2819,23 +3152,25 @@ width0pt\relax} \fi
 
 \def\begindoublecolumns{\begingroup % ended by \enddoublecolumns
   % Grab any single-column material above us.
-  \output = {\global\setbox\partialpage = \vbox{%
-    % 
+  \output = {%
+    %
     % Here is a possibility not foreseen in manmac: if we accumulate a
     % whole lot of material, we might end up calling this \output
     % routine twice in a row (see the doublecol-lose test, which is
     % essentially a couple of indexes with @setchapternewpage off).  In
-    % that case, we must prevent the second \partialpage from
-    % simply overwriting the first, causing us to lose the page.
-    % This will preserve it until a real output routine can ship it
-    % out.  Generally, \partialpage will be empty when this runs and
-    % this will be a no-op.
-    \unvbox\partialpage
+    % that case we just ship out what is in \partialpage with the normal
+    % output routine.  Generally, \partialpage will be empty when this
+    % runs and this will be a no-op.  See the indexspread.tex test case.
+    \ifvoid\partialpage \else
+      \onepageout{\pagecontents\partialpage}%
+    \fi
     %
-    % Unvbox the main output page.
-    \unvbox255
-    \kern-\topskip \kern\baselineskip
-  }}%
+    \global\setbox\partialpage = \vbox{%
+      % Unvbox the main output page.
+      \unvbox\PAGE
+      \kern-\topskip \kern\baselineskip
+    }%
+  }%
   \eject % run that output routine to set \partialpage
   %
   % Use the double-column output routine for subsequent pages.
@@ -2864,13 +3199,12 @@ width0pt\relax} \fi
   %
   % Double the \vsize as well.  (We don't need a separate register here,
   % since nobody clobbers \vsize.)
-  \advance\vsize by -\ht\partialpage
   \vsize = 2\vsize
 }
 
 % The double-column output routine for all double-column pages except
 % the last.
-% 
+%
 \def\doublecolumnout{%
   \splittopskip=\topskip \splitmaxdepth=\maxdepth
   % Get the available space for the double columns -- the normal
@@ -2878,6 +3212,7 @@ width0pt\relax} \fi
   % previous page.
   \dimen@ = \vsize
   \divide\dimen@ by 2
+  \advance\dimen@ by -\ht\partialpage
   %
   % box0 will be the left-hand column, box2 the right.
   \setbox0=\vsplit255 to\dimen@ \setbox2=\vsplit255 to\dimen@
@@ -2885,16 +3220,18 @@ width0pt\relax} \fi
   \unvbox255
   \penalty\outputpenalty
 }
+%
+% Re-output the contents of the output page -- any previous material,
+% followed by the two boxes we just split, in box0 and box2.
 \def\pagesofar{%
-  % Re-output the contents of the output page -- any previous material,
-  % followed by the two boxes we just split, in box0 and box2.
-  \advance\vsize by \ht\partialpage
   \unvbox\partialpage
   %
   \hsize = \doublecolumnhsize
   \wd0=\hsize \wd2=\hsize
   \hbox to\pagewidth{\box0\hfil\box2}%
 }
+% 
+% All done with double columns.
 \def\enddoublecolumns{%
   \output = {%
     % Split the last of the double-column material.  Leave it on the
@@ -2919,8 +3256,9 @@ width0pt\relax} \fi
   % \endgroup where \vsize got restored).
   \pagegoal = \vsize
 }
+%
+% Called at the end of the double column material.
 \def\balancecolumns{%
-  % Called at the end of the double column material.
   \setbox0 = \vbox{\unvbox255}% like \box255 but more efficient, see p.120.
   \dimen@ = \ht0
   \advance\dimen@ by \topskip
@@ -2948,7 +3286,7 @@ width0pt\relax} \fi
 
 
 \message{sectioning,}
-% Define chapters, sections, etc.
+% Chapters, sections, etc.
 
 \newcount\chapno
 \newcount\secno        \secno=0
@@ -2957,7 +3295,43 @@ width0pt\relax} \fi
 
 % This counter is funny since it counts through charcodes of letters A, B, ...
 \newcount\appendixno  \appendixno = `\@
-\def\appendixletter{\char\the\appendixno}
+% \def\appendixletter{\char\the\appendixno}
+% We do the following for the sake of pdftex, which needs the actual
+% letter in the expansion, not just typeset.
+\def\appendixletter{%
+  \ifnum\appendixno=`A A%
+  \else\ifnum\appendixno=`B B%
+  \else\ifnum\appendixno=`C C%
+  \else\ifnum\appendixno=`D D%
+  \else\ifnum\appendixno=`E E%
+  \else\ifnum\appendixno=`F F%
+  \else\ifnum\appendixno=`G G%
+  \else\ifnum\appendixno=`H H%
+  \else\ifnum\appendixno=`I I%
+  \else\ifnum\appendixno=`J J%
+  \else\ifnum\appendixno=`K K%
+  \else\ifnum\appendixno=`L L%
+  \else\ifnum\appendixno=`M M%
+  \else\ifnum\appendixno=`N N%
+  \else\ifnum\appendixno=`O O%
+  \else\ifnum\appendixno=`P P%
+  \else\ifnum\appendixno=`Q Q%
+  \else\ifnum\appendixno=`R R%
+  \else\ifnum\appendixno=`S S%
+  \else\ifnum\appendixno=`T T%
+  \else\ifnum\appendixno=`U U%
+  \else\ifnum\appendixno=`V V%
+  \else\ifnum\appendixno=`W W%
+  \else\ifnum\appendixno=`X X%
+  \else\ifnum\appendixno=`Y Y%
+  \else\ifnum\appendixno=`Z Z%
+  % The \the is necessary, despite appearances, because \appendixletter is
+  % expanded while writing the .toc file.  \char\appendixno is not
+  % expandable, thus it is written literally, thus all appendixes come out
+  % with the same letter (or @) in the toc without it.
+  \else\char\the\appendixno
+  \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+  \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
 
 % Each @chapter defines this as the name of the chapter.
 % page headings and footings can use it.  @section does likewise.
@@ -3430,15 +3804,16 @@ width0pt\relax} \fi
 
 
 \message{toc,}
+% Table of contents.
 \newwrite\tocfile
 
 % Write an entry to the toc file, opening it if necessary.
 % Called from @chapter, etc.  We supply {\folio} at the end of the
 % argument, which will end up as the last argument to the \...entry macro.
-% 
+%
 % We open the .toc file here instead of at @setfilename or any other
 % given time so that @contents can be put in the document anywhere.
-% 
+%
 \newif\iftocfileopened
 \def\writetocentry#1{%
   \iftocfileopened\else
@@ -3454,7 +3829,7 @@ width0pt\relax} \fi
 
 % Finish up the main text and prepare to read what we've written
 % to \tocfile.
-% 
+%
 \def\startcontents#1{%
    % If @setchapternewpage on, and @headings double, the contents should
    % start on an odd page, unlike chapters.  Thus, we maintain
@@ -3482,13 +3857,15 @@ width0pt\relax} \fi
 
 % Normal (long) toc.
 \def\contents{%
-   \startcontents{\putwordTableofContents}%
+   \startcontents{\putwordTOC}%
      \openin 1 \jobname.toc
      \ifeof 1 \else
        \closein 1
        \input \jobname.toc
      \fi
      \vfill \eject
+     \contentsalignmacro % in case @setchapternewpage odd is in effect
+     \pdfmakeoutlines
    \endgroup
    \lastnegativepageno = \pageno
    \pageno = \savepageno
@@ -3496,7 +3873,7 @@ width0pt\relax} \fi
 
 % And just the chapters.
 \def\summarycontents{%
-   \startcontents{\putwordShortContents}%
+   \startcontents{\putwordShortTOC}%
       %
       \let\chapentry = \shortchapentry
       \let\unnumbchapentry = \shortunnumberedentry
@@ -3518,12 +3895,17 @@ width0pt\relax} \fi
         \input \jobname.toc
       \fi
      \vfill \eject
+     \contentsalignmacro % in case @setchapternewpage odd is in effect
    \endgroup
    \lastnegativepageno = \pageno
    \pageno = \savepageno
 }
 \let\shortcontents = \summarycontents
 
+\ifpdf
+  \pdfcatalog{/PageMode /UseOutlines}%
+\fi
+
 % These macros generate individual entries in the table of contents.
 % The first argument is the chapter or section name.
 % The last argument is the page number.
@@ -3534,7 +3916,7 @@ width0pt\relax} \fi
 
 % See comments in \dochapentry re vbox and related settings
 \def\shortchapentry#1#2#3{%
-  \tocentry{\shortchaplabel{#2}\labelspace #1}{\doshortpageno{#3}}%
+  \tocentry{\shortchaplabel{#2}\labelspace #1}{\doshortpageno\bgroup#3\egroup}%
 }
 
 % Typeset the label for a chapter or appendix for the short contents.
@@ -3542,10 +3924,14 @@ width0pt\relax} \fi
 % We could simplify the code here by writing out an \appendixentry
 % command in the toc file for appendices, instead of using \chapentry
 % for both, but it doesn't seem worth it.
-\setbox0 = \hbox{\shortcontrm \putwordAppendix }
-\newdimen\shortappendixwidth \shortappendixwidth = \wd0
-
+%
+\newdimen\shortappendixwidth
+%
 \def\shortchaplabel#1{%
+  % Compute width of word "Appendix", may change with language.
+  \setbox0 = \hbox{\shortcontrm \putwordAppendix}%
+  \shortappendixwidth = \wd0
+  %
   % We typeset #1 in a box of constant width, regardless of the text of
   % #1, so the chapter titles will come out aligned.
   \setbox0 = \hbox{#1}%
@@ -3560,7 +3946,7 @@ width0pt\relax} \fi
 }
 
 \def\unnumbchapentry#1#2{\dochapentry{#1}{#2}}
-\def\shortunnumberedentry#1#2{\tocentry{#1}{\doshortpageno{#2}}}
+\def\shortunnumberedentry#1#2{\tocentry{#1}{\doshortpageno\bgroup#2\egroup}}
 
 % Sections.
 \def\secentry#1#2#3#4{\dosecentry{#2.#3\labelspace#1}{#4}}
@@ -3587,24 +3973,24 @@ width0pt\relax} \fi
    \penalty-300 \vskip1\baselineskip plus.33\baselineskip minus.25\baselineskip
    \begingroup
      \chapentryfonts
-     \tocentry{#1}{\dopageno{#2}}%
+     \tocentry{#1}{\dopageno\bgroup#2\egroup}%
    \endgroup
    \nobreak\vskip .25\baselineskip plus.1\baselineskip
 }
 
 \def\dosecentry#1#2{\begingroup
   \secentryfonts \leftskip=\tocindent
-  \tocentry{#1}{\dopageno{#2}}%
+  \tocentry{#1}{\dopageno\bgroup#2\egroup}%
 \endgroup}
 
 \def\dosubsecentry#1#2{\begingroup
   \subsecentryfonts \leftskip=2\tocindent
-  \tocentry{#1}{\dopageno{#2}}%
+  \tocentry{#1}{\dopageno\bgroup#2\egroup}%
 \endgroup}
 
 \def\dosubsubsecentry#1#2{\begingroup
   \subsubsecentryfonts \leftskip=3\tocindent
-  \tocentry{#1}{\dopageno{#2}}%
+  \tocentry{#1}{\dopageno\bgroup#2\egroup}%
 \endgroup}
 
 % Final typesetting of a toc entry; we use the same \entry macro as for
@@ -3632,6 +4018,7 @@ width0pt\relax} \fi
 
 
 \message{environments,}
+% @foo ... @end foo.
 
 % Since these characters are used in examples, it should be an even number of
 % \tt widths. Each \tt character is 1en, so two makes it 1em.
@@ -3842,7 +4229,7 @@ width0pt\relax} \fi
 
 % Define the \E... control sequence only if we are inside the particular
 % environment, so the error checking in \end will work.
-% 
+%
 % To end an @example-like environment, we first end the paragraph (via
 % \afterenvbreak's vertical glue), and then the group.  That way we keep
 % the zero \parskip that the environments set -- \parskip glue will be
@@ -3867,7 +4254,7 @@ width0pt\relax} \fi
 % redefines).  We must call \example (or whatever) last in the
 % definition, since it reads the return following the @example (or
 % whatever) command.
-% 
+%
 % This actually allows (for example) @end display inside an
 % @smalldisplay.  Too bad, but makeinfo will catch the error anyway.
 %
@@ -3881,7 +4268,7 @@ width0pt\relax} \fi
 \def\smalllispx{\begingroup
   \def\Esmalllisp{\nonfillfinish\endgroup}%
   \def\Esmallexample{\nonfillfinish\endgroup}%
-  \indexfonts
+  \smallfonts
   \lisp
 }
 
@@ -3897,7 +4284,7 @@ width0pt\relax} \fi
 %
 \def\smalldisplayx{\begingroup
   \def\Esmalldisplay{\nonfillfinish\endgroup}%
-  \indexfonts \rm
+  \smallfonts \rm
   \display
 }
 
@@ -3914,7 +4301,7 @@ width0pt\relax} \fi
 %
 \def\smallformatx{\begingroup
   \def\Esmallformat{\nonfillfinish\endgroup}%
-  \indexfonts \rm
+  \smallfonts \rm
   \format
 }
 
@@ -3923,7 +4310,7 @@ width0pt\relax} \fi
 \def\flushleft{\begingroup \def\Eflushleft{\nonfillfinish\endgroup}\format}
 
 % @flushright.
-% 
+%
 \def\flushright{\begingroup
   \let\nonarrowing = t
   \nonfillstart
@@ -3932,6 +4319,7 @@ width0pt\relax} \fi
   \gobble
 }
 
+
 % @quotation does normal linebreaking (hence we can't use \nonfillstart)
 % and narrows the margins.
 %
@@ -3954,9 +4342,162 @@ width0pt\relax} \fi
 }
 
 
+% LaTeX-like @address@hidden verbatim and @verb{<char>...<char>}
+% If we want to allow any <char> as delimiter, 
+% we need the curly braces so that makeinfo sees the @verb command, eg:
+% address@hidden' would look like the '@verbx' command.  address@hidden
+%
+% [Knuth]: Donald Ervin Knuth, 1996.  The TeXbook.
+%
+% [Knuth] p. 344; only we need to do '@' too
+\def\dospecials{%
+  \do\ address@hidden&%
+  \do\#\do\^\do\^^K\do\_\do\^^A\do\%\do\~}
+%
+% [Knuth] p. 380
+\def\uncatcodespecials{%
+  \def\do##1{\catcode`##1=12}\dospecials}
+%
+% [Knuth] pp. 380,381,391
+% Disable Spanish ligatures ?` and !` of \tt font
+\begingroup
+  \catcode`\`=\active\gdef`{\relax\lq}
+\endgroup
+%
+% Setup for the @verb command.
+%
+% Eight spaces for a tab
+\begingroup
+  \catcode`\^^I=\active
+  \gdef\tabeightspaces{\catcode`\^^I=\active\def^^I{\ \ \ \ \ \ \ \ }}
+\endgroup
+%
+\def\setupverb{%
+  \tt  % easiest (and conventionally used) font for verbatim
+  \def\par{\leavevmode\endgraf}%
+  \catcode`\`=\active
+  \tabeightspaces
+  % Respect line breaks,
+  % print special symbols as themselves, and
+  % make each space count
+  % must do in this order:
+  \obeylines \uncatcodespecials \sepspaces
+}
+
+% Setup for the @verbatim environment
+%
+% Real tab expansion
+\newdimen\tabw \setbox0=\hbox{\tt\space} \tabw=8\wd0 % tab amount
+%
+\def\starttabbox{\setbox0=\hbox\bgroup}
+\begingroup
+  \catcode`\^^I=\active
+  \gdef\tabexpand{%
+    \catcode`\^^I=\active
+    \def^^I{\leavevmode\egroup
+      \dimen0=\wd0 % the width so far, or since the previous tab
+      \divide\dimen0 by\tabw
+      \multiply\dimen0 by\tabw % compute previous multiple of \tabw
+      \advance\dimen0 by\tabw  % advance to next multiple of \tabw
+      \wd0=\dimen0 \box0 \starttabbox
+    }%
+  }
+\endgroup
+\def\setupverbatim{%
+  % Easiest (and conventionally used) font for verbatim
+  \tt
+  \def\par{\leavevmode\egroup\box0\endgraf}%
+  \catcode`\`=\active
+  \tabexpand
+  % Respect line breaks,
+  % print special symbols as themselves, and
+  % make each space count
+  % must do in this order:
+  \obeylines \uncatcodespecials \sepspaces
+  \everypar{\starttabbox}%
+}
+
+% Do the @verb magic: verbatim text is quoted by unique 
+% delimiter characters.  Before first delimiter expect a 
+% right brace, after last delimiter expect closing brace:
+%
+%    \def\doverb'{'<char>#1<char>'}'{#1}
+%
+% [Knuth] p. 382; only eat outer {}
+\begingroup
+  \catcode`[=1\catcode`]=2\catcode`\{=12\catcode`\}=12
+  \gdef\doverb{#1[\def\next##1#1}[##1\endgroup]\next]
+\endgroup
+%
+\def\verb{\begingroup\setupverb\doverb}
+%
+%
+% Do the @verbatim magic: define the macro \doverbatim so that
+% the (first) argument ends when '@end verbatim' is reached, ie:
+%
+%     address@hidden verbatim{#1}
+%
+% For Texinfo it's a lot easier than for LaTeX, 
+% because texinfo's \verbatim doesn't stop at '\end{verbatim}':
+% we need not redefine '\', '{' and '}'
+%
+% Inspired by LaTeX's verbatim command set [latex.ltx]
+%% Include LaTeX hack for completeness -- never know
+%% \begingroup
+%% \catcode`|=0 \catcode`[=1
+%% \catcode`]=2\catcode`\{=12\catcode`\}=12\catcode`\ =\active
+%% \catcode`\\=12|gdef|address@hidden verbatim[
+%% #1|endgroup|def|Everbatim[]|end[verbatim]]
+%% |endgroup
+\begingroup
+  \catcode`\ =\active
+  address@hidden verbatim{#1\end{verbatim}}
+\endgroup
+%
+\def\verbatim{%
+  \def\Everbatim{\nonfillfinish\endgroup}%
+  \begingroup
+    \nonfillstart
+    \advance\leftskip by -\defbodyindent
+    \begingroup\setupverbatim\doverbatim
+}
+
+% @verbatiminclude FILE - insert text of file in verbatim environment.
+%
+% Allow normal characters that we make active in the argument (a file name).
+\def\verbatiminclude{%
+  \begingroup
+    \catcode`\\=12
+    \catcode`~=12
+    \catcode`^=12
+    \catcode`_=12
+    \catcode`|=12
+    \catcode`<=12
+    \catcode`>=12
+    \catcode`+=12
+    \parsearg\doverbatiminclude
+}
+\def\setupverbatiminclude{%
+  \begingroup
+    \nonfillstart
+    \advance\leftskip by -\defbodyindent
+    \begingroup\setupverbatim
+}
+%
+\def\doverbatiminclude#1{%
+     % Restore active chars for included file.
+  \endgroup
+  \begingroup
+  \def\thisfile{#1}%
+  \expandafter\expandafter\setupverbatiminclude\input\thisfile
+  \endgroup\nonfillfinish\endgroup
+}
+
+
 \message{defuns,}
-% Define formatter for defuns
-% First, allow user to change definition object font (\df) internally
+% @defun etc.
+
+% Allow user to change definition object font (\df) internally
 \def\setdeffont #1 {\csname DEF#1\endcsname}
 
 \newskip\defbodyindent \defbodyindent=.4in
@@ -4010,10 +4551,16 @@ width0pt\relax} \fi
 %% contained text.  This is especially needed for [ and ]
 \def\opnr{{\sf\char`\(}\global\advance\parencount by 1 }
 \def\clnr{{\sf\char`\)}\global\advance\parencount by -1 }
-\def\ampnr{\&}
+\let\ampnr = \&
 \def\lbrb{{\bf\char`\[}}
 \def\rbrb{{\bf\char`\]}}
 
+% Active &'s sneak into the index arguments, so make sure it's defined.
+{
+  \catcode`& = 13
+  \global\let& = \ampnr
+}
+
 % First, defname, which formats the header line itself.
 % #1 should be the function name.
 % #2 should be the type of definition, such as "Function".
@@ -4065,7 +4612,7 @@ width0pt\relax} \fi
 % #2 is the \...x control sequence for consecutive fns (which we define).
 % #3 is the control sequence to call to resume processing.
 % #4, delimited by the space, is the class name.
-% 
+%
 \def\defmethparsebody#1#2#3#4 {\begingroup\inENV %
 \medbreak %
 % Define the end token that this defining construct specifies
@@ -4077,23 +4624,39 @@ width0pt\relax} \fi
 \exdentamount=\defbodyindent
 \begingroup\obeylines\activeparens\spacesplit{#3{#4}}}
 
-% @deftypemethod has an extra argument that nothing else does.  Sigh.
+% Used for @deftypemethod and @deftypeivar.
 % #1 is the \E... control sequence to end the definition (which we define).
 % #2 is the \...x control sequence for consecutive fns (which we define).
 % #3 is the control sequence to call to resume processing.
-% #4, delimited by the space, is the class name.
+% #4, delimited by a space, is the class name.
 % #5 is the method's return type.
+%
+\def\deftypemethparsebody#1#2#3#4 #5 {\begingroup\inENV
+  \medbreak
+  \def#1{\endgraf\endgroup\medbreak}%
+  \def#2##1 ##2 {\begingroup\obeylines\activeparens\spacesplit{#3{##1}{##2}}}%
+  \parindent=0in
+  \advance\leftskip by \defbodyindent
+  \exdentamount=\defbodyindent
+  \begingroup\obeylines\activeparens\spacesplit{#3{#4}{#5}}}
+
+% Used for @deftypeop.  The change from \deftypemethparsebody is an
+% extra argument at the beginning which is the `category', instead of it
+% being the hardwired string `Method' or `Instance Variable'.  We have
+% to account for this both in the \...x definition and in parsing the
+% input at hand.  Thus also need a control sequence (passed as #5) for
+% the \E... definition to assign the category name to.
 % 
-\def\deftypemethparsebody#1#2#3#4 #5 {\begingroup\inENV %
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2##1 ##2 {\begingroup\obeylines\activeparens\spacesplit{#3{##1}{##2}}}%
-\parindent=0in
-\advance\leftskip by \defbodyindent
-\exdentamount=\defbodyindent
-\begingroup\obeylines\activeparens\spacesplit{#3{#4}{#5}}}
+\def\deftypeopparsebody#1#2#3#4#5 #6 {\begingroup\inENV
+  \medbreak
+  \def#1{\endgraf\endgroup\medbreak}%
+  \def#2##1 ##2 ##3 {%
+    \def#4{##1}%
+    \begingroup\obeylines\activeparens\spacesplit{#3{##2}{##3}}}%
+  \parindent=0in
+  \advance\leftskip by \defbodyindent
+  \exdentamount=\defbodyindent
+  \begingroup\obeylines\activeparens\spacesplit{#3{#5}{#6}}}
 
 \def\defopparsebody #1#2#3#4#5 {\begingroup\inENV %
 \medbreak %
@@ -4204,12 +4767,13 @@ width0pt\relax} \fi
 % First, define the processing that is wanted for arguments of \defun
 % Use this to expand the args and terminate the paragraph they make up
 
-\def\defunargs #1{\functionparens \sl
+\def\defunargs#1{\functionparens \sl
 % Expand, preventing hyphenation at `-' chars.
 % Note that groups don't affect changes in \hyphenchar.
-\hyphenchar\tensl=0
+% Set the font temporarily and use \font in case \setfont made \tensl a macro.
+{\tensl\hyphenchar\font=0}%
 #1%
-\hyphenchar\tensl=45
+{\tensl\hyphenchar\font=45}%
 \ifnum\parencount=0 \else \errmessage{Unbalanced parentheses in @def}\fi%
 \interlinepenalty=10000
 \advance\rightskip by 0pt plus 1fil
@@ -4243,7 +4807,7 @@ width0pt\relax} \fi
 \def\defun{\defparsebody\Edefun\defunx\defunheader}
 
 \def\defunheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index
-\begingroup\defname {#1}{Function}%
+\begingroup\defname {#1}{\putwordDeffunc}%
 \defunargs {#2}\endgroup %
 \catcode 61=\other % Turn off change made in \defparsebody
 }
@@ -4257,7 +4821,7 @@ width0pt\relax} \fi
 % #1 is the data type, #2 the name, #3 the args.
 \def\deftypefunheaderx #1#2 #3\relax{%
 \doind {fn}{\code{#2}}% Make entry in function index
-\begingroup\defname {\defheaderxcond#1\relax$$$#2}{Function}%
+\begingroup\defname {\defheaderxcond#1\relax$$$#2}{\putwordDeftypefun}%
 \deftypefunargs {#3}\endgroup %
 \catcode 61=\other % Turn off change made in \defparsebody
 }
@@ -4288,7 +4852,7 @@ width0pt\relax} \fi
 \def\defmac{\defparsebody\Edefmac\defmacx\defmacheader}
 
 \def\defmacheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index
-\begingroup\defname {#1}{Macro}%
+\begingroup\defname {#1}{\putwordDefmac}%
 \defunargs {#2}\endgroup %
 \catcode 61=\other % Turn off change made in \defparsebody
 }
@@ -4298,36 +4862,39 @@ width0pt\relax} \fi
 \def\defspec{\defparsebody\Edefspec\defspecx\defspecheader}
 
 \def\defspecheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index
-\begingroup\defname {#1}{Special Form}%
+\begingroup\defname {#1}{\putwordDefspec}%
 \defunargs {#2}\endgroup %
 \catcode 61=\other % Turn off change made in \defparsebody
 }
 
-% This definition is run if you use @defunx
-% anywhere other than immediately after a @defun or @defunx.
-
-\def\deffnx #1 address@hidden in invalid context}}
-\def\defunx #1 address@hidden in invalid context}}
-\def\defmacx #1 address@hidden in invalid context}}
-\def\defspecx #1 address@hidden in invalid context}}
-\def\deftypefnx #1 address@hidden in invalid context}}
-\def\deftypemethodx #1 address@hidden in invalid context}}
-\def\deftypefunx #1 address@hidden in invalid context}}
-
-% @defmethod, and so on
-
 % @defop CATEGORY CLASS OPERATION ARG...
-
+%
 \def\defop #1 {\def\defoptype{#1}%
 \defopparsebody\Edefop\defopx\defopheader\defoptype}
-
-\def\defopheader #1#2#3{%
+%
+\def\defopheader#1#2#3{%
 \dosubind {fn}{\code{#2}}{\putwordon\ #1}% Make entry in function index
-\begingroup\defname {#2}{\defoptype{} on #1}%
+\begingroup\defname {#2}{\defoptype\ \putwordon\ #1}%
 \defunargs {#3}\endgroup %
 }
 
-% @deftypemethod CLASS RETURN-TYPE METHOD ARG...
+% @deftypeop CATEGORY CLASS TYPE OPERATION ARG...
+%
+\def\deftypeop #1 {\def\deftypeopcategory{#1}%
+  \deftypeopparsebody\Edeftypeop\deftypeopx\deftypeopheader
+                       \deftypeopcategory}
+%
+% #1 is the class name, #2 the data type, #3 the operation name, #4 the args.
+\def\deftypeopheader#1#2#3#4{%
+  \dosubind{fn}{\code{#3}}{\putwordon\ \code{#1}}% entry in function index
+  \begingroup
+    \defname{\defheaderxcond#2\relax$$$#3}
+            {\deftypeopcategory\ \putwordon\ \code{#1}}%
+    \deftypefunargs{#4}%
+  \endgroup
+}
+
+% @deftypemethod CLASS TYPE METHOD ARG...
 %
 \def\deftypemethod{%
   \deftypemethparsebody\Edeftypemethod\deftypemethodx\deftypemethodheader}
@@ -4341,6 +4908,21 @@ width0pt\relax} \fi
   \endgroup
 }
 
+% @deftypeivar CLASS TYPE VARNAME
+%
+\def\deftypeivar{%
+  \deftypemethparsebody\Edeftypeivar\deftypeivarx\deftypeivarheader}
+%
+% #1 is the class name, #2 the data type, #3 the variable name.
+\def\deftypeivarheader#1#2#3{%
+  \dosubind{vr}{\code{#3}}{\putwordof\ \code{#1}}% entry in variable index
+  \begingroup
+    \defname{\defheaderxcond#2\relax$$$#3}
+            {\putwordInstanceVariableof\ \code{#1}}%
+    \defvarargs{#3}%
+  \endgroup
+}
+
 % @defmethod == @defop Method
 %
 \def\defmethod{\defmethparsebody\Edefmethod\defmethodx\defmethodheader}
@@ -4360,31 +4942,24 @@ width0pt\relax} \fi
 \defopvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype}
 
 \def\defcvarheader #1#2#3{%
-\dosubind {vr}{\code{#2}}{of #1}% Make entry in var index
-\begingroup\defname {#2}{\defcvtype{} of #1}%
+\dosubind {vr}{\code{#2}}{\putwordof\ #1}% Make entry in var index
+\begingroup\defname {#2}{\defcvtype\ \putwordof\ #1}%
 \defvarargs {#3}\endgroup %
 }
 
-% @defivar == @defcv {Instance Variable}
-
+% @defivar CLASS VARNAME == @defcv {Instance Variable} CLASS VARNAME
+%
 \def\defivar{\defvrparsebody\Edefivar\defivarx\defivarheader}
-
-\def\defivarheader #1#2#3{%
-\dosubind {vr}{\code{#2}}{of #1}% Make entry in var index
-\begingroup\defname {#2}{Instance Variable of #1}%
-\defvarargs {#3}\endgroup %
+%
+\def\defivarheader#1#2#3{%
+  \dosubind {vr}{\code{#2}}{\putwordof\ #1}% entry in var index
+  \begingroup
+    \defname{#2}{\putwordInstanceVariableof\ #1}%
+    \defvarargs{#3}%
+  \endgroup
 }
 
-% These definitions are run if you use @defmethodx, etc.,
-% anywhere other than immediately after a @defmethod, etc.
-
-\def\defopx #1 address@hidden in invalid context}}
-\def\defmethodx #1 address@hidden in invalid context}}
-\def\defcvx #1 address@hidden in invalid context}}
-\def\defivarx #1 address@hidden in invalid context}}
-
-% Now @defvar
-
+% @defvar
 % First, define the processing that is wanted for arguments of @defvar.
 % This is actually simple: just print them in roman.
 % This must expand the args and terminate the paragraph they make up
@@ -4404,7 +4979,7 @@ width0pt\relax} \fi
 \def\defvar{\defvarparsebody\Edefvar\defvarx\defvarheader}
 
 \def\defvarheader #1#2{\doind {vr}{\code{#1}}% Make entry in var index
-\begingroup\defname {#1}{Variable}%
+\begingroup\defname {#1}{\putwordDefvar}%
 \defvarargs {#2}\endgroup %
 }
 
@@ -4413,7 +4988,7 @@ width0pt\relax} \fi
 \def\defopt{\defvarparsebody\Edefopt\defoptx\defoptheader}
 
 \def\defoptheader #1#2{\doind {vr}{\code{#1}}% Make entry in var index
-\begingroup\defname {#1}{User Option}%
+\begingroup\defname {#1}{\putwordDefopt}%
 \defvarargs {#2}\endgroup %
 }
 
@@ -4425,7 +5000,7 @@ width0pt\relax} \fi
 % is actually part of the data type, which should not be put into the index.
 \def\deftypevarheader #1#2{%
 \dovarind#2 \relax% Make entry in variables index
-\begingroup\defname {\defheaderxcond#1\relax$$$#2}{Variable}%
+\begingroup\defname {\defheaderxcond#1\relax$$$#2}{\putwordDeftypevar}%
 \interlinepenalty=10000
 \endgraf\nobreak\vskip -\parskip\nobreak
 \endgroup}
@@ -4441,15 +5016,6 @@ width0pt\relax} \fi
 \endgraf\nobreak\vskip -\parskip\nobreak
 \endgroup}
 
-% This definition is run if you use @defvarx
-% anywhere other than immediately after a @defvar or @defvarx.
-
-\def\defvrx #1 address@hidden in invalid context}}
-\def\defvarx #1 address@hidden in invalid context}}
-\def\defoptx #1 address@hidden in invalid context}}
-\def\deftypevarx #1 address@hidden in invalid context}}
-\def\deftypevrx #1 address@hidden in invalid context}}
-
 % Now define @deftp
 % Args are printed in bold, a slight difference from @defvar.
 
@@ -4462,23 +5028,45 @@ width0pt\relax} \fi
 \def\deftpheader #1#2#3{\doind {tp}{\code{#2}}%
 \begingroup\defname {#2}{#1}\deftpargs{#3}\endgroup}
 
-% This definition is run if you use @deftpx, etc
-% anywhere other than immediately after a @deftp, etc.
-
-\def\deftpx #1 address@hidden in invalid context}}
+% These definitions are used if you use @defunx (etc.)
+% anywhere other than immediately after a @defun or @defunx.
+% 
+\def\defcvx#1 address@hidden in invalid context}}
+\def\deffnx#1 address@hidden in invalid context}}
+\def\defivarx#1 address@hidden in invalid context}}
+\def\defmacx#1 address@hidden in invalid context}}
+\def\defmethodx#1 address@hidden in invalid context}}
+\def\defoptx #1 address@hidden in invalid context}}
+\def\defopx#1 address@hidden in invalid context}}
+\def\defspecx#1 address@hidden in invalid context}}
+\def\deftpx#1 address@hidden in invalid context}}
+\def\deftypefnx#1 address@hidden in invalid context}}
+\def\deftypefunx#1 address@hidden in invalid context}}
+\def\deftypeivarx#1 address@hidden in invalid context}}
+\def\deftypemethodx#1 address@hidden in invalid context}}
+\def\deftypeopx#1 address@hidden in invalid context}}
+\def\deftypevarx#1 address@hidden in invalid context}}
+\def\deftypevrx#1 address@hidden in invalid context}}
+\def\defunx#1 address@hidden in invalid context}}
+\def\defvarx#1 address@hidden in invalid context}}
+\def\defvrx#1 address@hidden in invalid context}}
 
 
 \message{macros,}
 % @macro.
 
-% To do this right we need a feature of e-TeX, \scantokens, 
+% To do this right we need a feature of e-TeX, \scantokens,
 % which we arrange to emulate with a temporary file in ordinary TeX.
 \ifx\eTeXversion\undefined
  \newwrite\macscribble
  \def\scanmacro#1{%
    \begingroup \newlinechar`\^^M
+   % Undo catcode changes of \startcontents and \doprintindex
+   address@hidden \catcode`\\=12 \escapechar=`\@
+   % Append \endinput to make sure that TeX does not see the ending newline.
+   \toks0={#1\endinput}%
    \immediate\openout\macscribble=\jobname.tmp
-   \immediate\write\macscribble{#1}%
+   \immediate\write\macscribble{\the\toks0}%
    \immediate\closeout\macscribble
    \let\xeatspaces\eatspaces
    \input \jobname.tmp
@@ -4487,12 +5075,16 @@ width0pt\relax} \fi
 \else
 \def\scanmacro#1{%
 \begingroup \newlinechar`\^^M
-\let\xeatspaces\eatspaces\scantokens{#1}\endgroup}
+% Undo catcode changes of \startcontents and \doprintindex
address@hidden \catcode`\\=12 \escapechar=`\@
+\let\xeatspaces\eatspaces\scantokens{#1\endinput}\endgroup}
 \fi
 
 \newcount\paramno   % Count of parameters
 \newtoks\macname    % Macro name
 \newif\ifrecursive  % Is it recursive?
+\def\macrolist{}    % List of all defined macros in the form
+                    % \do\macro1\do\macro2...
 
 % Utility routines.
 % Thisdoes \let #1 = #2, except with \csnames.
@@ -4524,8 +5116,8 @@ width0pt\relax} \fi
 % all characters are catcode 10, 11 or 12, except \ which is active
 % (as in normal texinfo). It is necessary to change the definition of \.
 
-% It's necessary to have hard CRs when the macro is executed. This is 
-% done by  making ^^M (\endlinechar) catcode 12 when reading the macro 
+% It's necessary to have hard CRs when the macro is executed. This is
+% done by  making ^^M (\endlinechar) catcode 12 when reading the macro
 % body, and then making it the \newlinechar in \scanmacro.
 
 \def\macrobodyctxt{%
@@ -4554,7 +5146,7 @@ width0pt\relax} \fi
   \catcode`\\=12}
 
 % \mbodybackslash is the definition of \ in @macro bodies.
-% It maps \foo\ => \csname macarg.foo\endcsname => #N 
+% It maps \foo\ => \csname macarg.foo\endcsname => #N
 % where N is the macro parameter number.
 % We define \csname macarg.\endcsname to be \realbackslash, so
 % \\ in macro replacement text gets you a backslash.
@@ -4573,25 +5165,48 @@ width0pt\relax} \fi
   \ifx\argl\empty       % no arguments
      \paramno=0%
   \else
-     \expandafter\parsemargdef \argl;% 
+     \expandafter\parsemargdef \argl;%
   \fi
-  \expandafter\ifx \csname macsave.\the\macname\endcsname \relax
-     \cslet{macsave.\the\macname}{\the\macname}%
-  \else
+  \if1\csname ismacro.\the\macname\endcsname
      \message{Warning: redefining \the\macname}%
+  \else
+     \expandafter\ifx\csname \the\macname\endcsname \relax
+     \else \errmessage{The name \the\macname\space is reserved}\fi
+     \global\cslet{macsave.\the\macname}{\the\macname}%
+     \global\expandafter\let\csname ismacro.\the\macname\endcsname=1%
+     % Add the macroname to \macrolist
+     \toks0 = \expandafter{\macrolist\do}%
+     \xdef\macrolist{\the\toks0
+       \expandafter\noexpand\csname\the\macname\endcsname}%
   \fi
   \begingroup \macrobodyctxt
   \ifrecursive \expandafter\parsermacbody
-  \else \expandafter\parsemacbody 
+  \else \expandafter\parsemacbody
   \fi}
 
 \def\unmacro{\parsearg\unmacroxxx}
 \def\unmacroxxx#1{%
-  \expandafter\ifx \csname macsave.\the\macname\endcsname \relax
-    \errmessage{Macro \the\macname\ not defined.}%
+  \if1\csname ismacro.#1\endcsname
+    \global\cslet{#1}{macsave.#1}%
+    \global\expandafter\let \csname ismacro.#1\endcsname=0%
+    % Remove the macro name from \macrolist
+    \begingroup
+      \edef\tempa{\expandafter\noexpand\csname#1\endcsname}%
+      \def\do##1{%
+        \def\tempb{##1}%
+        \ifx\tempa\tempb
+          % remove this
+        \else
+          \toks0 = \expandafter{\newmacrolist\do}%
+          \edef\newmacrolist{\the\toks0\expandafter\noexpand\tempa}%
+        \fi}%
+      \def\newmacrolist{}%
+      % Execute macro list to define \newmacrolist
+      \macrolist
+      \global\let\macrolist\newmacrolist
+    \endgroup
   \else
-    \cslet{#1}{macsave.#1}%
-    \expandafter\let \csname macsave.\the\macname\endcsname \undefined
+    \errmessage{Macro #1 not defined}%
   \fi
 }
 
@@ -4650,19 +5265,20 @@ width0pt\relax} \fi
     \or % 1
       \expandafter\xdef\csname\the\macname\endcsname{%
          \bgroup\noexpand\macroargctxt
-         \noexpand\braceorline\csname\the\macname xxx\endcsname}%
+         \noexpand\braceorline
+         \expandafter\noexpand\csname\the\macname xxx\endcsname}%
       \expandafter\xdef\csname\the\macname xxx\endcsname##1{%
          \egroup\noexpand\scanmacro{\temp}}%
     \else % many
       \expandafter\xdef\csname\the\macname\endcsname{%
          \bgroup\noexpand\macroargctxt
-         \noexpand\csname\the\macname xx\endcsname}
+         \noexpand\csname\the\macname xx\endcsname}%
       \expandafter\xdef\csname\the\macname xx\endcsname##1{%
-          \csname\the\macname xxx\endcsname ##1,}%
+          \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}%
       \expandafter\expandafter
       \expandafter\xdef
       \expandafter\expandafter
-        \csname\the\macname xxx\endcsname 
+        \csname\the\macname xxx\endcsname
           \paramlist{\egroup\noexpand\scanmacro{\temp}}%
     \fi
   \else
@@ -4674,7 +5290,8 @@ width0pt\relax} \fi
     \or % 1
       \expandafter\xdef\csname\the\macname\endcsname{%
          \bgroup\noexpand\macroargctxt
-         \noexpand\braceorline\csname\the\macname xxx\endcsname}%
+         \noexpand\braceorline
+         \expandafter\noexpand\csname\the\macname xxx\endcsname}%
       \expandafter\xdef\csname\the\macname xxx\endcsname##1{%
         \egroup
         \noexpand\norecurse{\the\macname}%
@@ -4682,9 +5299,9 @@ width0pt\relax} \fi
     \else % many
       \expandafter\xdef\csname\the\macname\endcsname{%
          \bgroup\noexpand\macroargctxt
-         \noexpand\csname\the\macname xx\endcsname}
+         \expandafter\noexpand\csname\the\macname xx\endcsname}%
       \expandafter\xdef\csname\the\macname xx\endcsname##1{%
-          \csname\the\macname xxx\endcsname ##1,}%
+          \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}%
       \expandafter\expandafter
       \expandafter\xdef
       \expandafter\expandafter
@@ -4705,11 +5322,29 @@ width0pt\relax} \fi
 \def\braceorline#1{\let\next=#1\futurelet\nchar\braceorlinexxx}
 \def\braceorlinexxx{%
   \ifx\nchar\bgroup\else
-    \expandafter\parsearg 
+    \expandafter\parsearg
   \fi \next}
 
+% We mant to disable all macros during \shipout so that they are not
+% expanded by \write.
+\def\turnoffmacros{\begingroup \def\do##1{\let\noexpand##1=\relax}%
+  \edef\next{\macrolist}\expandafter\endgroup\next}
+
+
+% @alias.
+% We need some trickery to remove the optional spaces around the equal
+% sign.  Just make them active and then expand them all to nothing.
+\def\alias{\begingroup\obeyspaces\parsearg\aliasxxx}
+\def\aliasxxx #1{\aliasyyy#1\relax}
+\def\aliasyyy #1=#2\relax{\ignoreactivespaces
+\edef\next{\global\let\expandafter\noexpand\csname#1\endcsname=%
+           \expandafter\noexpand\csname#2\endcsname}%
+\expandafter\endgroup\next}
+
 
 \message{cross references,}
+% @xref etc.
+
 \newwrite\auxfile
 
 \newif\ifhavexrefs    % True if xref values are known.
@@ -4751,21 +5386,24 @@ width0pt\relax} \fi
 
 
 % @anchor{NAME} -- define xref target at arbitrary point.
-% 
-\def\anchor#1{\setref{#1}{Ynothing}}
-
+%
+\newcount\savesfregister
+\gdef\savesf{\relax \ifhmode \savesfregister=\spacefactor \fi}
+\gdef\restoresf{\relax \ifhmode \spacefactor=\savesfregister \fi}
+\gdef\anchor#1{\savesf \setref{#1}{Ynothing}\restoresf \ignorespaces}
 
 % \setref{NAME}{SNT} defines a cross-reference point NAME, namely
 % NAME-title, NAME-pg, and NAME-SNT.  Called from \foonoderef.  We have
 % to set \indexdummies so commands such as @code in a section title
 % aren't expanded.  It would be nicer not to expand the titles in the
 % first place, but there's so many layers that that is hard to do.
-% 
+%
 \def\setref#1#2{{%
   \indexdummies
+  \pdfmkdest{#1}%
   \dosetq{#1-title}{Ytitle}%
   \dosetq{#1-pg}{Ypagenumber}%
-  \dosetq{#1-snt}{#2}
+  \dosetq{#1-snt}{#2}%
 }}
 
 % @xref, @pxref, and @ref generate cross-references.  For \xrefX, #1 is
@@ -4777,6 +5415,7 @@ width0pt\relax} \fi
 \def\xref#1{\putwordSee{} \xrefX[#1,,,,,,,]}
 \def\ref#1{\xrefX[#1,,,,,,,]}
 \def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup
+  \unsepspaces
   \def\printedmanual{\ignorespaces #5}%
   \def\printednodename{\ignorespaces #3}%
   \setbox1=\hbox{\printedmanual}%
@@ -4810,8 +5449,21 @@ width0pt\relax} \fi
   % are best written with fairly long node names, containing hyphens, this
   % is a loss.  Therefore, we give the text of the node name again, so it
   % is as if TeX is seeing it for the first time.
+  \ifpdf
+    \leavevmode
+    \getfilename{#4}%
+    \ifnum\filenamelength>0
+      \startlink attr{/Border [0 0 0]}%
+        goto file{\the\filename.pdf} address@hidden
+    \else
+      \startlink attr{/Border [0 0 0]}%
+        goto address@hidden
+    \fi
+    \linkcolor
+  \fi
+  %
   \ifdim \wd1 > 0pt
-    \putwordsection{} ``\printednodename'' in \cite{\printedmanual}%
+    \putwordsection{} ``\printednodename'' \putwordin{} \cite{\printedmanual}%
   \else
     % _ (for example) has to be the character _ for the purposes of the
     % control sequence corresponding to the node, but it has to expand
@@ -4824,11 +5476,12 @@ width0pt\relax} \fi
      \setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}%
      \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi
     }%
-    % [mynode], 
+    % [mynode],
     [\printednodename],\space
     % page 3
     \turnoffactive \putwordpage\tie\refx{#1-pg}{}%
   \fi
+  \endlink
 \endgroup}
 
 % \dosetq is the interface for calls from other macros
@@ -4836,7 +5489,7 @@ width0pt\relax} \fi
 % Use \normalturnoffactive so that punctuation chars such as underscore
 % and backslash work in node names.  (\turnoffactive doesn't do \.)
 \def\dosetq#1#2{%
-  {\let\folio=0
+  {\let\folio=0%
    \normalturnoffactive
    \edef\next{\write\auxfile{\internalsetq{#1}{#2}}}%
    \iflinks
@@ -4913,7 +5566,7 @@ width0pt\relax} \fi
 }
 
 % This is the macro invoked by entries in the aux file.
-% 
+%
 \def\xrdef#1{\begingroup
   % Reenable \ as an escape while reading the second argument.
   \catcode`\\ = 0
@@ -5065,6 +5718,8 @@ width0pt\relax} \fi
   address@hidden
   \parindent\defaultparindent
   %
+  \smallfonts \rm
+  %
   % Hang the footnote text off the number.
   \hang
   \textindent{\thisfootno}%
@@ -5079,7 +5734,7 @@ width0pt\relax} \fi
   address@hidden \next}
 \def\f@@address@hidden
 address@hidden@foot}
address@hidden
address@hidden
 
 }%end \catcode address@hidden
 
@@ -5138,7 +5793,7 @@ width0pt\relax} \fi
 
 % @image.  We use the macros from epsf.tex to support this.
 % If epsf.tex is not installed and @image is used, we complain.
-% 
+%
 % Check for and read epsf.tex up front.  If we read it only at @image
 % time, we might be inside a group, and then its definitions would get
 % undone and the next image would fail.
@@ -5151,12 +5806,12 @@ width0pt\relax} \fi
   \input epsf.tex
 \fi
 %
+% We will only complain once about lack of epsf.tex.
 \newif\ifwarnednoepsf
 \newhelp\noepsfhelp{epsf.tex must be installed for images to
   work.  It is also included in the Texinfo distribution, or you can get
-  it from ftp://ftp.tug.org/tex/epsf.tex.}
+  it from ftp://tug.org/tex/epsf.tex.}
 %
-% Only complain once about lack of epsf.tex.
 \def\image#1{%
   \ifx\epsfbox\undefined
     \ifwarnednoepsf \else
@@ -5174,24 +5829,68 @@ width0pt\relax} \fi
 % #2 is (optional) width, #3 is (optional) height.
 % #4 is just the usual extra ignored arg for parsing this stuff.
 \def\imagexxx#1,#2,#3,#4\finish{%
-  % \epsfbox itself resets \epsf?size at each figure.
-  \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \epsfxsize=#2\relax \fi
-  \setbox0 = \hbox{\ignorespaces #3}\ifdim\wd0 > 0pt \epsfysize=#3\relax \fi
-  % If the image is by itself, center it.
-  \ifvmode
-    \nobreak\medskip
-    \nobreak
-    \centerline{\epsfbox{#1.eps}}%
-    \bigbreak
+  \ifpdf
+    \centerline{\dopdfimage{#1}{#2}{#3}}%
   \else
-    \epsfbox{#1.eps}%
+    % \epsfbox itself resets \epsf?size at each figure.
+    \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \epsfxsize=#2\relax \fi
+    \setbox0 = \hbox{\ignorespaces #3}\ifdim\wd0 > 0pt \epsfysize=#3\relax \fi
+    \begingroup
+      \catcode`\^^M = 5 % in case we're inside an example
+      % If the image is by itself, center it.
+      \ifvmode
+        \nobreak\bigskip
+        % Usually we'll have text after the image which will insert
+        % \parskip glue, so insert it here too to equalize the space
+        % above and below. 
+        \nobreak\vskip\parskip
+        \nobreak
+        \centerline{\epsfbox{#1.eps}}%
+        \bigbreak
+      \else
+        % In the middle of a paragraph, no extra space.
+        \epsfbox{#1.eps}%
+      \fi
+    \endgroup
   \fi
 }
 
 
-\message{paper sizes,}
-% And other related parameters.
+\message{localization,}
+% and i18n.
+
+% @documentlanguage is usually given very early, just after
+% @setfilename.  If done too late, it may not override everything
+% properly.  Single argument is the language abbreviation.
+% It would be nice if we could set up a hyphenation file here.
+%
+\def\documentlanguage{\parsearg\dodocumentlanguage}
+\def\dodocumentlanguage#1{%
+  \tex % read txi-??.tex file in plain TeX.
+  % Read the file if it exists.
+  \openin 1 txi-#1.tex
+  \ifeof1
+    \errhelp = \nolanghelp
+    \errmessage{Cannot read language file txi-#1.tex}%
+    \let\temp = \relax
+  \else
+    \def\temp{\input txi-#1.tex }%
+  \fi
+  \temp
+  \endgroup
+}
+\newhelp\nolanghelp{The given language definition file cannot be found or
+is empty.  Maybe you need to install it?  In the current directory
+should work if nowhere else does.}
+
+
+% @documentencoding should change something in TeX eventually, most
+% likely, but for now just recognize it.
+\let\documentencoding = \comment
 
+
+% Page size parameters.
+%
 \newdimen\defaultparindent \defaultparindent = 15pt
 
 \chapheadingskip = 15pt plus 4pt minus 2pt
@@ -5211,16 +5910,14 @@ width0pt\relax} \fi
 % Use TeX 3.0's \emergencystretch to help line breaking, but if we're
 % using an old version of TeX, don't do anything.  We want the amount of
 % stretch added to depend on the line length, hence the dependence on
-% \hsize.  This makes it come to about 9pt for the 8.5x11 format.  We
-% call this whenever the paper size is set.
+% \hsize.  We call this whenever the paper size is set.
 %
 \def\setemergencystretch{%
   \ifx\emergencystretch\thisisundefined
     % Allow us to assign to \emergencystretch anyway.
     \def\emergencystretch{\dimen0}%
   \else
-    \emergencystretch = \hsize
-    \divide\emergencystretch by 45
+    \emergencystretch = .15\hsize
   \fi
 }
 
@@ -5305,7 +6002,7 @@ width0pt\relax} \fi
 % Use @afourwide to print on European A4 paper in wide format.
 \def\afourwide{%
   \afourpaper
-  
\internalpagesizes{9.5in}{6.5in}{\hoffset}{\normaloffset}{\bindingoffset}{7mm}%
+  
\internalpagesizes{6.5in}{9.5in}{\hoffset}{\normaloffset}{\bindingoffset}{7mm}%
   %
   \globaldefs = 0
 }
@@ -5313,7 +6010,7 @@ width0pt\relax} \fi
 % @pagesizes TEXTHEIGHT[,TEXTWIDTH]
 % Perhaps we should allow setting the margins, \topskip, \parskip,
 % and/or leading, also. Or perhaps we should compute them somehow.
-% 
+%
 \def\pagesizes{\parsearg\pagesizesxxx}
 \def\pagesizesxxx#1{\pagesizesyyy #1,,\finish}
 \def\pagesizesyyy#1,#2,#3\finish{{%
@@ -5327,9 +6024,10 @@ width0pt\relax} \fi
 }}
 
 % Set default to letter.
-% 
+%
 \letterpaper
 
+
 \message{and turning on texinfo input format.}
 
 % Define macros to output various characters with catcode for normal text.
@@ -5341,6 +6039,7 @@ width0pt\relax} \fi
 \catcode`\<=\other
 \catcode`\>=\other
 \catcode`\+=\other
+\catcode`\$=\other
 \def\normaldoublequote{"}
 \def\normaltilde{~}
 \def\normalcaret{^}
@@ -5349,6 +6048,7 @@ width0pt\relax} \fi
 \def\normalless{<}
 \def\normalgreater{>}
 \def\normalplus{+}
+\def\normaldollar{$}
 
 % This macro is used to make a character print one way in ttfont
 % where it can probably just be output, and another way in other fonts,
@@ -5359,7 +6059,13 @@ width0pt\relax} \fi
 % interword stretch (and shrink), and it is reasonable to expect all
 % typewriter fonts to have this, we can check that font parameter.
 %
-\def\ifusingtt#1#2{\ifdim \fontdimen3\the\font=0pt #1\else #2\fi}
+\def\ifusingtt#1#2{\ifdim \fontdimen3\font=0pt #1\else #2\fi}
+
+% Same as above, but check for italic font.  Actually this also catches
+% non-italic slanted fonts since it is impossible to distinguish them from
+% italic fonts.  But since this is only used by $ and it uses \sl anyway
+% this is not a problem.
+\def\ifusingit#1#2{\ifdim \fontdimen1\font>0pt #1\else #2\fi}
 
 % Turn off all special characters except @
 % (and those which the user can use as if they were ordinary).
@@ -5390,6 +6096,8 @@ width0pt\relax} \fi
 \def>{{\tt \gtr}}
 \catcode`\+=\active
 \def+{{\tt \char 43}}
+\catcode`\$=\active
+\def${\ifusingit{{\sl\$}}\normaldollar}
 %\catcode 27=\active
 %\def^^[{$\diamondsuit$}
 
@@ -5420,9 +6128,6 @@ width0pt\relax} \fi
 % \normalbackslash outputs one backslash in fixed width font.
 \def\normalbackslash{{\tt\rawbackslashxx}}
 
-% Say @foo, not \foo, in error messages.
-\escapechar=`\@
-
 % \catcode 17=0   % Define control-q
 \catcode`\\=\active
 
@@ -5436,7 +6141,8 @@ width0pt\relax} \fi
 @let|address@hidden
 @let<address@hidden
 @let>address@hidden
address@hidden@normalplus}
address@hidden@normalplus
address@hidden@normaldollar}
 
 @address@hidden@let"address@hidden
 @address@hidden
@@ -5446,7 +6152,8 @@ width0pt\relax} \fi
 @let|address@hidden
 @let<address@hidden
 @let>address@hidden
address@hidden@normalplus}
address@hidden@normalplus
address@hidden@normaldollar}
 
 % Make _ and + \other characters, temporarily.
 % This is canceled by @fixbackslash.
@@ -5465,20 +6172,29 @@ width0pt\relax} \fi
 % Also back turn on active characters that might appear in the input
 % file name, in case not using a pre-dumped format.
 %
address@hidden@address@hidden@eatinput @let\ = @normalbackslash @fi
-  @address@hidden @address@hidden@active}
address@hidden@fixbackslash{%
+  @address@hidden @let\ = @normalbackslash @fi
+  @address@hidden
+  @address@hidden@active
+}
 
-% These look ok in all fonts, so just make them not special.  The @rm below
-% makes sure that the current font starts out as the newly loaded cmr10
address@hidden@address@hidden @address@hidden@other @catcode`@&address@hidden 
@address@hidden@other
+% Say @foo, not \foo, in error messages.
address@hidden = `@@
+
+% These look ok in all fonts, so just make them not special.  
address@hidden@& = @other
address@hidden@# = @other
address@hidden@% = @other
 
address@hidden Set initial fonts.
 @textfonts
 @rm
 
+
 @c Local variables:
 @c eval: (add-hook 'write-file-hooks 'time-stamp)
 @c page-delimiter: "^\\\\message"
 @c time-stamp-start: "def\\\\texinfoversion{"
address@hidden time-stamp-format: "%:y-%02m-%02d"
address@hidden time-stamp-format: "%:y-%02m-%02d.%02H"
 @c time-stamp-end: "}"
 @c End:
diff --git a/lib/ylwrap b/lib/ylwrap
index 13fc38d..5ea68e4 100755
--- a/lib/ylwrap
+++ b/lib/ylwrap
@@ -1,6 +1,6 @@
 #! /bin/sh
 # ylwrap - wrapper for lex/yacc invocations.
-# Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
+# Copyright 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
 # Written by Tom Tromey <address@hidden>.
 #
 # This program is free software; you can redistribute it and/or modify
@@ -17,45 +17,40 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
 # Usage:
-#     ylwrap PROGRAM INPUT [OUTPUT DESIRED]... -- [ARGS]...
-# * PROGRAM is program to run.
+#     ylwrap INPUT [OUTPUT DESIRED]... -- PROGRAM [ARGS]...
 # * INPUT is the input file
 # * OUTPUT is file PROG generates
 # * DESIRED is file we actually want
+# * PROGRAM is program to run
 # * ARGS are passed to PROG
 # Any number of OUTPUT,DESIRED pairs may be used.
 
-# The program to run.
-prog="$1"
-shift
-# Make any relative path in $prog absolute.
-case "$prog" in
- /* | [A-Za-z]:\\*) ;;
- */*) prog="`pwd`/$prog" ;;
-esac
-
 # The input.
 input="$1"
 shift
 case "$input" in
- /* | [A-Za-z]:\\*)
+ [\\/]* | ?:[\\/]*)
     # Absolute path; do nothing.
     ;;
  *)
-    # Relative path.  Make it absolute.  Why?  Because otherwise any
-    # debugging info in the generated file will point to the wrong
-    # place.  This is really gross.
+    # Relative path.  Make it absolute.
     input="`pwd`/$input"
     ;;
 esac
 
-# We don't want to use the absolute path if the input in the current
-# directory like when making a tar ball.
-input_base=`echo $input | sed -e 's|.*/||'`
-if test -f $input_base && cmp $input_base $input >/dev/null 2>&1; then
-  input=$input_base
-fi
+# The directory holding the input.
+input_dir=`echo "$input" | sed -e 's,\([\\/]\)[^\\/]*$,\1,'`
+# Quote $INPUT_DIR so we can use it in a regexp.
+# FIXME: really we should care about more than `.' and `\'.
+input_rx=`echo "$input_dir" | sed -e 's,\\\\,\\\\\\\\,g' -e 's,\\.,\\\\.,g'`
+
+echo "got $input_rx"
 
 pairlist=
 while test "$#" -ne 0; do
@@ -67,6 +62,15 @@ while test "$#" -ne 0; do
    shift
 done
 
+# The program to run.
+prog="$1"
+shift
+# Make any relative path in $prog absolute.
+case "$prog" in
+ [\\/]* | ?:[\\/]*) ;;
+ *[\\/]*) prog="`pwd`/$prog" ;;
+esac
+
 # FIXME: add hostname here for parallel makes that run commands on
 # other machines.  But that might take us over the 14-char limit.
 dirname=ylwrap$$
@@ -74,15 +78,7 @@ trap "cd `pwd`; rm -rf $dirname > /dev/null 2>&1" 1 2 3 15
 mkdir $dirname || exit 1
 
 cd $dirname
-case "$input" in
- /* | [A-Za-z]:\\*)
-    # Absolute path; do nothing.
-    ;;
- *)
-    # Make a symbolic link, hard link or hardcopy.
-    ln -s ../"$input" . > /dev/null 2>&1 || ln ../"$input" . > /dev/null 2>&1 
|| cp ../"$input" .
-    ;;
-esac
+
 $prog ${1+"$@"} "$input"
 status=$?
 
@@ -90,15 +86,39 @@ if test $status -eq 0; then
    set X $pairlist
    shift
    first=yes
+   # Since DOS filename conventions don't allow two dots,
+   # the DOS version of Bison writes out y_tab.c instead of y.tab.c
+   # and y_tab.h instead of y.tab.h. Test to see if this is the case.
+   y_tab_nodot="no"
+   if test -f y_tab.c || test -f y_tab.h; then
+      y_tab_nodot="yes"
+   fi
+
    while test "$#" -ne 0; do
-      if test -f "$1"; then
+      from="$1"
+      # Handle y_tab.c and y_tab.h output by DOS
+      if test $y_tab_nodot = "yes"; then
+        if test $from = "y.tab.c"; then
+           from="y_tab.c"
+        else
+           if test $from = "y.tab.h"; then
+              from="y_tab.h"
+           fi
+        fi
+      fi
+      if test -f "$from"; then
          # If $2 is an absolute path name, then just use that,
          # otherwise prepend `../'.
          case "$2" in
-          /* | [A-Za-z]:\\*) target="$2";;
+          [\\/]* | ?:[\\/]*) target="$2";;
           *) target="../$2";;
         esac
-        mv "$1" "$target" || status=$?
+
+        # Edit out `#line' or `#' directives.  We don't want the
+        # resulting debug information to point at an absolute srcdir;
+        # it is better for it to just mention the .y file with no
+        # path.
+        sed -e "/^#/ s,$input_rx,," "$from" > "$target" || status=$?
       else
         # A missing file is only an error for the first file.  This
         # is a blatant hack to let us support using "yacc -d".  If -d
diff --git a/library.am b/library.am
deleted file mode 100644
index 9132ae6..0000000
--- a/library.am
+++ /dev/null
@@ -1,21 +0,0 @@
-## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc.
-
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2, or (at your option)
-## any later version.
-
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-## 02111-1307, USA.
address@hidden@: $(@address@hidden) $(@address@hidden)
-       -rm -f @LIBRARY@
-       $(AR) cru @LIBRARY@ $(@address@hidden) $(@address@hidden)
-       $(RANLIB) @LIBRARY@
diff --git a/libs-clean.am b/libs-clean.am
deleted file mode 100644
index 262163a..0000000
--- a/libs-clean.am
+++ /dev/null
@@ -1,25 +0,0 @@
-## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc.
-
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2, or (at your option)
-## any later version.
-
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-## 02111-1307, USA.
address@hidden@LIBRARIES:
-
address@hidden@LIBRARIES:
-       -test -z "$(@address@hidden)" || rm -f $(@address@hidden)
-
address@hidden@LIBRARIES:
-
address@hidden@LIBRARIES:
diff --git a/libs.am b/libs.am
deleted file mode 100644
index 324df39..0000000
--- a/libs.am
+++ /dev/null
@@ -1,47 +0,0 @@
-## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996, 1998 Free Software Foundation, Inc.
-
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2, or (at your option)
-## any later version.
-
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-## 02111-1307, USA.
address@hidden@LIBRARIES: $(@address@hidden)
-       @$(NORMAL_INSTALL)
-       $(mkinstalldirs) $(DESTDIR)$(@address@hidden)
-## Funny invocation because Makefile variable can be empty, leading to
-## a syntax error in sh.
-       @list='$(@address@hidden)'; for p in $$list; do \
-         if test -f $$p; then \
-           echo " $(INSTALL_DATA) $$p $(DESTDIR)$(@address@hidden)/$$p"; \
-           $(INSTALL_DATA) $$p $(DESTDIR)$(@address@hidden)/$$p; \
-         else :; fi; \
-       done
-## We do two loops here so that $(POST_INSTALL) can be empty.  If we
-## merge the two loops, we get a syntax error from sh.  Anyway, having
-## $(POST_INSTALL) in the middle of the loop essentially renders it
-## useless; sh never actually executes this command.  Read the GNU
-## Standards for a little enlightenment on this.
-       @$(POST_INSTALL)
-       @list='$(@address@hidden)'; for p in $$list; do \
-         if test -f $$p; then \
-## Must ranlib after installing because mod time changes.
-           echo " $(RANLIB) $(DESTDIR)$(@address@hidden)/$$p"; \
-           $(RANLIB) $(DESTDIR)$(@address@hidden)/$$p; \
-         else :; fi; \
-       done
-
address@hidden@LIBRARIES:
-       @$(NORMAL_UNINSTALL)
-       list='$(@address@hidden)'; for p in $$list; do \
-         rm -f $(DESTDIR)$(@address@hidden)/$$p; \
-       done
diff --git a/libtool.am b/libtool.am
deleted file mode 100644
index e748cc7..0000000
--- a/libtool.am
+++ /dev/null
@@ -1,39 +0,0 @@
-## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
-
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2, or (at your option)
-## any later version.
-
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-## 02111-1307, USA.
-NOTDEPEND.c.lo:
-## Note that we explicitly set the libtool mode.  This avoids any lossage
-## if the program doesn't have a name that libtool expects.
-NOTDEPEND      $(LIBTOOL) --mode=compile $(COMPILE) -c $<
-
-## These are just copies of the above rule.
-.s.lo:
-       $(LIBTOOL) --mode=compile $(COMPILE) -c $<
-
-.S.lo:
-       $(LIBTOOL) --mode=compile $(COMPILE) -c $<
-
-mostlyclean-libtool:
-       -rm -f *.lo
-
-clean-libtool:
-## .libs is for Unix, _libs for DOS.
-       -rm -rf .libs _libs
-
-distclean-libtool:
-
-maintainer-clean-libtool:
diff --git a/lisp-clean.am b/lisp-clean.am
deleted file mode 100644
index f9904ef..0000000
--- a/lisp-clean.am
+++ /dev/null
@@ -1,25 +0,0 @@
-## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1996 Free Software Foundation, Inc.
-
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2, or (at your option)
-## any later version.
-
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-## 02111-1307, USA.
-mostlyclean-lisp:
-
-clean-lisp:
-       -test -z "$(ELCFILES)" || rm -f $(ELCFILES)
-
-distclean-lisp:
-
-maintainer-clean-lisp:
diff --git a/lisp.am b/lisp.am
deleted file mode 100644
index 9dfc5ca..0000000
--- a/lisp.am
+++ /dev/null
@@ -1,39 +0,0 @@
-## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1996, 1998 Free Software Foundation, Inc.
-
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2, or (at your option)
-## any later version.
-
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-## 02111-1307, USA.
address@hidden@LISP: $(@address@hidden) $(ELCFILES)
-       @$(NORMAL_INSTALL)
-       $(mkinstalldirs) $(DESTDIR)$(@address@hidden)
-## Funny invocation because Makefile variable can be empty, leading to
-## a syntax error in sh.
-       @list='$(@address@hidden)'; for p in $$list; do \
-## A header file can be in the source directory or the build directory.
-         if test -f "$$p"; then d= ; else d="$(srcdir)/"; fi; \
-         echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(@address@hidden)/$$p"; \
-         $(INSTALL_DATA) $$d$$p $(DESTDIR)$(@address@hidden)/$$p; \
-## Only install .elc file if it exists.
-         if test -f $${p}c; then \
-           echo " $(INSTALL_DATA) $${p}c $(DESTDIR)$(@address@hidden)/$${p}c"; 
\
-           $(INSTALL_DATA) $${p}c $(DESTDIR)$(@address@hidden)/$${p}c; \
-         else : ; fi; \
-       done
-
address@hidden@LISP:
-       @$(NORMAL_UNINSTALL)
-       list='$(@address@hidden)'; for p in $$list; do \
-         rm -f $(@address@hidden)/$$p $(DESTDIR)$(@address@hidden)/$${p}c; \
-       done
diff --git a/ltlib-clean.am b/ltlib-clean.am
deleted file mode 100644
index c7cdcfb..0000000
--- a/ltlib-clean.am
+++ /dev/null
@@ -1,25 +0,0 @@
-## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1997 Free Software Foundation, Inc.
-
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2, or (at your option)
-## any later version.
-
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-## 02111-1307, USA.
address@hidden@LTLIBRARIES:
-
address@hidden@LTLIBRARIES:
-       -test -z "$(@address@hidden)" || rm -f $(@address@hidden)
-
address@hidden@LTLIBRARIES:
-
address@hidden@LTLIBRARIES:
diff --git a/ltlib.am b/ltlib.am
deleted file mode 100644
index 50200fe..0000000
--- a/ltlib.am
+++ /dev/null
@@ -1,38 +0,0 @@
-## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
-
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2, or (at your option)
-## any later version.
-
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-## 02111-1307, USA.
address@hidden@LTLIBRARIES: $(@address@hidden)
-       @$(NORMAL_INSTALL)
-       $(mkinstalldirs) $(DESTDIR)$(@address@hidden)
-## Funny invocation because Makefile variable can be empty, leading to
-## a syntax error in sh.
-       @list='$(@address@hidden)'; for p in $$list; do \
-         if test -f $$p; then \
-## Note that we explicitly set the libtool mode.  This avoids any lossage
-## if the program doesn't have a name that libtool expects.
-## Use INSTALL and not INSTALL_DATA because libtool knows the right
-## permissions to use.
-           echo "@LIBTOOL --mode=install@ $(INSTALL) $$p 
$(DESTDIR)$(@address@hidden)/$$p"; \
-           @LIBTOOL --mode=install@ $(INSTALL) $$p 
$(DESTDIR)$(@address@hidden)/$$p; \
-         else :; fi; \
-       done
-
address@hidden@LTLIBRARIES:
-       @$(NORMAL_UNINSTALL)
-       list='$(@address@hidden)'; for p in $$list; do \
-         @LIBTOOL --mode=uninstall@ rm -f $(DESTDIR)$(@address@hidden)/$$p; \
-       done
diff --git a/ltlibrary.am b/ltlibrary.am
deleted file mode 100644
index 886533a..0000000
--- a/ltlibrary.am
+++ /dev/null
@@ -1,19 +0,0 @@
-## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc.
-
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2, or (at your option)
-## any later version.
-
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-## 02111-1307, USA.
address@hidden@: $(@address@hidden) $(@address@hidden)
-       $(@XLINK@) @RPATH@ $(@address@hidden) $(@address@hidden) 
$(@address@hidden) $(LIBS)
diff --git a/m4/.cvsignore b/m4/.cvsignore
new file mode 100644
index 0000000..f3c7a7c
--- /dev/null
+++ b/m4/.cvsignore
@@ -0,0 +1 @@
+Makefile
diff --git a/m4/Makefile.am b/m4/Makefile.am
index 8e6cbcf..890a248 100644
--- a/m4/Makefile.am
+++ b/m4/Makefile.am
@@ -1,12 +1,10 @@
 ## Process this file with automake to create Makefile.in
 
-AUTOMAKE_OPTIONS = gnits
-MAINT_CHARSET = latin1
-
 m4datadir = $(datadir)/aclocal
-m4data_DATA = ccstdc.m4 cond.m4 dmalloc.m4 error.m4 header.m4 init.m4 \
-lex.m4 lispdir.m4 maintainer.m4 missing.m4 mktime.m4 multi.m4 \
-obstack.m4 protos.m4 ptrdiff.m4 regex.m4 sanity.m4 strtod.m4 \
-termios.m4 winsz.m4
+m4data_DATA = as.m4 auxdir.m4 ccstdc.m4 cond.m4 depend.m4 depout.m4 \
+dmalloc.m4 error.m4 gcj.m4 header.m4 init.m4 install-sh.m4 lex.m4 \
+lispdir.m4 make.m4 maintainer.m4 minuso.m4 missing.m4 multi.m4 \
+obstack.m4 protos.m4 ptrdiff.m4 python.m4 regex.m4 sanity.m4 strip.m4 \
+strtod.m4 termios.m4 winsz.m4
 
 EXTRA_DIST = $(m4data_DATA)
diff --git a/m4/Makefile.in b/m4/Makefile.in
index 5b5de03..61b36c3 100644
--- a/m4/Makefile.in
+++ b/m4/Makefile.in
@@ -1,6 +1,7 @@
-# Makefile.in generated automatically by automake 1.4 from Makefile.am
+# Makefile.in generated automatically by automake 1.5.1a from Makefile.am.
 
-# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+# Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -10,6 +11,7 @@
 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 # PARTICULAR PURPOSE.
 
address@hidden@
 
 SHELL = @SHELL@
 
@@ -31,13 +33,9 @@ infodir = @infodir@
 mandir = @mandir@
 includedir = @includedir@
 oldincludedir = /usr/include
-
-DESTDIR =
-
 pkgdatadir = $(datadir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
-
 top_builddir = ..
 
 ACLOCAL = @ACLOCAL@
@@ -46,154 +44,173 @@ AUTOMAKE = @AUTOMAKE@
 AUTOHEADER = @AUTOHEADER@
 
 INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_HEADER = $(INSTALL_DATA)
 transform = @program_transform_name@
-
 NORMAL_INSTALL = :
 PRE_INSTALL = :
 POST_INSTALL = :
 NORMAL_UNINSTALL = :
 PRE_UNINSTALL = :
 POST_UNINSTALL = :
-MAKEINFO = @MAKEINFO@
+AMTAR = @AMTAR@
+AWK = @AWK@
+DEPDIR = @DEPDIR@
+EXEEXT = @EXEEXT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PERL = @PERL@
-TAR = @TAR@
 VERSION = @VERSION@
-
-AUTOMAKE_OPTIONS = gnits
-MAINT_CHARSET = latin1
+am__include = @am__include@
+am__quote = @am__quote@
+install_sh = @install_sh@
 
 m4datadir = $(datadir)/aclocal
-m4data_DATA = ccstdc.m4 cond.m4 dmalloc.m4 error.m4 header.m4 init.m4 lex.m4 
lispdir.m4 maintainer.m4 missing.m4 mktime.m4 multi.m4 obstack.m4 protos.m4 
ptrdiff.m4 regex.m4 sanity.m4 strtod.m4 termios.m4 winsz.m4
+m4data_DATA = as.m4 auxdir.m4 ccstdc.m4 cond.m4 depend.m4 depout.m4 \
+dmalloc.m4 error.m4 gcj.m4 header.m4 init.m4 install-sh.m4 lex.m4 \
+lispdir.m4 make.m4 maintainer.m4 minuso.m4 missing.m4 multi.m4 \
+obstack.m4 protos.m4 ptrdiff.m4 python.m4 regex.m4 sanity.m4 strip.m4 \
+strtod.m4 termios.m4 winsz.m4
 
 
 EXTRA_DIST = $(m4data_DATA)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_CLEAN_FILES = 
-DATA =  $(m4data_DATA)
-
-DIST_COMMON =  Makefile.am Makefile.in
-
+subdir = m4
+mkinstalldirs = $(SHELL) $(top_srcdir)/lib/mkinstalldirs
+CONFIG_CLEAN_FILES =
+DIST_SOURCES =
+DATA = $(m4data_DATA)
 
-DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+DIST_COMMON = Makefile.am Makefile.in
+all: all-am
 
-GZIP_ENV = --best
-all: all-redirect
 .SUFFIXES:
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
-       cd $(top_srcdir) && $(AUTOMAKE) --gnits m4/Makefile
-
-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
-       cd $(top_builddir) \
-         && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-
+$(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.in $(ACLOCAL_M4)
+       cd $(top_srcdir) && \
+         $(AUTOMAKE) --gnu  m4/Makefile
+Makefile:  $(srcdir)/Makefile.in  $(top_builddir)/config.status
+       cd $(top_builddir) && \
+         CONFIG_HEADERS= CONFIG_LINKS= \
+         CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status
+uninstall-info-am:
 install-m4dataDATA: $(m4data_DATA)
        @$(NORMAL_INSTALL)
        $(mkinstalldirs) $(DESTDIR)$(m4datadir)
        @list='$(m4data_DATA)'; for p in $$list; do \
-         if test -f $(srcdir)/$$p; then \
-           echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(m4datadir)/$$p"; \
-           $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(m4datadir)/$$p; \
-         else if test -f $$p; then \
-           echo " $(INSTALL_DATA) $$p $(DESTDIR)$(m4datadir)/$$p"; \
-           $(INSTALL_DATA) $$p $(DESTDIR)$(m4datadir)/$$p; \
-         fi; fi; \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         f="`echo $$p | sed -e 's|^.*/||'`"; \
+         echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(m4datadir)/$$f"; \
+         $(INSTALL_DATA) $$d$$p $(DESTDIR)$(m4datadir)/$$f; \
        done
 
 uninstall-m4dataDATA:
        @$(NORMAL_UNINSTALL)
-       list='$(m4data_DATA)'; for p in $$list; do \
-         rm -f $(DESTDIR)$(m4datadir)/$$p; \
+       @list='$(m4data_DATA)'; for p in $$list; do \
+         f="`echo $$p | sed -e 's|^.*/||'`"; \
+         echo " rm -f $(DESTDIR)$(m4datadir)/$$f"; \
+         rm -f $(DESTDIR)$(m4datadir)/$$f; \
        done
 tags: TAGS
 TAGS:
 
 
-distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 
-subdir = m4
+top_distdir = ..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
 
 distdir: $(DISTFILES)
-       here=`cd $(top_builddir) && pwd`; \
-       top_distdir=`cd $(top_distdir) && pwd`; \
-       distdir=`cd $(distdir) && pwd`; \
-       cd $(top_srcdir) \
-         && $(AUTOMAKE) --include-deps --build-dir=$$here 
--srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnits m4/Makefile
        @for file in $(DISTFILES); do \
-         d=$(srcdir); \
+         if test -f $$file; then d=.; else d=$(srcdir); fi; \
+         dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+         if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+           $(mkinstalldirs) "$(distdir)/$$dir"; \
+         fi; \
          if test -d $$d/$$file; then \
-           cp -pr $$/$$file $(distdir)/$$file; \
+           cp -pR $$d/$$file $(distdir) \
+           || exit 1; \
          else \
            test -f $(distdir)/$$file \
-           || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
-           || cp -p $$d/$$file $(distdir)/$$file || :; \
+           || cp -p $$d/$$file $(distdir)/$$file \
+           || exit 1; \
          fi; \
        done
-info-am:
-info: info-am
-dvi-am:
-dvi: dvi-am
 check-am: all-am
 check: check-am
-installcheck-am:
-installcheck: installcheck-am
-install-exec-am:
-install-exec: install-exec-am
+all-am: Makefile $(DATA)
 
-install-data-am: install-m4dataDATA
-install-data: install-data-am
+installdirs:
+       $(mkinstalldirs) $(DESTDIR)$(m4datadir)
 
-install-am: all-am
-       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
 install: install-am
-uninstall-am: uninstall-m4dataDATA
+install-exec: install-exec-am
+install-data: install-data-am
 uninstall: uninstall-am
-all-am: Makefile $(DATA)
-all-redirect: all-am
-install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
-installdirs:
-       $(mkinstalldirs)  $(DESTDIR)$(m4datadir)
 
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
 
+installcheck: installcheck-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
 mostlyclean-generic:
 
 clean-generic:
 
 distclean-generic:
-       -rm -f Makefile $(CONFIG_CLEAN_FILES)
-       -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+       -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
 
 maintainer-clean-generic:
-mostlyclean-am:  mostlyclean-generic
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
 
-mostlyclean: mostlyclean-am
+clean-am: clean-generic mostlyclean-am
 
-clean-am:  clean-generic mostlyclean-am
+distclean: distclean-am
 
-clean: clean-am
+distclean-am: clean-am distclean-generic
 
-distclean-am:  distclean-generic clean-am
+dvi: dvi-am
 
-distclean: distclean-am
+dvi-am:
 
-maintainer-clean-am:  maintainer-clean-generic distclean-am
-       @echo "This command is intended for maintainers to use;"
-       @echo "it deletes files that may require special tools to rebuild."
+info: info-am
+
+info-am:
+
+install-data-am: install-m4dataDATA
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
 
 maintainer-clean: maintainer-clean-am
 
-.PHONY: uninstall-m4dataDATA install-m4dataDATA tags distdir info-am \
-info dvi-am dvi check check-am installcheck-am installcheck \
-install-exec-am install-exec install-data-am install-data install-am \
-install uninstall-am uninstall all-redirect all-am all installdirs \
-mostlyclean-generic distclean-generic clean-generic \
-maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+uninstall-am: uninstall-info-am uninstall-m4dataDATA
 
+.PHONY: all all-am check check-am clean clean-generic distclean \
+       distclean-generic distdir dvi dvi-am info info-am install \
+       install-am install-data install-data-am install-exec \
+       install-exec-am install-info install-info-am install-m4dataDATA \
+       install-man install-strip installcheck installcheck-am \
+       installdirs maintainer-clean maintainer-clean-generic \
+       mostlyclean mostlyclean-generic uninstall uninstall-am \
+       uninstall-info-am uninstall-m4dataDATA
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/m4/as.m4 b/m4/as.m4
new file mode 100644
index 0000000..11d39d8
--- /dev/null
+++ b/m4/as.m4
@@ -0,0 +1,11 @@
+# Figure out how to run the assembler.
+
+# AM_PROG_AS
+AC_DEFUN([AM_PROG_AS],
+[# By default we simply use the C compiler to build assembly code.
+AC_REQUIRE([AC_PROG_CC])
+: ${AS='$(CC)'}
+# Set ASFLAGS if not already set.
+: ${ASFLAGS='$(CFLAGS)'}
+AC_SUBST(AS)
+AC_SUBST(ASFLAGS)])
diff --git a/m4/auxdir.m4 b/m4/auxdir.m4
new file mode 100644
index 0000000..746cec0
--- /dev/null
+++ b/m4/auxdir.m4
@@ -0,0 +1,44 @@
+# AM_AUX_DIR_EXPAND
+
+# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
+# $ac_aux_dir to `$srcdir/foo'.  In other projects, it is set to
+# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
+#
+# Of course, Automake must honor this variable whenever it calls a
+# tool from the auxiliary directory.  The problem is that $srcdir (and
+# therefore $ac_aux_dir as well) can be either absolute or relative,
+# depending on how configure is run.  This is pretty annoying, since
+# it makes $ac_aux_dir quite unusable in subdirectories: in the top
+# source directory, any form will work fine, but in subdirectories a
+# relative path needs to be adjusted first.
+#
+# $ac_aux_dir/missing
+#    fails when called from a subdirectory if $ac_aux_dir is relative
+# $top_srcdir/$ac_aux_dir/missing
+#    fails if $ac_aux_dir is absolute,
+#    fails when called from a subdirectory in a VPATH build with
+#          a relative $ac_aux_dir
+#
+# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
+# are both prefixed by $srcdir.  In an in-source build this is usually
+# harmless because $srcdir is `.', but things will broke when you
+# start a VPATH build or use an absolute $srcdir.
+#
+# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
+# iff we strip the leading $srcdir from $ac_aux_dir.  That would be:
+#   am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
+# and then we would define $MISSING as
+#   MISSING="\${SHELL} $am_aux_dir/missing"
+# This will work as long as MISSING is not called from configure, because
+# unfortunately $(top_srcdir) has no meaning in configure.
+# However there are other variables, like CC, which are often used in
+# configure, and could therefore not use this "fixed" $ac_aux_dir.
+#
+# Another solution, used here, is to always expand $ac_aux_dir to an
+# absolute PATH.  The drawback is that using absolute paths prevent a
+# configured tree to be moved without reconfiguration.
+
+AC_DEFUN([AM_AUX_DIR_EXPAND], [
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`CDPATH=:; cd $ac_aux_dir && pwd`
+])
diff --git a/m4/ccstdc.m4 b/m4/ccstdc.m4
index dfe01fb..f838229 100644
--- a/m4/ccstdc.m4
+++ b/m4/ccstdc.m4
@@ -20,7 +20,7 @@
 # program @code{ansi2knr}, which comes with Ghostscript.
 # @end defmac
 
-AC_DEFUN(AM_PROG_CC_STDC,
+AC_DEFUN([AM_PROG_CC_STDC],
 [AC_REQUIRE([AC_PROG_CC])
 AC_BEFORE([$0], [AC_C_INLINE])
 AC_BEFORE([$0], [AC_C_CONST])
@@ -30,7 +30,7 @@ dnl like #elif.
 dnl FIXME: can't do this because then AC_AIX won't work due to a
 dnl circular dependency.
 dnl AC_BEFORE([$0], [AC_PROG_CPP])
-AC_MSG_CHECKING(for ${CC-cc} option to accept ANSI C)
+AC_MSG_CHECKING([for ${CC-cc} option to accept ANSI C])
 AC_CACHE_VAL(am_cv_prog_cc_stdc,
 [am_cv_prog_cc_stdc=no
 ac_save_CC="$CC"
@@ -38,9 +38,10 @@ ac_save_CC="$CC"
 # breaks some systems' header files.
 # AIX                  -qlanglvl=ansi
 # Ultrix and OSF/1     -std1
-# HP-UX                        -Aa -D_HPUX_SOURCE
+# HP-UX 10.20 and later        -Ae
+# HP-UX older versions -Aa -D_HPUX_SOURCE
 # SVR4                 -Xc -D__EXTENSIONS__
-for ac_arg in "" -qlanglvl=ansi -std1 "-Aa -D_HPUX_SOURCE" "-Xc 
-D__EXTENSIONS__"
+for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc 
-D__EXTENSIONS__"
 do
   CC="$ac_save_CC $ac_arg"
   AC_TRY_COMPILE(
@@ -82,7 +83,7 @@ CC="$ac_save_CC"
 if test -z "$am_cv_prog_cc_stdc"; then
   AC_MSG_RESULT([none needed])
 else
-  AC_MSG_RESULT($am_cv_prog_cc_stdc)
+  AC_MSG_RESULT([$am_cv_prog_cc_stdc])
 fi
 case "x$am_cv_prog_cc_stdc" in
   x|xno) ;;
diff --git a/m4/cond.m4 b/m4/cond.m4
index 8734d61..ed09527 100644
--- a/m4/cond.m4
+++ b/m4/cond.m4
@@ -1,8 +1,22 @@
-# Define a conditional.
+# serial 3
 
-AC_DEFUN(AM_CONDITIONAL,
-[AC_SUBST($1_TRUE)
-AC_SUBST($1_FALSE)
+# AM_CONDITIONAL(NAME, SHELL-CONDITION)
+# -------------------------------------
+# Define a conditional.
+#
+# FIXME: Once using 2.50, use this:
+# m4_match([$1], [^TRUE\|FALSE$], [AC_FATAL([$0: invalid condition: $1])])dnl
+AC_DEFUN([AM_CONDITIONAL],
+[ifelse([$1], [TRUE],
+        [errprint(__file__:__line__: [$0: invalid condition: $1
+])dnl
+m4exit(1)])dnl
+ifelse([$1], [FALSE],
+       [errprint(__file__:__line__: [$0: invalid condition: $1
+])dnl
+m4exit(1)])dnl
+AC_SUBST([$1_TRUE])
+AC_SUBST([$1_FALSE])
 if $2; then
   $1_TRUE=
   $1_FALSE='#'
diff --git a/m4/depend.m4 b/m4/depend.m4
new file mode 100644
index 0000000..2ea62fb
--- /dev/null
+++ b/m4/depend.m4
@@ -0,0 +1,130 @@
+# serial 4                                             -*- Autoconf -*-
+
+
+
+# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
+# written in clear, in which case automake, when reading aclocal.m4,
+# will think it sees a *use*, and therefore will trigger all it's
+# C support machinery.  Also note that it means that autoscan, seeing
+# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
+
+
+
+# _AM_DEPENDENCIES(NAME)
+# ---------------------
+# See how the compiler implements dependency checking.
+# NAME is "CC", "CXX" or "OBJC".
+# We try a few techniques and use that to set a single cache variable.
+#
+# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
+# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
+# dependency, and given that the user is not expected to run this macro,
+# just rely on AC_PROG_CC.
+AC_DEFUN([_AM_DEPENDENCIES],
+[AC_REQUIRE([AM_SET_DEPDIR])dnl
+AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
+AC_REQUIRE([AM_MAKE_INCLUDE])dnl
+AC_REQUIRE([AM_DEP_TRACK])dnl
+
+ifelse([$1], CC,   [depcc="$CC"   am_compiler_list=],
+       [$1], CXX,  [depcc="$CXX"  am_compiler_list=],
+       [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc']
+       [$1], GCJ,  [depcc="$GCJ"  am_compiler_list='gcc3 gcc'],
+                   [depcc="$$1"   am_compiler_list=])
+
+AC_CACHE_CHECK([dependency style of $depcc],
+               [am_cv_$1_dependencies_compiler_type],
+[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+  # We make a subdir and do the tests there.  Otherwise we can end up
+  # making bogus files that we don't know about and never remove.  For
+  # instance it was reported that on HP-UX the gcc test will end up
+  # making a dummy file named `D' -- because `-MD' means `put the output
+  # in D'.
+  mkdir conftest.dir
+  # Copy depcomp to subdir because otherwise we won't find it if we're
+  # using a relative directory.
+  cp "$am_depcomp" conftest.dir
+  cd conftest.dir
+
+  am_cv_$1_dependencies_compiler_type=none
+  if test "$am_compiler_list" = ""; then
+     am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
+  fi
+  for depmode in $am_compiler_list; do
+    # We need to recreate these files for each test, as the compiler may
+    # overwrite some of them when testing with obscure command lines.
+    # This happens at least with the AIX C compiler.
+    echo '#include "conftest.h"' > conftest.c
+    echo 'int i;' > conftest.h
+    echo "${am__include} ${am__quote}conftest.Po${am__quote}" > confmf
+
+    case $depmode in
+    nosideeffect)
+      # after this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested
+      if test "x$enable_dependency_tracking" = xyes; then
+       continue
+      else
+       break
+      fi
+      ;;
+    none) break ;;
+    esac
+    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle `-M -o', and we need to detect this.
+    if depmode=$depmode \
+       source=conftest.c object=conftest.o \
+       depfile=conftest.Po tmpdepfile=conftest.TPo \
+       $SHELL ./depcomp $depcc -c conftest.c -o conftest.o >/dev/null 2>&1 &&
+       grep conftest.h conftest.Po > /dev/null 2>&1 &&
+       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+      am_cv_$1_dependencies_compiler_type=$depmode
+      break
+    fi
+  done
+
+  cd ..
+  rm -rf conftest.dir
+else
+  am_cv_$1_dependencies_compiler_type=none
+fi
+])
+$1DEPMODE="depmode=$am_cv_$1_dependencies_compiler_type"
+AC_SUBST([$1DEPMODE])
+])
+
+
+# AM_SET_DEPDIR
+# -------------
+# Choose a directory name for dependency files.
+# This macro is AC_REQUIREd in _AM_DEPENDENCIES
+AC_DEFUN([AM_SET_DEPDIR],
+[rm -f .deps 2>/dev/null
+mkdir .deps 2>/dev/null
+if test -d .deps; then
+  DEPDIR=.deps
+else
+  # MS-DOS does not allow filenames that begin with a dot.
+  DEPDIR=_deps
+fi
+rmdir .deps 2>/dev/null
+AC_SUBST(DEPDIR)
+])
+
+
+# AM_DEP_TRACK
+# ------------
+AC_DEFUN([AM_DEP_TRACK],
+[AC_ARG_ENABLE(dependency-tracking,
+[  --disable-dependency-tracking Speeds up one-time builds
+  --enable-dependency-tracking  Do not reject slow dependency extractors])
+if test "x$enable_dependency_tracking" != xno; then
+  am_depcomp="$ac_aux_dir/depcomp"
+  AMDEPBACKSLASH='\'
+fi
+AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+pushdef([subst], defn([AC_SUBST]))
+subst(AMDEPBACKSLASH)
+popdef([subst])
+])
diff --git a/m4/depout.m4 b/m4/depout.m4
new file mode 100644
index 0000000..c387805
--- /dev/null
+++ b/m4/depout.m4
@@ -0,0 +1,50 @@
+# Generate code to set up dependency tracking.
+# This macro should only be invoked once -- use via AC_REQUIRE.
+# Usage:
+# AM_OUTPUT_DEPENDENCY_COMMANDS
+
+#
+# This code is only required when automatic dependency tracking
+# is enabled.  FIXME.  This creates each `.P' file that we will
+# need in order to bootstrap the dependency handling code.
+AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],[
+AC_OUTPUT_COMMANDS([
+test x"$AMDEP_TRUE" != x"" ||
+for mf in $CONFIG_FILES; do
+  case "$mf" in
+  Makefile) dirpart=.;;
+  */Makefile) dirpart=`echo "$mf" | sed -e 's|/[^/]*$||'`;;
+  *) continue;;
+  esac
+  grep '^DEP_FILES *= *[^ #]' < "$mf" > /dev/null || continue
+  # Extract the definition of DEP_FILES from the Makefile without
+  # running `make'.
+  DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"`
+  test -z "$DEPDIR" && continue
+  # When using ansi2knr, U may be empty or an underscore; expand it
+  U=`sed -n -e '/^U = / s///p' < "$mf"`
+  test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR"
+  # We invoke sed twice because it is the simplest approach to
+  # changing $(DEPDIR) to its actual value in the expansion.
+  for file in `sed -n -e '
+    /^DEP_FILES = .*\\\\$/ {
+      s/^DEP_FILES = //
+      :loop
+       s/\\\\$//
+       p
+       n
+       /\\\\$/ b loop
+      p
+    }
+    /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \
+       sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+    # Make sure the directory exists.
+    test -f "$dirpart/$file" && continue
+    fdir=`echo "$file" | sed -e 's|/[^/]*$||'`
+    $ac_aux_dir/mkinstalldirs "$dirpart/$fdir" > /dev/null 2>&1
+    # echo "creating $dirpart/$file"
+    echo '# dummy' > "$dirpart/$file"
+  done
+done
+], [AMDEP_TRUE="$AMDEP_TRUE"
+ac_aux_dir="$ac_aux_dir"])])
diff --git a/m4/dmalloc.m4 b/m4/dmalloc.m4
index e1e3cdb..f724670 100644
--- a/m4/dmalloc.m4
+++ b/m4/dmalloc.m4
@@ -5,11 +5,11 @@
 
 # serial 1
 
-AC_DEFUN(AM_WITH_DMALLOC,
-[AC_MSG_CHECKING(if malloc debugging is wanted)
+AC_DEFUN([AM_WITH_DMALLOC],
+[AC_MSG_CHECKING([if malloc debugging is wanted])
 AC_ARG_WITH(dmalloc,
 [  --with-dmalloc          use dmalloc, as in
-                          ftp://ftp.letters.com/src/dmalloc/dmalloc.tar.gz],
+                          http://www.dmalloc.com/dmalloc.tar.gz],
 [if test "$withval" = yes; then
   AC_MSG_RESULT(yes)
   AC_DEFINE(WITH_DMALLOC,1,
diff --git a/m4/error.m4 b/m4/error.m4
index eac272a..fc8b464 100644
--- a/m4/error.m4
+++ b/m4/error.m4
@@ -1,13 +1,13 @@
-dnl From Jim Meyering.  Use this if you use the GNU error.[ch].
-dnl FIXME: Migrate into libit
+# From Jim Meyering.  Use this if you use the GNU error.[ch].
+# FIXME: Migrate into libit
 
-AC_DEFUN(AM_FUNC_ERROR_AT_LINE,
+AC_DEFUN([AM_FUNC_ERROR_AT_LINE],
 [AC_CACHE_CHECK([for error_at_line], am_cv_lib_error_at_line,
  [AC_TRY_LINK([],[error_at_line(0, 0, "", 0, "");],
               am_cv_lib_error_at_line=yes,
              am_cv_lib_error_at_line=no)])
  if test $am_cv_lib_error_at_line = no; then
-   LIBOBJS="$LIBOBJS error.o"
+   LIBOBJS="$LIBOBJS error.$ac_objext"
  fi
  AC_SUBST(LIBOBJS)dnl
 ])
diff --git a/m4/gcj.m4 b/m4/gcj.m4
new file mode 100644
index 0000000..359733b
--- /dev/null
+++ b/m4/gcj.m4
@@ -0,0 +1,11 @@
+# Check for Java compiler.
+# For now we only handle the GNU compiler.
+
+AC_DEFUN([AM_PROG_GCJ],[
+AC_CHECK_PROGS(GCJ, gcj, gcj)
+test -z "$GCJ" && AC_MSG_ERROR([no acceptable gcj found in \$PATH])
+if test "x${GCJFLAGS+set}" = xset; then
+   GCJFLAGS="-g -O2"
+fi
+AC_SUBST(GCJFLAGS)
+])
diff --git a/m4/header.m4 b/m4/header.m4
index 95ccb61..f8e065f 100644
--- a/m4/header.m4
+++ b/m4/header.m4
@@ -1,22 +1,66 @@
 # Like AC_CONFIG_HEADER, but automatically create stamp file.
 
-AC_DEFUN(AM_CONFIG_HEADER,
-[AC_PREREQ([2.12])
-AC_CONFIG_HEADER([$1])
-dnl When config.status generates a header, we must update the stamp-h file.
-dnl This file resides in the same directory as the config header
-dnl that is generated.  We must strip everything past the first ":",
-dnl and everything past the last "/".
-AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl
-ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>,
-<<test -z "<<$>>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, 
<<^\([^:]*/\)?.*>>, <<\1>>)stamp-h<<>>dnl>>,
-<<am_indx=1
-for am_file in <<$1>>; do
-  case " <<$>>CONFIG_HEADERS " in
-  *" <<$>>am_file "*<<)>>
-    echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 
's%[^/]*$%%'`stamp-h$am_indx
+# serial 3
+
+# When config.status generates a header, we must update the stamp-h file.
+# This file resides in the same directory as the config header
+# that is generated.  We must strip everything past the first ":",
+# and everything past the last "/".
+
+AC_PREREQ([2.12])
+
+AC_DEFUN([AM_CONFIG_HEADER],
+[ifdef([AC_FOREACH],dnl
+        [dnl init our file count if it isn't already
+        m4_ifndef([_AM_Config_Header_Index], 
m4_define([_AM_Config_Header_Index], [0]))
+        dnl prepare to store our destination file list for use in config.status
+        AC_FOREACH([_AM_File], [$1],
+                   [m4_pushdef([_AM_Dest], m4_patsubst(_AM_File, [:.*]))
+                   m4_define([_AM_Config_Header_Index], 
m4_incr(_AM_Config_Header_Index))
+                   dnl and add it to the list of files AC keeps track of, along
+                   dnl with our hook
+                   AC_CONFIG_HEADERS(_AM_File,
+dnl COMMANDS, [, INIT-CMDS]
+[# update the timestamp
+echo timestamp 
>"AS_ESCAPE(_AM_DIRNAME(]_AM_Dest[))/stamp-h]_AM_Config_Header_Index["
+][$2]m4_ifval([$3], [, [$3]]))dnl AC_CONFIG_HEADERS
+                   m4_popdef([_AM_Dest])])],dnl
+[AC_CONFIG_HEADER([$1])
+  AC_OUTPUT_COMMANDS(
+   ifelse(patsubst([$1], [[^ ]], []),
+         [],
+         [test -z "$CONFIG_HEADERS" || echo timestamp >dnl
+          patsubst([$1], [^\([^:]*/\)?.*], [\1])stamp-h]),dnl
+[am_indx=1
+for am_file in $1; do
+  case " \$CONFIG_HEADERS " in
+  *" \$am_file "*)
+    am_dir=\`echo \$am_file |sed 's%:.*%%;s%[^/]*\$%%'\`
+    if test -n "\$am_dir"; then
+      am_tmpdir=\`echo \$am_dir |sed 's%^\(/*\).*\$%\1%'\`
+      for am_subdir in \`echo \$am_dir |sed 's%/% %'\`; do
+        am_tmpdir=\$am_tmpdir\$am_subdir/
+        if test ! -d \$am_tmpdir; then
+          mkdir \$am_tmpdir
+        fi
+      done
+    fi
+    echo timestamp > "\$am_dir"stamp-h\$am_indx
     ;;
   esac
-  am_indx=`expr "<<$>>am_indx" + 1`
-done<<>>dnl>>)
-changequote([,]))])
+  am_indx=\`expr \$am_indx + 1\`
+done])
+])]) # AM_CONFIG_HEADER
+
+# _AM_DIRNAME(PATH)
+# -----------------
+# Like AS_DIRNAME, only do it during macro expansion
+AC_DEFUN([_AM_DIRNAME],
+       [m4_if(m4_regexp([$1], [^.*[^/]//*[^/][^/]*/*$]), -1,
+             m4_if(m4_regexp([$1], [^//\([^/]\|$\)]), -1,
+                   m4_if(m4_regexp([$1], [^/.*]), -1,
+                         [.],
+                         m4_patsubst([$1], [^\(/\).*], [\1])),
+                   m4_patsubst([$1], [^\(//\)\([^/].*\|$\)], [\1])),
+             m4_patsubst([$1], [^\(.*[^/]\)//*[^/][^/]*/*$], [\1]))[]dnl
+]) # _AM_DIRNAME
diff --git a/m4/init.m4 b/m4/init.m4
index 9bfdd14..724fbc7 100644
--- a/m4/init.m4
+++ b/m4/init.m4
@@ -2,31 +2,88 @@
 # some checks are only needed if your package does certain things.
 # But this isn't really a big deal.
 
-# serial 1
-
-dnl Usage:
-dnl AM_INIT_AUTOMAKE(package,version, [no-define])
-
-AC_DEFUN(AM_INIT_AUTOMAKE,
-[AC_REQUIRE([AC_PROG_INSTALL])
-PACKAGE=[$1]
-AC_SUBST(PACKAGE)
-VERSION=[$2]
-AC_SUBST(VERSION)
-dnl test to see if srcdir already configured
-if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
-  AC_MSG_ERROR([source directory already configured; run "make distclean" 
there first])
+# serial 5
+
+# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
+# written in clear, in which case automake, when reading aclocal.m4,
+# will think it sees a *use*, and therefore will trigger all it's
+# C support machinery.  Also note that it means that autoscan, seeing
+# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
+
+
+# We require 2.13 because we rely on SHELL being computed by configure.
+AC_PREREQ([2.13])
+
+# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED)
+# -----------------------------------------------------------
+# If MACRO-NAME is provided do IF-PROVIDED, else IF-NOT-PROVIDED.
+# The purpose of this macro is to provide the user with a means to
+# check macros which are provided without letting her know how the
+# information is coded.
+# If this macro is not defined by Autoconf, define it here.
+ifdef([AC_PROVIDE_IFELSE],
+      [],
+      [define([AC_PROVIDE_IFELSE],
+              [ifdef([AC_PROVIDE_$1],
+                     [$2], [$3])])])
+
+
+# AM_INIT_AUTOMAKE(PACKAGE,VERSION, [NO-DEFINE])
+# ----------------------------------------------
+AC_DEFUN([AM_INIT_AUTOMAKE],
+[AC_REQUIRE([AC_PROG_INSTALL])dnl
+# test to see if srcdir already configured
+if test "`CDPATH=:; cd $srcdir && pwd`" != "`pwd`" &&
+   test -f $srcdir/config.status; then
+  AC_MSG_ERROR([source directory already configured; run \"make distclean\" 
there first])
 fi
+
+# Define the identity of the package.
+PACKAGE=$1
+AC_SUBST(PACKAGE)dnl
+VERSION=$2
+AC_SUBST(VERSION)dnl
 ifelse([$3],,
-AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
-AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package]))
-AC_REQUIRE([AM_SANITY_CHECK])
-AC_REQUIRE([AC_ARG_PROGRAM])
-dnl FIXME This is truly gross.
-missing_dir=`cd $ac_aux_dir && pwd`
-AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
-AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
-AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
-AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
-AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
-AC_REQUIRE([AC_PROG_MAKE_SET])])
+[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
+AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])
+
+# Autoconf 2.50 wants to disallow AM_ names.  We explicitly allow
+# the ones we care about.
+ifdef([m4_pattern_allow],
+      [m4_pattern_allow([^AM_[A-Z]+FLAGS])])dnl
+
+# Autoconf 2.50 always computes EXEEXT.  However we need to be
+# compatible with 2.13, for now.  So we always define EXEEXT, but we
+# don't compute it.
+AC_SUBST(EXEEXT)
+# Similar for OBJEXT -- only we only use OBJEXT if the user actually
+# requests that it be used.  This is a bit dumb.
+: ${OBJEXT=o}
+AC_SUBST(OBJEXT)
+
+# Some tools Automake needs.
+AC_REQUIRE([AM_SANITY_CHECK])dnl
+AC_REQUIRE([AC_ARG_PROGRAM])dnl
+AM_MISSING_PROG(ACLOCAL, aclocal)
+AM_MISSING_PROG(AUTOCONF, autoconf)
+AM_MISSING_PROG(AUTOMAKE, automake)
+AM_MISSING_PROG(AUTOHEADER, autoheader)
+AM_MISSING_PROG(MAKEINFO, makeinfo)
+AM_MISSING_PROG(AMTAR, tar)
+AM_PROG_INSTALL_SH
+AM_PROG_INSTALL_STRIP
+# We need awk for the "check" target.  The system "awk" is bad on
+# some platforms.
+AC_REQUIRE([AC_PROG_AWK])dnl
+AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+AC_REQUIRE([AM_DEP_TRACK])dnl
+AC_REQUIRE([AM_SET_DEPDIR])dnl
+AC_PROVIDE_IFELSE([AC_PROG_][CC],
+                  [_AM_DEPENDENCIES(CC)],
+                  [define([AC_PROG_][CC],
+                          defn([AC_PROG_][CC])[_AM_DEPENDENCIES(CC)])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_][CXX],
+                  [_AM_DEPENDENCIES(CXX)],
+                  [define([AC_PROG_][CXX],
+                          defn([AC_PROG_][CXX])[_AM_DEPENDENCIES(CXX)])])dnl
+])
diff --git a/m4/install-sh.m4 b/m4/install-sh.m4
new file mode 100644
index 0000000..0b0d1f0
--- /dev/null
+++ b/m4/install-sh.m4
@@ -0,0 +1,7 @@
+# AM_PROG_INSTALL_SH
+# ------------------
+# Define $install_sh.
+AC_DEFUN([AM_PROG_INSTALL_SH],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+install_sh=${install_sh-"$am_aux_dir/install-sh"}
+AC_SUBST(install_sh)])
diff --git a/m4/lex.m4 b/m4/lex.m4
index bb49045..78f0510 100644
--- a/m4/lex.m4
+++ b/m4/lex.m4
@@ -1,10 +1,10 @@
 ## Replacement for AC_PROG_LEX and AC_DECL_YYTEXT
 ## by Alexandre Oliva <address@hidden>
 
-dnl AM_PROG_LEX
-dnl Look for flex, lex or missing, then run AC_PROG_LEX and AC_DECL_YYTEXT
-AC_DEFUN(AM_PROG_LEX,
-[missing_dir=ifelse([$1],,`cd $ac_aux_dir && pwd`,$1)
-AC_CHECK_PROGS(LEX, flex lex, "$missing_dir/missing flex")
+# AM_PROG_LEX
+# Look for flex, lex or missing, then run AC_PROG_LEX and AC_DECL_YYTEXT
+AC_DEFUN([AM_PROG_LEX],
+[AC_REQUIRE([AM_MISSING_HAS_RUN])
+AC_CHECK_PROGS(LEX, flex lex, [${am_missing_run}flex])
 AC_PROG_LEX
 AC_DECL_YYTEXT])
diff --git a/m4/lispdir.m4 b/m4/lispdir.m4
index 981ba88..7f8b1bb 100644
--- a/m4/lispdir.m4
+++ b/m4/lispdir.m4
@@ -1,37 +1,32 @@
 ## ------------------------
 ## Emacs LISP file handling
 ## From Ulrich Drepper
+## Almost entirely rewritten by Alexandre Oliva
 ## ------------------------
 
-# serial 1
+# serial 3
 
-AC_DEFUN(AM_PATH_LISPDIR,
- [# If set to t, that means we are running in a shell under Emacs.
+AC_DEFUN([AM_PATH_LISPDIR],
+ [AC_ARG_WITH(lispdir, 
+  [   --with-lispdir            Override the default lisp directory ],
+  [ lispdir="$withval" 
+    AC_MSG_CHECKING([where .elc files should go])
+    AC_MSG_RESULT([$lispdir])],
+  [
+  # If set to t, that means we are running in a shell under Emacs.
   # If you have an Emacs named "t", then use the full path.
-  test "$EMACS" = t && EMACS=
-  AC_PATH_PROGS(EMACS, emacs xemacs, no)
+  test x"$EMACS" = xt && EMACS=
+  AC_CHECK_PROGS(EMACS, emacs xemacs, no)
   if test $EMACS != "no"; then
-    AC_MSG_CHECKING([where .elc files should go])
-    dnl Set default value
-    lispdir="\$(datadir)/emacs/site-lisp"
-    emacs_flavor=`echo "$EMACS" | sed -e 's,^.*/,,'`
-    if test "x$prefix" = "xNONE"; then
-      if test -d $ac_default_prefix/share/$emacs_flavor/site-lisp; then
-       lispdir="\$(prefix)/share/$emacs_flavor/site-lisp"
-      else
-       if test -d $ac_default_prefix/lib/$emacs_flavor/site-lisp; then
-         lispdir="\$(prefix)/lib/$emacs_flavor/site-lisp"
-       fi
-      fi
-    else
-      if test -d $prefix/share/$emacs_flavor/site-lisp; then
-       lispdir="\$(prefix)/share/$emacs_flavor/site-lisp"
-      else
-       if test -d $prefix/lib/$emacs_flavor/site-lisp; then
-         lispdir="\$(prefix)/lib/$emacs_flavor/site-lisp"
+    if test x${lispdir+set} != xset; then
+      AC_CACHE_CHECK([where .elc files should go], [am_cv_lispdir], [dnl
+       am_cv_lispdir=`$EMACS -batch -q -eval '(while load-path (princ (concat 
(car load-path) "\n")) (setq load-path (cdr load-path)))' | sed -n -e 's,/$,,' 
-e '/.*\/lib\/\(x\?emacs\/site-lisp\)$/{s,,${libdir}/\1,;p;q;}' -e 
'/.*\/share\/\(x\?emacs\/site-lisp\)$/{s,,${datadir}/\1,;p;q;}'`
+       if test -z "$am_cv_lispdir"; then
+         am_cv_lispdir='${datadir}/emacs/site-lisp'
        fi
-      fi
+      ])
+      lispdir="$am_cv_lispdir"
     fi
-    AC_MSG_RESULT($lispdir)
   fi
-  AC_SUBST(lispdir)])
+ ])
+ AC_SUBST(lispdir)])
diff --git a/m4/maintainer.m4 b/m4/maintainer.m4
index 95f1386..3cde2ee 100644
--- a/m4/maintainer.m4
+++ b/m4/maintainer.m4
@@ -3,7 +3,7 @@
 
 # serial 1
 
-AC_DEFUN(AM_MAINTAINER_MODE,
+AC_DEFUN([AM_MAINTAINER_MODE],
 [AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
   dnl maintainer-mode is disabled by default
   AC_ARG_ENABLE(maintainer-mode,
@@ -11,8 +11,8 @@ AC_DEFUN(AM_MAINTAINER_MODE,
                           (and sometimes confusing) to the casual installer],
       USE_MAINTAINER_MODE=$enableval,
       USE_MAINTAINER_MODE=no)
-  AC_MSG_RESULT($USE_MAINTAINER_MODE)
-  AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes)
+  AC_MSG_RESULT([$USE_MAINTAINER_MODE])
+  AM_CONDITIONAL(MAINTAINER_MODE, [test $USE_MAINTAINER_MODE = yes])
   MAINT=$MAINTAINER_MODE_TRUE
   AC_SUBST(MAINT)dnl
 ]
diff --git a/m4/make.m4 b/m4/make.m4
new file mode 100644
index 0000000..95015b2
--- /dev/null
+++ b/m4/make.m4
@@ -0,0 +1,40 @@
+# AM_MAKE_INCLUDE()
+# -----------------
+# Check to see how make treats includes.
+AC_DEFUN([AM_MAKE_INCLUDE],
+[am_make=${MAKE-make}
+cat > confinc << 'END'
+doit:
+       @echo done
+END
+# If we don't find an include directive, just comment out the code.
+AC_MSG_CHECKING([for style of include used by $am_make])
+am__include='#'
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# We grep out `Entering directory' and `Leaving directory'
+# messages which can occur if `w' ends up in MAKEFLAGS.
+# In particular we don't look at `^make:' because GNU make might
+# be invoked under some other name (usually "gmake"), in which
+# case it prints its new name instead of `make'.
+if test "`$am_make -s -f confmf 2> /dev/null | fgrep -v 'ing directory'`" = 
"done"; then
+   am__include=include
+   am__quote=
+   _am_result=GNU
+fi
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+   echo '.include "confinc"' > confmf
+   if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
+      am__include=.include
+      am__quote='"'
+      _am_result=BSD
+   fi
+fi
+AC_SUBST(am__include)
+AC_SUBST(am__quote)
+AC_MSG_RESULT($_am_result)
+rm -f confinc confmf
+])
diff --git a/m4/minuso.m4 b/m4/minuso.m4
new file mode 100644
index 0000000..23a1703
--- /dev/null
+++ b/m4/minuso.m4
@@ -0,0 +1,21 @@
+# serial 2
+
+# AM_PROG_CC_C_O
+# --------------
+# Like AC_PROG_CC_C_O, but changed for automake.
+AC_DEFUN([AM_PROG_CC_C_O],
+[AC_REQUIRE([AC_PROG_CC_C_O])dnl
+AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+# FIXME: we rely on the cache variable name because
+# there is no other way.
+set dummy $CC
+ac_cc=`echo $[2] | sed ['s/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/']`
+if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" != yes"; then
+   # Losing compiler, so override with the script.
+   # FIXME: It is wrong to rewrite CC.
+   # But if we don't then we get into trouble of one sort or another.
+   # A longer-term fix would be to have automake use am__CC in this case,
+   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+   CC="$am_aux_dir/compile $CC"
+fi
+])
diff --git a/m4/missing.m4 b/m4/missing.m4
index 39178df..868aa6b 100644
--- a/m4/missing.m4
+++ b/m4/missing.m4
@@ -1,18 +1,30 @@
 ## --------------------------------------------------------- ##
 ## Fake the existence of programs that GNU maintainers use.  ##
 ## --------------------------------------------------------- ##
-dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
-dnl The program must properly implement --version.
-AC_DEFUN(AM_MISSING_PROG,
-[AC_MSG_CHECKING(for working $2)
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf.  Sigh.
-if ($2 --version) < /dev/null > /dev/null 2>&1; then
-   $1=$2
-   AC_MSG_RESULT(found)
+
+# serial 2
+
+# AM_MISSING_PROG(NAME, PROGRAM)
+# ------------------------------
+AC_DEFUN([AM_MISSING_PROG],
+[AC_REQUIRE([AM_MISSING_HAS_RUN])
+$1=${$1-"${am_missing_run}$2"}
+AC_SUBST($1)])
+
+
+# AM_MISSING_HAS_RUN
+# ------------------
+# Define MISSING if not defined so far and test if it supports --run.
+# If it does, set am_missing_run to use it, otherwise, to nothing.
+AC_DEFUN([AM_MISSING_HAS_RUN],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
+# Use eval to expand $SHELL
+if eval "$MISSING --run true"; then
+  am_missing_run="$MISSING --run "
 else
-   $1="$3/missing $2"
-   AC_MSG_RESULT(missing)
+  am_missing_run=
+  am_backtick='`'
+  AC_MSG_WARN([${am_backtick}missing' script is too old or missing])
 fi
-AC_SUBST($1)])
+])
diff --git a/m4/mktime.m4 b/m4/mktime.m4
deleted file mode 100644
index 8e54aa8..0000000
--- a/m4/mktime.m4
+++ /dev/null
@@ -1,167 +0,0 @@
-#serial 4
-
-dnl From Jim Meyering.
-dnl FIXME: this should migrate into libit.
-
-AC_DEFUN(AM_FUNC_MKTIME,
-[AC_REQUIRE([AC_HEADER_TIME])dnl
- AC_CHECK_HEADERS(sys/time.h unistd.h)
- AC_CHECK_FUNCS(alarm)
- AC_CACHE_CHECK([for working mktime], am_cv_func_working_mktime,
-  [AC_TRY_RUN(
-changequote(<<, >>)dnl
-<</* Test program from Paul Eggert (address@hidden)
-   and Tony Leneis (address@hidden).  */
-#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
-
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-
-#if !HAVE_ALARM
-# define alarm(X) /* empty */
-#endif
-
-/* Work around redefinition to rpl_putenv by other config tests.  */
-#undef putenv
-
-static time_t time_t_max;
-
-/* Values we'll use to set the TZ environment variable.  */
-static const char *const tz_strings[] = {
-  (const char *) 0, "TZ=GMT0", "TZ=JST-9",
-  "TZ=EST+3EDT+2,M10.1.0/00:00:00,M2.3.0/00:00:00"
-};
-#define N_STRINGS (sizeof (tz_strings) / sizeof (tz_strings[0]))
-
-/* Fail if mktime fails to convert a date in the spring-forward gap.
-   Based on a problem report from Andreas Jaeger.  */
-static void
-spring_forward_gap ()
-{
-  /* glibc (up to about 1998-10-07) failed this test) */
-  struct tm tm;
-
-  /* Use the portable POSIX.1 specification "TZ=PST8PDT,M4.1.0,M10.5.0"
-     instead of "TZ=America/Vancouver" in order to detect the bug even
-     on systems that don't support the Olson extension, or don't have the
-     full zoneinfo tables installed.  */
-  putenv ("TZ=PST8PDT,M4.1.0,M10.5.0");
-
-  tm.tm_year = 98;
-  tm.tm_mon = 3;
-  tm.tm_mday = 5;
-  tm.tm_hour = 2;
-  tm.tm_min = 0;
-  tm.tm_sec = 0;
-  tm.tm_isdst = -1;
-  if (mktime (&tm) == (time_t)-1)
-    exit (1);
-}
-
-static void
-mktime_test (now)
-     time_t now;
-{
-  struct tm *lt;
-  if ((lt = localtime (&now)) && mktime (lt) != now)
-    exit (1);
-  now = time_t_max - now;
-  if ((lt = localtime (&now)) && mktime (lt) != now)
-    exit (1);
-}
-
-static void
-irix_6_4_bug ()
-{
-  /* Based on code from Ariel Faigon.  */
-  struct tm tm;
-  tm.tm_year = 96;
-  tm.tm_mon = 3;
-  tm.tm_mday = 0;
-  tm.tm_hour = 0;
-  tm.tm_min = 0;
-  tm.tm_sec = 0;
-  tm.tm_isdst = -1;
-  mktime (&tm);
-  if (tm.tm_mon != 2 || tm.tm_mday != 31)
-    exit (1);
-}
-
-static void
-bigtime_test (j)
-     int j;
-{
-  struct tm tm;
-  time_t now;
-  tm.tm_year = tm.tm_mon = tm.tm_mday = tm.tm_hour = tm.tm_min = tm.tm_sec = j;
-  /* This test makes some buggy mktime implementations loop.
-     Give up after 10 seconds.  */
-  alarm (10);
-  now = mktime (&tm);
-  alarm (0);
-  if (now != (time_t) -1)
-    {
-      struct tm *lt = localtime (&now);
-      if (! (lt
-            && lt->tm_year == tm.tm_year
-            && lt->tm_mon == tm.tm_mon
-            && lt->tm_mday == tm.tm_mday
-            && lt->tm_hour == tm.tm_hour
-            && lt->tm_min == tm.tm_min
-            && lt->tm_sec == tm.tm_sec
-            && lt->tm_yday == tm.tm_yday
-            && lt->tm_wday == tm.tm_wday
-            && ((lt->tm_isdst < 0 ? -1 : 0 < lt->tm_isdst)
-                 == (tm.tm_isdst < 0 ? -1 : 0 < tm.tm_isdst))))
-       exit (1);
-    }
-}
-
-int
-main ()
-{
-  time_t t, delta;
-  int i, j;
-
-  for (time_t_max = 1; 0 < time_t_max; time_t_max *= 2)
-    continue;
-  time_t_max--;
-  delta = time_t_max / 997; /* a suitable prime number */
-  for (i = 0; i < N_STRINGS; i++)
-    {
-      if (tz_strings[i])
-       putenv (tz_strings[i]);
-
-      for (t = 0; t <= time_t_max - delta; t += delta)
-       mktime_test (t);
-      mktime_test ((time_t) 60 * 60);
-      mktime_test ((time_t) 60 * 60 * 24);
-
-      for (j = 1; 0 < j; j *= 2)
-        bigtime_test (j);
-      bigtime_test (j - 1);
-    }
-  irix_6_4_bug ();
-  spring_forward_gap ();
-  exit (0);
-}
-             >>,
-changequote([, ])dnl
-            am_cv_func_working_mktime=yes, am_cv_func_working_mktime=no,
-            dnl When crosscompiling, assume mktime is missing or broken.
-            am_cv_func_working_mktime=no)
-  ])
-  if test $am_cv_func_working_mktime = no; then
-    LIBOBJS="$LIBOBJS mktime.o"
-  fi
-])
diff --git a/m4/multi.m4 b/m4/multi.m4
index b0e6591..226926d 100644
--- a/m4/multi.m4
+++ b/m4/multi.m4
@@ -1,34 +1,43 @@
-dnl Add --enable-multilib to configure.
-dnl Usage: AM_ENABLE_MULTILIB([makefile, [rel-to-top-srcdir]])
+# serial 2
 
-AC_DEFUN(AM_ENABLE_MULTILIB, [
-dnl Default to --enable-multilib
+# AM_ENABLE_MULTILIB([MAKEFILE], [REL-TO-TOP-SRCDIR])
+# ---------------------------------------------------
+# Add --enable-multilib to configure.
+AC_DEFUN([AM_ENABLE_MULTILIB],
+[# Default to --enable-multilib
 AC_ARG_ENABLE(multilib,
 [  --enable-multilib         build many library versions (default)],
-[case "${enableval}" in
+[case "$enableval" in
   yes) multilib=yes ;;
   no)  multilib=no ;;
-  *)   AC_MSG_ERROR(bad value ${enableval} for multilib option) ;;
- esac], [multilib=yes]
+  *)   AC_MSG_ERROR([bad value $enableval for multilib option]) ;;
+ esac],
+              [multilib=yes])
 
-dnl We may get other options which we are undocumented:
-dnl --with-target-subdir, --with-multisrctop, --with-multisubdir
+# We may get other options which we leave undocumented:
+# --with-target-subdir, --with-multisrctop, --with-multisubdir
+# See config-ml.in if you want the gory details.
 
-if test "[$]{srcdir}" = "."; then
-  if test "[$]{with_target_subdir}" != "."; then
-    multi_basedir="[$]{srcdir}/[$]{with_multisrctop}../ifelse([$2],,,[$2])"
+if test "$srcdir" = "."; then
+  if test "$with_target_subdir" != "."; then
+    multi_basedir="$srcdir/$with_multisrctop../$2"
   else
-    multi_basedir="[$]{srcdir}/[$]{with_multisrctop}ifelse([$2],,,[$2])"
+    multi_basedir="$srcdir/$with_multisrctop$2"
   fi
 else
-  multi_basedir="[$]{srcdir}/ifelse([$2],,,[$2])"
+  multi_basedir="$srcdir/$2"
 fi
 AC_SUBST(multi_basedir)
 
 AC_OUTPUT_COMMANDS([
-if test -n "$CONFIG_FILES"; then
-   ac_file=ifelse([$1],,Makefile,[$1]) . ..ifelse([$2],,,/[$2])/config-ml.in
-fi], [
+# Only add multilib support code if we just rebuilt the top-level
+# Makefile.
+case " $CONFIG_FILES " in
+ *" ifelse([$1],,Makefile,[$1]) "*)
+   ac_file=ifelse([$1],,Makefile,[$1]) . ${multi_basedir}/config-ml.in
+   ;;
+esac],
+                   [
 srcdir="$srcdir"
 host="$host"
 target="$target"
@@ -38,4 +47,4 @@ with_target_subdir="$with_target_subdir"
 ac_configure_args="${multilib_arg} ${ac_configure_args}"
 multi_basedir="$multi_basedir"
 CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
-CC="$CC"]))dnl
+CC="$CC"])])dnl
diff --git a/m4/obstack.m4 b/m4/obstack.m4
index df6fcba..0ef6f0a 100644
--- a/m4/obstack.m4
+++ b/m4/obstack.m4
@@ -1,7 +1,7 @@
-dnl From Jim Meyering.
-dnl FIXME: migrate into libit.
+# From Jim Meyering.
+# FIXME: migrate into libit.
 
-AC_DEFUN(AM_FUNC_OBSTACK,
+AC_DEFUN([AM_FUNC_OBSTACK],
 [AC_CACHE_CHECK([for obstacks], am_cv_func_obstack,
  [AC_TRY_LINK([#include "obstack.h"],
              [struct obstack *mem;obstack_free(mem,(char *) 0)],
@@ -10,6 +10,6 @@ AC_DEFUN(AM_FUNC_OBSTACK,
  if test $am_cv_func_obstack = yes; then
    AC_DEFINE(HAVE_OBSTACK,1,[Define if libc includes obstacks])
  else
-   LIBOBJS="$LIBOBJS obstack.o"
+   LIBOBJS="$LIBOBJS obstack.$ac_objext"
  fi
 ])
diff --git a/m4/protos.m4 b/m4/protos.m4
index 0079f74..9fe3adb 100644
--- a/m4/protos.m4
+++ b/m4/protos.m4
@@ -5,7 +5,7 @@
 
 # serial 1
 
-AC_DEFUN(AM_C_PROTOTYPES,
+AC_DEFUN([AM_C_PROTOTYPES],
 [AC_REQUIRE([AM_PROG_CC_STDC])
 AC_REQUIRE([AC_PROG_CPP])
 AC_MSG_CHECKING([for function prototypes])
@@ -16,10 +16,10 @@ if test "$am_cv_prog_cc_stdc" != no; then
 else
   AC_MSG_RESULT(no)
   U=_ ANSI2KNR=./ansi2knr
-  # Ensure some checks needed by ansi2knr itself.
-  AC_HEADER_STDC
-  AC_CHECK_HEADERS(string.h)
 fi
+# Ensure some checks needed by ansi2knr itself.
+AC_HEADER_STDC
+AC_CHECK_HEADERS(string.h)
 AC_SUBST(U)dnl
 AC_SUBST(ANSI2KNR)dnl
 ])
diff --git a/m4/ptrdiff.m4 b/m4/ptrdiff.m4
index 9818ddf..687b655 100644
--- a/m4/ptrdiff.m4
+++ b/m4/ptrdiff.m4
@@ -2,7 +2,7 @@
 
 # serial 1
 
-AC_DEFUN(AM_TYPE_PTRDIFF_T,
+AC_DEFUN([AM_TYPE_PTRDIFF_T],
   [AC_CACHE_CHECK([for ptrdiff_t], am_cv_type_ptrdiff_t,
      [AC_TRY_COMPILE([#include <stddef.h>], [ptrdiff_t p],
                     am_cv_type_ptrdiff_t=yes, am_cv_type_ptrdiff_t=no)])
diff --git a/m4/python.m4 b/m4/python.m4
new file mode 100644
index 0000000..0a31594
--- /dev/null
+++ b/m4/python.m4
@@ -0,0 +1,129 @@
+## ------------------------
+## Python file handling
+## From Andrew Dalke
+## Updated by James Henstridge
+## ------------------------
+
+# AM_PATH_PYTHON([MINIMUM-VERSION])
+
+# Adds support for distributing Python modules and packages.  To
+# install modules, copy them to $(pythondir), using the python_PYTHON
+# automake variable.  To install a package with the same name as the
+# automake package, install to $(pkgpythondir), or use the
+# pkgpython_PYTHON automake variable.
+
+# The variables $(pyexecdir) and $(pkgpyexecdir) are provided as
+# locations to install python extension modules (shared libraries).
+# Another macro is required to find the appropriate flags to compile
+# extension modules.
+
+# If your package is configured with a different prefix to python,
+# users will have to add the install directory to the PYTHONPATH
+# environment variable, or create a .pth file (see the python
+# documentation for details).
+
+# If the MINIUMUM-VERSION argument is passed, AM_PATH_PYTHON will
+# cause an error if the version of python installed on the system
+# doesn't meet the requirement.  MINIMUM-VERSION should consist of
+# numbers and dots only.
+
+
+AC_DEFUN([AM_PATH_PYTHON],
+ [
+  dnl Find a version of Python.  I could check for python versions 1.4
+  dnl or earlier, but the default installation locations changed from
+  dnl $prefix/lib/site-python in 1.4 to $prefix/lib/python1.5/site-packages
+  dnl in 1.5, and I don't want to maintain that logic.
+
+  AC_PATH_PROG(PYTHON, python python2.1 python2.0 python1.6 python1.5)
+
+  dnl should we do the version check?
+  ifelse([$1],[],,[
+    AC_MSG_CHECKING(if Python version >= $1)
+    changequote(<<, >>)dnl
+    prog="
+import sys, string
+minver = '$1'
+pyver = string.split(sys.version)[0]  # first word is version string
+# split strings by '.' and convert to numeric
+minver = map(string.atoi, string.split(minver, '.'))
+pyver = map(string.atoi, string.split(pyver, '.'))
+# we can now do comparisons on the two lists:
+if pyver >= minver:
+       sys.exit(0)
+else:
+       sys.exit(1)"
+    changequote([, ])dnl
+    if $PYTHON -c "$prog" 1>&AC_FD_CC 2>&AC_FD_CC
+    then
+      AC_MSG_RESULT(okay)
+    else
+      AC_MSG_ERROR(too old)
+    fi
+  ])
+
+  AC_MSG_CHECKING([local Python configuration])
+
+  dnl Query Python for its version number.  Getting [:3] seems to be
+  dnl the best way to do this; it's what "site.py" does in the standard
+  dnl library.  Need to change quote character because of [:3]
+
+  AC_SUBST(PYTHON_VERSION)
+  changequote(<<, >>)dnl
+  PYTHON_VERSION=`$PYTHON -c "import sys; print sys.version[:3]"`
+  changequote([, ])dnl
+
+
+  dnl Use the values of $prefix and $exec_prefix for the corresponding
+  dnl values of PYTHON_PREFIX and PYTHON_EXEC_PREFIX.  These are made
+  dnl distinct variables so they can be overridden if need be.  However,
+  dnl general consensus is that you shouldn't need this ability.
+
+  AC_SUBST(PYTHON_PREFIX)
+  PYTHON_PREFIX='${prefix}'
+
+  AC_SUBST(PYTHON_EXEC_PREFIX)
+  PYTHON_EXEC_PREFIX='${exec_prefix}'
+
+  dnl At times (like when building shared libraries) you may want
+  dnl to know which OS platform Python thinks this is.
+
+  AC_SUBST(PYTHON_PLATFORM)
+  PYTHON_PLATFORM=`$PYTHON -c "import sys; print sys.platform"`
+
+
+  dnl Set up 4 directories:
+
+  dnl pythondir -- where to install python scripts.  This is the
+  dnl   site-packages directory, not the python standard library
+  dnl   directory like in previous automake betas.  This behaviour
+  dnl   is more consistent with lispdir.m4 for example.
+  dnl
+  dnl Also, if the package prefix isn't the same as python's prefix,
+  dnl then the old $(pythondir) was pretty useless.
+
+  AC_SUBST(pythondir)
+  pythondir=$PYTHON_PREFIX"/lib/python"$PYTHON_VERSION/site-packages
+
+  dnl pkgpythondir -- $PACKAGE directory under pythondir.  Was
+  dnl   PYTHON_SITE_PACKAGE in previous betas, but this naming is
+  dnl   more consistent with the rest of automake.
+  dnl   Maybe this should be put in python.am?
+
+  AC_SUBST(pkgpythondir)
+  pkgpythondir=\${pythondir}/$PACKAGE
+
+  dnl pyexecdir -- directory for installing python extension modules
+  dnl   (shared libraries)  Was PYTHON_SITE_EXEC in previous betas.
+
+  AC_SUBST(pyexecdir)
+  pyexecdir=$PYTHON_EXEC_PREFIX"/lib/python"$PYTHON_VERSION/site-packages
+
+  dnl pkgpyexecdir -- $(pyexecdir)/$(PACKAGE)
+  dnl   Maybe this should be put in python.am?
+
+  AC_SUBST(pkgpyexecdir)
+  pkgpyexecdir=\${pyexecdir}/$PACKAGE
+
+  AC_MSG_RESULT([looks good])
+])
diff --git a/m4/regex.m4 b/m4/regex.m4
index 309102e..1d35c98 100644
--- a/m4/regex.m4
+++ b/m4/regex.m4
@@ -2,36 +2,45 @@
 ## Check if --with-regex was given.  ##
 ## --------------------------------- ##
 
-# serial 1
+# serial 2
 
-# The idea is to distribute rx.[hc] and regex.[hc] together, for a while.
-# The WITH_REGEX symbol (which should also be documented in acconfig.h)
-# is used to decide which of regex.h or rx.h should be included in the
-# application.  If `./configure --with-regex' is given (the default), the
-# package will use gawk's regex.  If `./configure --without-regex', a
-# check is made to see if rx is already installed, as with newer Linux'es.
-# If not found, the package will use the rx from the distribution.
-# If found, the package will use the system's rx which, on Linux at least,
-# will result in a smaller executable file.
-
-AC_DEFUN(AM_WITH_REGEX,
-[AC_MSG_CHECKING(which of GNU rx or gawk's regex is wanted)
+# AM_WITH_REGEX
+# -------------
+#
+# The idea is to distribute rx.[hc] and regex.[hc] together, for a
+# while.  The WITH_REGEX symbol is used to decide which of regex.h or
+# rx.h should be included in the application.  If `./configure
+# --with-regex' is given (the default), the package will use gawk's
+# regex.  If `./configure --without-regex', a check is made to see if
+# rx is already installed, as with newer Linux'es.  If not found, the
+# package will use the rx from the distribution.  If found, the
+# package will use the system's rx which, on Linux at least, will
+# result in a smaller executable file.
+#
+# FIXME: This macro seems quite obsolete now since rx doesn't seem to
+# be maintained, while regex is.
+AC_DEFUN([AM_WITH_REGEX],
+[ifdef([AC_LIBSOURCES],
+       [AC_LIBSOURCES([rx.h, rx.c, regex.c, regex.h])])dnl
+AC_MSG_CHECKING([which of GNU rx or gawk's regex is wanted])
 AC_ARG_WITH(regex,
 [  --without-regex         use GNU rx in lieu of gawk's regex for matching],
-[test "$withval" = yes && am_with_regex=1],
-[am_with_regex=1])
+            [test "$withval" = yes && am_with_regex=1],
+            [am_with_regex=1])
 if test -n "$am_with_regex"; then
   AC_MSG_RESULT(regex)
-  AC_DEFINE(WITH_REGEX,1,[Define if using GNU regex])
+  AC_DEFINE(WITH_REGEX, 1, [Define if using GNU regex])
   AC_CACHE_CHECK([for GNU regex in libc], am_cv_gnu_regex,
-    AC_TRY_LINK([], [extern int re_max_failures; re_max_failures = 1],
-               am_cv_gnu_regex=yes, am_cv_gnu_regex=no))
+    [AC_TRY_LINK([],
+                 [extern int re_max_failures; re_max_failures = 1],
+                [am_cv_gnu_regex=yes],
+                 [am_cv_gnu_regex=no])])
   if test $am_cv_gnu_regex = no; then
-    LIBOBJS="$LIBOBJS regex.o"
+    LIBOBJS="$LIBOBJS regex.$ac_objext"
   fi
 else
   AC_MSG_RESULT(rx)
-  AC_CHECK_FUNC(re_rx_search, , [LIBOBJS="$LIBOBJS rx.o"])
+  AC_CHECK_FUNC(re_rx_search, , [LIBOBJS="$LIBOBJS rx.$ac_objext"])
 fi
 AC_SUBST(LIBOBJS)dnl
 ])
diff --git a/m4/sanity.m4 b/m4/sanity.m4
index 84c1eee..4259aec 100644
--- a/m4/sanity.m4
+++ b/m4/sanity.m4
@@ -2,24 +2,29 @@
 # Check to make sure that the build environment is sane.
 #
 
-AC_DEFUN(AM_SANITY_CHECK,
+# serial 3
+
+# AM_SANITY_CHECK
+# ---------------
+AC_DEFUN([AM_SANITY_CHECK],
 [AC_MSG_CHECKING([whether build environment is sane])
 # Just in case
 sleep 1
-echo timestamp > conftestfile
+echo timestamp > conftest.file
 # Do `set' in a subshell so we don't clobber the current shell's
 # arguments.  Must try -L first in case configure is actually a
 # symlink; some systems play weird games with the mod time of symlinks
 # (eg FreeBSD returns the mod time of the symlink's containing
 # directory).
 if (
-   set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
-   if test "[$]*" = "X"; then
+   set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
+   if test "$[*]" = "X"; then
       # -L didn't work.
-      set X `ls -t $srcdir/configure conftestfile`
+      set X `ls -t $srcdir/configure conftest.file`
    fi
-   if test "[$]*" != "X $srcdir/configure conftestfile" \
-      && test "[$]*" != "X conftestfile $srcdir/configure"; then
+   rm -f conftest.file
+   if test "$[*]" != "X $srcdir/configure conftest.file" \
+      && test "$[*]" != "X conftest.file $srcdir/configure"; then
 
       # If neither matched, then we have a broken ls.  This can happen
       # if, for instance, CONFIG_SHELL is bash and it inherits a
@@ -29,7 +34,7 @@ if (
 alias in your environment])
    fi
 
-   test "[$]2" = conftestfile
+   test "$[2]" = conftest.file
    )
 then
    # Ok.
@@ -38,5 +43,4 @@ else
    AC_MSG_ERROR([newly created file is older than distributed files!
 Check your system clock])
 fi
-rm -f conftest*
 AC_MSG_RESULT(yes)])
diff --git a/m4/strip.m4 b/m4/strip.m4
new file mode 100644
index 0000000..729f915
--- /dev/null
+++ b/m4/strip.m4
@@ -0,0 +1,11 @@
+# One issue with vendor `install' (even GNU) is that you can't
+# specify the program used to strip binaries.  This is especially
+# annoying in cross-compiling environments, where the build's strip
+# is unlikely to handle the host's binaries.
+# Fortunately install-sh will honor a STRIPPROG variable, so we
+# always use install-sh in `make install-strip', and initialize
+# STRIPPROG with the value of the STRIP variable (set by the user).
+AC_DEFUN([AM_PROG_INSTALL_STRIP],
+[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
+AC_SUBST([INSTALL_STRIP_PROGRAM])])
diff --git a/m4/strtod.m4 b/m4/strtod.m4
index 8aaf4b7..4bdcdb0 100644
--- a/m4/strtod.m4
+++ b/m4/strtod.m4
@@ -1,4 +1,4 @@
-## Copyright (C) 1996 Free Software Foundation, Inc.
+## Copyright 1996 Free Software Foundation, Inc.
 
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -23,11 +23,11 @@
 ## @maindex FUNC_STRTOD
 ## @ovindex LIBOBJS
 ## If the @code{strtod} function is not available, or does not work
-## correctly (like the one on SunOS 5.4), add @samp{strtod.o} to output
+## correctly (like the one on SunOS 5.4), add @samp{strtod.$ac_objext} to 
output
 ## variable @code{LIBOBJS}.
 ## @end defmac
 
-AC_DEFUN(AM_FUNC_STRTOD,
+AC_DEFUN([AM_FUNC_STRTOD],
 [AC_CACHE_CHECK(for working strtod, am_cv_func_strtod,
 [AC_TRY_RUN([
 double strtod ();
@@ -56,14 +56,14 @@ main()
   exit (0);
 }
 ], am_cv_func_strtod=yes, am_cv_func_strtod=no, am_cv_func_strtod=no)])
-test $am_cv_func_strtod = no && LIBOBJS="$LIBOBJS strtod.o"
+test $am_cv_func_strtod = no && LIBOBJS="$LIBOBJS strtod.$ac_objext"
 AC_SUBST(LIBOBJS)dnl
 am_cv_func_strtod_needs_libm=no
 if test $am_cv_func_strtod = no; then
   AC_CHECK_FUNCS(pow)
   if test $ac_cv_func_pow = no; then
     AC_CHECK_LIB(m, pow, [am_cv_func_strtod_needs_libm=yes],
-                [AC_MSG_WARN(can't find library containing definition of pow)])
+                [AC_MSG_WARN([can't find library containing definition of 
pow])])
   fi
 fi
 ])
diff --git a/m4/termios.m4 b/m4/termios.m4
index 1eb31d1..d169890 100644
--- a/m4/termios.m4
+++ b/m4/termios.m4
@@ -1,8 +1,8 @@
-dnl From Jim Meyering.
+# From Jim Meyering.
 
 # serial 1
 
-AC_DEFUN(AM_SYS_POSIX_TERMIOS,
+AC_DEFUN([AM_SYS_POSIX_TERMIOS],
 [AC_CACHE_CHECK([POSIX termios], am_cv_sys_posix_termios,
   [AC_TRY_LINK([#include <sys/types.h>
 #include <unistd.h>
diff --git a/m4/winsz.m4 b/m4/winsz.m4
index fa81c9d..70be76c 100644
--- a/m4/winsz.m4
+++ b/m4/winsz.m4
@@ -1,8 +1,8 @@
-dnl From Jim Meyering.
+# From Jim Meyering.
 
 # serial 1
 
-AC_DEFUN(AM_HEADER_TIOCGWINSZ_NEEDS_SYS_IOCTL,
+AC_DEFUN([AM_HEADER_TIOCGWINSZ_NEEDS_SYS_IOCTL],
 [AC_REQUIRE([AM_SYS_POSIX_TERMIOS])
  AC_CACHE_CHECK([whether use of TIOCGWINSZ requires sys/ioctl.h],
                am_cv_sys_tiocgwinsz_needs_sys_ioctl_h,
diff --git a/mans-vars.am b/mans-vars.am
deleted file mode 100644
index 14089f2..0000000
--- a/mans-vars.am
+++ /dev/null
@@ -1,18 +0,0 @@
-## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc.
-
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2, or (at your option)
-## any later version.
-
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-## 02111-1307, USA.
-NROFF = nroff
diff --git a/mans.am b/mans.am
deleted file mode 100644
index 6c2401b..0000000
--- a/mans.am
+++ /dev/null
@@ -1,61 +0,0 @@
-## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1998 Free Software Foundation, Inc.
-
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2, or (at your option)
-## any later version.
-
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-## 02111-1307, USA.
address@hidden@:
-       $(mkinstalldirs) $(DESTDIR)$(address@hidden@dir)
-       @list='$(address@hidden@_MANS)'; \
-## Extract all items from man_MANS that should go in this section.
-## This must be done dynamically to support conditionals.
-       l2='$(man_MANS)'; for i in $$l2; do \
-         case "$$i" in \
-## Have to accept files like `foo.1c'.
-           address@hidden@*) list="$$list $$i" ;; \
-         esac; \
-       done; \
-       for i in $$list; do \
-## Find the file.
-         if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
-         else file=$$i; fi; \
-## Extract basename of man page and run it through the program rename
-## transform.
-         ext=`echo $$i | sed -e 's/^.*\\.//'`; \
-         inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-         inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-         echo " $(INSTALL_DATA) $$file 
$(DESTDIR)$(address@hidden@dir)/$$inst"; \
-         $(INSTALL_DATA) $$file $(DESTDIR)$(address@hidden@dir)/$$inst; \
-       done
-
-## This is just completely gross.
address@hidden@:
-       @list='$(address@hidden@_MANS)'; \
-## Extract all items from man_MANS that should go in this section.
-## This must be done dynamically to support conditionals.
-       l2='$(man_MANS)'; for i in $$l2; do \
-         case "$$i" in \
-## Have to accept files like `foo.1c'.
-           address@hidden@*) list="$$list $$i" ;; \
-         esac; \
-       done; \
-       for i in $$list; do \
-## Extract basename of man page and run it through the program rename
-## transform.
-         ext=`echo $$i | sed -e 's/^.*\\.//'`; \
-         inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-         inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-         echo " rm -f $(DESTDIR)$(address@hidden@dir)/$$inst"; \
-         rm -f $(DESTDIR)$(address@hidden@dir)/$$inst; \
-       done
diff --git a/mdate-sh b/mdate-sh
index 37171f2..0c88e75 100755
--- a/mdate-sh
+++ b/mdate-sh
@@ -1,6 +1,6 @@
 #!/bin/sh
 # Get modification time of a file or directory and pretty-print it.
-# Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+# Copyright 1995, 1996, 1997 Free Software Foundation, Inc.
 # written by Ulrich Drepper <address@hidden>, June 1995
 #
 # This program is free software; you can redistribute it and/or modify
diff --git a/missing b/missing
index 7789652..0a7fb5a 100755
--- a/missing
+++ b/missing
@@ -1,7 +1,7 @@
 #! /bin/sh
 # Common stub for a few missing GNU programs while installing.
-# Copyright (C) 1996, 1997 Free Software Foundation, Inc.
-# Franc,ois Pinard <address@hidden>, 1996.
+# Copyright 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
+# Originally by Fran,cois Pinard <address@hidden>, 1996.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -18,11 +18,37 @@
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 # 02111-1307, USA.
 
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
 if test $# -eq 0; then
   echo 1>&2 "Try \`$0 --help' for more information"
   exit 1
 fi
 
+run=:
+
+# In the cases where this matters, `missing' is being run in the
+# srcdir already.
+if test -f configure.ac; then
+  configure_ac=configure.ac
+else
+  configure_ac=configure.in
+fi
+
+case "$1" in
+--run)
+  # Try to run requested program, and just exit if it succeeds.
+  run=
+  shift
+  "$@" && exit 0
+  ;;
+esac
+
+# If it does not exist, or fails to run (possibly an outdated version),
+# try to emulate it.
 case "$1" in
 
   -h|--h|--he|--hel|--help)
@@ -35,6 +61,7 @@ error status if there is no known handling for PROGRAM.
 Options:
   -h, --help      display this help and exit
   -v, --version   output version information and exit
+  --run           try to run the given command, and emulate it if it fails
 
 Supported PROGRAM values:
   aclocal      touch file \`aclocal.m4'
@@ -43,13 +70,15 @@ Supported PROGRAM values:
   automake     touch all \`Makefile.in' files
   bison        create \`y.tab.[ch]', if possible, from existing .[ch]
   flex         create \`lex.yy.c', if possible, from existing .c
+  help2man     touch the output file
   lex          create \`lex.yy.c', if possible, from existing .c
   makeinfo     touch the output file
+  tar          try tar, gnutar, gtar, then tar without non-portable flags
   yacc         create \`y.tab.[ch]', if possible, from existing .[ch]"
     ;;
 
   -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
-    echo "missing - GNU libit 0.0"
+    echo "missing 0.3 - GNU automake"
     ;;
 
   -*)
@@ -61,7 +90,7 @@ Supported PROGRAM values:
   aclocal)
     echo 1>&2 "\
 WARNING: \`$1' is missing on your system.  You should only need it if
-         you modified \`acinclude.m4' or \`configure.in'.  You might want
+         you modified \`acinclude.m4' or \`${configure_ac}'.  You might want
          to install the \`Automake' and \`Perl' packages.  Grab them from
          any GNU archive site."
     touch aclocal.m4
@@ -70,7 +99,7 @@ WARNING: \`$1' is missing on your system.  You should only 
need it if
   autoconf)
     echo 1>&2 "\
 WARNING: \`$1' is missing on your system.  You should only need it if
-         you modified \`configure.in'.  You might want to install the
+         you modified \`${configure_ac}'.  You might want to install the
          \`Autoconf' and \`GNU m4' packages.  Grab them from any GNU
          archive site."
     touch configure
@@ -79,10 +108,10 @@ WARNING: \`$1' is missing on your system.  You should only 
need it if
   autoheader)
     echo 1>&2 "\
 WARNING: \`$1' is missing on your system.  You should only need it if
-         you modified \`acconfig.h' or \`configure.in'.  You might want
+         you modified \`acconfig.h' or \`${configure_ac}'.  You might want
          to install the \`Autoconf' and \`GNU m4' packages.  Grab them
          from any GNU archive site."
-    files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' configure.in`
+    files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' 
${configure_ac}`
     test -z "$files" && files="config.h"
     touch_files=
     for f in $files; do
@@ -98,7 +127,7 @@ WARNING: \`$1' is missing on your system.  You should only 
need it if
   automake)
     echo 1>&2 "\
 WARNING: \`$1' is missing on your system.  You should only need it if
-         you modified \`Makefile.am', \`acinclude.m4' or \`configure.in'.
+         you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
          You might want to install the \`Automake' and \`Perl' packages.
          Grab them from any GNU archive site."
     find . -type f -name Makefile.am -print |
@@ -159,7 +188,32 @@ WARNING: \`$1' is missing on your system.  You should only 
need it if
     fi
     ;;
 
+  help2man)
+    echo 1>&2 "\
+WARNING: \`$1' is missing on your system.  You should only need it if
+        you modified a dependency of a manual page.  You may need the
+        \`Help2man' package in order for those modifications to take
+        effect.  You can get \`Help2man' from any GNU archive site."
+
+    file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
+    if test -z "$file"; then
+       file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
+    fi
+    if [ -f "$file" ]; then
+       touch $file
+    else
+       test -z "$file" || exec >$file
+       echo ".ab help2man is required to generate this page"
+       exit 1
+    fi
+    ;;
+
   makeinfo)
+    if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then
+       # We have makeinfo, but it failed.
+       exit 1
+    fi
+
     echo 1>&2 "\
 WARNING: \`$1' is missing on your system.  You should only need it if
          you modified a \`.texi' or \`.texinfo' file, or any other file
@@ -175,6 +229,45 @@ WARNING: \`$1' is missing on your system.  You should only 
need it if
     touch $file
     ;;
 
+  tar)
+    shift
+    if test -n "$run"; then
+      echo 1>&2 "ERROR: \`tar' requires --run"
+      exit 1
+    fi
+
+    # We have already tried tar in the generic part.
+    # Look for gnutar/gtar before invocation to avoid ugly error
+    # messages.
+    if (gnutar --version > /dev/null 2>&1); then
+       gnutar ${1+"$@"} && exit 0
+    fi
+    if (gtar --version > /dev/null 2>&1); then
+       gtar ${1+"$@"} && exit 0
+    fi
+    firstarg="$1"
+    if shift; then
+       case "$firstarg" in
+       *o*)
+           firstarg=`echo "$firstarg" | sed s/o//`
+           tar "$firstarg" ${1+"$@"} && exit 0
+           ;;
+       esac
+       case "$firstarg" in
+       *h*)
+           firstarg=`echo "$firstarg" | sed s/h//`
+           tar "$firstarg" ${1+"$@"} && exit 0
+           ;;
+       esac
+    fi
+
+    echo 1>&2 "\
+WARNING: I can't seem to be able to run \`tar' with the given arguments.
+         You may want to install GNU tar or Free paxutils, or check the
+         command line arguments."
+    exit 1
+    ;;
+
   *)
     echo 1>&2 "\
 WARNING: \`$1' is needed, and you do not seem to have it handy on your
diff --git a/multilib.am b/multilib.am
deleted file mode 100644
index 728a78d..0000000
--- a/multilib.am
+++ /dev/null
@@ -1,45 +0,0 @@
-## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1998 Free Software Foundation, Inc.
-
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2, or (at your option)
-## any later version.
-
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-## 02111-1307, USA.
-## Multilib support variables.
-MULTISRCTOP =
-MULTIBUILDTOP =
-MULTIDIRS =
-MULTISUBDIR =
-MULTIDO = true
-MULTICLEAN = true
-
-all-multi:
-       $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do
-install-multi:
-       $(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do
-mostlyclean-multi:
-       $(MULTICLEAN) $(AM_MAKEFLAGS) DO=mostlyclean multi-clean
-clean-multi:
-       $(MULTICLEAN) $(AM_MAKEFLAGS) DO=clean multi-clean
-distclean-multi:
-       $(MULTICLEAN) $(AM_MAKEFLAGS) DO=distclean multi-clean
-maintainer-clean-multi:
-       $(MULTICLEAN) $(AM_MAKEFLAGS) DO=maintainer-clean multi-clean
-
-## FIXME: this is probably broken.
-all-recursive: all-multi
-install-recursive: install-multi
-mostlyclean-recursive: mostlyclean-multi
-clean-recursive: clean-multi
-distclean-recursive: distclean-multi
-maintainer-clean-recursive: maintainer-clean-multi
diff --git a/program.am b/program.am
deleted file mode 100644
index be5fb26..0000000
--- a/program.am
+++ /dev/null
@@ -1,25 +0,0 @@
-## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
-
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2, or (at your option)
-## any later version.
-
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-## 02111-1307, USA.
address@hidden@@EXEEXT@: $(@address@hidden) $(@address@hidden)
-## Remove program before linking.  Otherwise the link will fail if the
-## program is running somewhere.  FIXME: this could be a loss if
-## you're using an incremental linker.  Maybe we should think twice?
-## Or maybe not... sadly, incremental linkers are rarer than losing
-## systems.
-       @rm -f @PROGRAM@@EXEEXT@
-       $(@XLINK@) $(@address@hidden) $(@address@hidden) $(@address@hidden) 
$(LIBS)
diff --git a/progs-clean.am b/progs-clean.am
deleted file mode 100644
index 2b101f0..0000000
--- a/progs-clean.am
+++ /dev/null
@@ -1,25 +0,0 @@
-## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
-
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2, or (at your option)
-## any later version.
-
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-## 02111-1307, USA.
address@hidden@PROGRAMS:
-
address@hidden@PROGRAMS:
-       -test -z "$(@address@hidden)" || rm -f $(@address@hidden)
-
address@hidden@PROGRAMS:
-
address@hidden@PROGRAMS:
diff --git a/progs.am b/progs.am
deleted file mode 100644
index 3a598c3..0000000
--- a/progs.am
+++ /dev/null
@@ -1,37 +0,0 @@
-## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
-
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2, or (at your option)
-## any later version.
-
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-## 02111-1307, USA.
address@hidden@PROGRAMS: $(@address@hidden)
-       @$(NORMAL_INSTALL)
-       $(mkinstalldirs) $(DESTDIR)$(@address@hidden)
-## Funny invocation because Makefile variable can be empty, leading to
-## a syntax error in sh.
-       @list='$(@address@hidden)'; for p in $$list; do \
-         if test -f $$p; then \
-## Note that we explicitly set the libtool mode.  This avoids any
-## lossage if the install program doesn't have a name that libtool
-## expects.
-           echo " @LIBTOOL --mode=install@ $(INSTALL_PROGRAM) $$p 
$(DESTDIR)$(@address@hidden)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed 
'$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
-           @LIBTOOL --mode=install@ $(INSTALL_PROGRAM) $$p 
$(DESTDIR)$(@address@hidden)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed 
'$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
-         else :; fi; \
-       done
-
address@hidden@PROGRAMS:
-       @$(NORMAL_UNINSTALL)
-       list='$(@address@hidden)'; for p in $$list; do \
-         rm -f $(DESTDIR)$(@address@hidden)/`echo $$p|sed 
's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
-       done
diff --git a/remake-hdr.am b/remake-hdr.am
deleted file mode 100644
index 90712da..0000000
--- a/remake-hdr.am
+++ /dev/null
@@ -1,43 +0,0 @@
-## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999 Free Software Foundation, 
Inc.
-
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2, or (at your option)
-## any later version.
-
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-## 02111-1307, USA.
address@hidden@: @STAMP@
-## Recover from removal of CONFIG_HEADER
-       @if test ! -f $@; then \
-               rm -f @STAMP@; \
-               $(MAKE) @STAMP@; \
-       else :; fi
-## Explicitly look in srcdir for benefit of non-GNU makes.
address@hidden@: $(srcdir)/@CONFIG_HEADER_IN@ $(top_builddir)/config.status
-       cd $(top_builddir) \
-         && CONFIG_FILES= address@hidden@ \
-            $(SHELL) ./config.status
-## We used to try to get a real timestamp here.  But the fear is that
-## that will cause unnecessary cvs conflicts
-       @echo timestamp > @STAMP@ 2> /dev/null
-## Explicitly look in srcdir for benefit of non-GNU makes.
-$(srcdir)/@CONFIG_HEADER_IN@: @address@hidden(srcdir)/@address@hidden
-## Recover from removal of CONFIG_HEADER_IN
-       @if test ! -f $@; then \
-               rm -f $(srcdir)/@address@hidden; \
-               $(MAKE) $(srcdir)/@address@hidden; \
-       else :; fi
-$(srcdir)/@address@hidden: $(top_srcdir)/configure.in $(ACLOCAL_M4) @FILES@
-       cd $(top_srcdir) && $(AUTOHEADER)
-## We used to try to get a real timestamp here.  But the fear is that
-## that will cause unnecessary cvs conflicts
-       @echo timestamp > $(srcdir)/@address@hidden 2> /dev/null
diff --git a/remake.am b/remake.am
deleted file mode 100644
index 14d82eb..0000000
--- a/remake.am
+++ /dev/null
@@ -1,24 +0,0 @@
-## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
-
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2, or (at your option)
-## any later version.
-
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-## 02111-1307, USA.
-
-## Explicitly look in srcdir for benefit of non-GNU makes.
-config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-       $(SHELL) ./config.status --recheck
-## Explicitly look in srcdir for benefit of non-GNU makes.
-$(srcdir)/configure: @address@hidden(srcdir)/configure.in $(ACLOCAL_M4) 
$(CONFIGURE_DEPENDENCIES)
-       cd $(srcdir) && $(AUTOCONF)
diff --git a/scripts.am b/scripts.am
deleted file mode 100644
index 420abb4..0000000
--- a/scripts.am
+++ /dev/null
@@ -1,52 +0,0 @@
-## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996, 1998 Free Software Foundation, Inc.
-
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2, or (at your option)
-## any later version.
-
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-## 02111-1307, USA.
address@hidden@SCRIPTS: $(@address@hidden)
-       @$(NORMAL_INSTALL)
-       $(mkinstalldirs) $(DESTDIR)$(@address@hidden)
-## Funny invocation because Makefile variable can be empty, leading to
-## a syntax error in sh.
-       @list='$(@address@hidden)'; for p in $$list; do \
-         if test -f $$p; then \
-           echo " $(INSTALL_SCRIPT) $$p $(DESTDIR)$(@address@hidden)/`echo 
$$p|sed '$(transform)'`"; \
-           $(INSTALL_SCRIPT) $$p $(DESTDIR)$(@address@hidden)/`echo $$p|sed 
'$(transform)'`; \
-         else if test -f $(srcdir)/$$p; then \
-           echo " $(INSTALL_SCRIPT) $(srcdir)/$$p 
$(DESTDIR)$(@address@hidden)/`echo $$p|sed '$(transform)'`"; \
-           $(INSTALL_SCRIPT) $(srcdir)/$$p $(DESTDIR)$(@address@hidden)/`echo 
$$p|sed '$(transform)'`; \
-         else :; fi; fi; \
-       done
-
address@hidden@SCRIPTS:
-       @$(NORMAL_UNINSTALL)
-       list='$(@address@hidden)'; for p in $$list; do \
-         rm -f $(DESTDIR)$(@address@hidden)/`echo $$p|sed '$(transform)'`; \
-       done
-
-## Uncomment line in handle_scripts when this is uncommented.
-## address@hidden@SCRIPTS:
-##     pid=$$$$; list="$(@address@hidden)"; for p in $$list; do \
-##       for opt in --help --version; do \
-##         if test -f $$p; then :; \
-##         else if test -f $(srcdir)/$$p; then \
-##           p=$(srcdir)/$$p; \
-##         else exit 1; fi; fi; \
-##         if $$p $$opt > .chkout$$pid 2> .chkerr$$pid \
-##              && test -n "`cat .chkout$$pid`" \
-##              && test -z "`cat .chkerr$$pid`"; then :; \
-##         else echo "$$p failed $$opt test" 1>&2; exit 1; fi; \
-##       done; \
-##     done; rm -f .chk???$$pid
diff --git a/stamp-vti b/stamp-vti
index b3f0ebb..ab62258 100644
--- a/stamp-vti
+++ b/stamp-vti
@@ -1,3 +1,4 @@
address@hidden UPDATED 10 January 1999
address@hidden EDITION 1.4
address@hidden VERSION 1.4
address@hidden UPDATED 27 August 2001
address@hidden UPDATED-MONTH August 2001
address@hidden EDITION 1.5.1a
address@hidden VERSION 1.5.1a
diff --git a/subdirs.am b/subdirs.am
deleted file mode 100644
index f364293..0000000
--- a/subdirs.am
+++ /dev/null
@@ -1,78 +0,0 @@
-## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
-
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2, or (at your option)
-## any later version.
-
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-## 02111-1307, USA.
-# This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-#     (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-
address@hidden@
-
-all-recursive install-data-recursive install-exec-recursive \
-installdirs-recursive install-recursive uninstall-recursive @INSTALLINFO@ \
-check-recursive installcheck-recursive info-recursive dvi-recursive:
-       @set fnord $(MAKEFLAGS); amf=$$2; \
-       dot_seen=no; \
-       target=`echo $@ | sed s/-recursive//`; \
-       list='$(SUBDIRS)'; for subdir in $$list; do \
-         echo "Making $$target in $$subdir"; \
-         if test "$$subdir" = "."; then \
-           dot_seen=yes; \
-           local_target="$$target-am"; \
-         else \
-           local_target="$$target"; \
-         fi; \
-         (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-## This trick allows "-k" to keep its natural meaning when running a
-## recursive rule.
-          || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
-       done; \
-       if test "$$dot_seen" = "no"; then \
-         $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
-       fi; test -z "$$fail"
-
-## We run all `clean' targets in reverse order.  Why?  It's an attempt
-## to alleviate a problem that can happen when dependencies are
-## enabled.  In this case, the .P file in one directory can depend on
-## some automatically generated header in an earlier directory.  Since
-## the dependencies are required before any target is examined, make
-## bombs.
-mostlyclean-recursive clean-recursive distclean-recursive \
-maintainer-clean-recursive:
-       @set fnord $(MAKEFLAGS); amf=$$2; \
-       dot_seen=no; \
-       rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
-         rev="$$subdir $$rev"; \
-         test "$$subdir" = "." && dot_seen=yes; \
-       done; \
-## If we haven't seen `.', then add it at the beginning.
-       test "$$dot_seen" = "no" && rev=". $$rev"; \
-       target=`echo $@ | sed s/-recursive//`; \
-       for subdir in $$rev; do \
-         echo "Making $$target in $$subdir"; \
-         if test "$$subdir" = "."; then \
-           local_target="$$target-am"; \
-         else \
-           local_target="$$target"; \
-         fi; \
-         (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-## This trick allows "-k" to keep its natural meaning when running a
-## recursive rule.
-          || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
-       done && test -z "$$fail"
diff --git a/tags-clean.am b/tags-clean.am
deleted file mode 100644
index f169f35..0000000
--- a/tags-clean.am
+++ /dev/null
@@ -1,31 +0,0 @@
-## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc.
-
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2, or (at your option)
-## any later version.
-
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-## 02111-1307, USA.
-mostlyclean-tags:
-
-clean-tags:
-
-## The GNU Standards mandates that tags files be removed by
-## maintainer-clean.  But I'm told (by François Pinard) that this is
-## really because RMS usually includes TAGS files in his
-## distributions.  Since we do not, we instead have "distclean" remove
-## them.  The rule is: if the user built it, "distclean" removes it.
-## If it is shipped, "maintainer-clean" removes it.
-distclean-tags:
-       -rm -f TAGS ID
-
-maintainer-clean-tags:
diff --git a/tags.am b/tags.am
deleted file mode 100644
index 38041e7..0000000
--- a/tags.am
+++ /dev/null
@@ -1,45 +0,0 @@
-## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
-
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2, or (at your option)
-## any later version.
-
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-## 02111-1307, USA.
-tags: TAGS
-
-ID: $(HEADERS) $(SOURCES) $(LISP)
-## Make sure the list of sources is unique.
-       list='$(SOURCES) $(HEADERS)'; \
-       unique=`for i in $$list; do echo $$i; done | \
-         awk '    { files[$$0] = 1; } \
-              END { for (i in files) print i; }'`; \
-       here=`pwd` && cd $(srcdir) \
-         && mkid -f$$here/ID $$unique $(LISP)
-
-TAGS: @DIRS@ $(HEADERS) $(SOURCES) @CONFIG@ $(TAGS_DEPENDENCIES) $(LISP)
-       tags=; \
-       here=`pwd`; \
-SUBDIRS        list='$(SUBDIRS)'; for subdir in $$list; do \
-## Do nothing if we're trying to look in `.'.
-SUBDIRS   if test "$$subdir" = .; then :; else \
-SUBDIRS            test -f $$subdir/TAGS && tags="$$tags -i 
$$here/$$subdir/TAGS"; \
-SUBDIRS   fi; \
-SUBDIRS        done; \
-## Make sure the list of sources is unique.
-       list='$(SOURCES) $(HEADERS)'; \
-       unique=`for i in $$list; do echo $$i; done | \
-         awk '    { files[$$0] = 1; } \
-              END { for (i in files) print i; }'`; \
-## Make sure we have something to run etags on.
-       test -z "$(ETAGS_ARGS)@address@hidden(LISP)$$tags" \
-         || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags @CONFIG@ $$unique 
$(LISP) -o $$here/TAGS)
diff --git a/tests/.cvsignore b/tests/.cvsignore
index 3f90d78..88908d4 100644
--- a/tests/.cvsignore
+++ b/tests/.cvsignore
@@ -1,2 +1,5 @@
 testSubDir
 Makefile
+*.log
+log
+diffs
diff --git a/tests/ChangeLog b/tests/ChangeLog
deleted file mode 100644
index f1dd01b..0000000
--- a/tests/ChangeLog
+++ /dev/null
@@ -1,850 +0,0 @@
-1999-01-14  Tom Tromey  <address@hidden>
-
-       * confh3.test: New file.
-       * Makefile.am (TESTS): Added confh3.test.
-
-       * confh2.test: New file.
-       * Makefile.am (TESTS): Added confh2.test.
-
-       * confh.test: Run automake differently the second time.
-
-       * mdate3.test: New file.
-       * Makefile.am (TESTS): Added mdate3.test.
-
-1999-01-11  Tom Tromey  <address@hidden>
-
-       * confh.test: New file.
-       * Makefile.am (TESTS): Added confh.test.
-
-1999-01-10  Tom Tromey  <address@hidden>
-
-       * objc.test: Updated to account for new ObjC support.
-
-       * pluseq5.test: New file.
-       * Makefile.am (TESTS): Added pluseq5.test.
-
-       * all.test: Test all *-local targets, not just all-local.
-
-       * all.test: New file.
-       * Makefile.am (TESTS): Added all.test.
-
-1999-01-07  Tom Tromey  <address@hidden>
-
-       * include.test: New file.
-       * Makefile.am (TESTS): Added include.test.
-
-1998-12-21  Tom Tromey  <address@hidden>
-
-       * insthook.test: Updated to fail when it should.
-
-1998-12-11  Tom Tromey  <address@hidden>
-
-       * insthook.test: New file.
-       * Makefile.am (TESTS): Added insthook.test.
-
-1998-11-27  Tom Tromey  <address@hidden>
-
-       * cond7.test: New file.  From Pavel Roskin.
-       * Makefile.am (TESTS): New file.
-
-1998-11-10  Tom Tromey  <address@hidden>
-
-       * pluseq4.test: New file.
-       * Makefile.am (TESTS): Added pluseq4.test.
-
-1998-11-09  Tom Tromey  <address@hidden>
-
-       * pluseq3.test: New file.
-       * Makefile.am (TESTS): Added pluseq3.test.
-
-       * pluseq2.test: New file.
-       * Makefile.am (TESTS): Added pluseq2.test.
-
-1998-10-30  Tom Tromey  <address@hidden>
-
-       * pluseq.test: New file.
-       * Makefile.am (TESTS): Added pluseq.test.
-
-1998-10-28  Tom Tromey  <address@hidden>
-
-       * Makefile.am (distclean-local): Typo fix.
-
-1998-10-20  Tom Tromey  <address@hidden>
-
-       * Makefile.am (TESTS): Sorted tests.  From Jeff Garzik.
-
-1998-10-13  Tom Tromey  <address@hidden>
-
-       * libobj7.test: Updated to reflect minor change in automake (test
-       wasn't resilient enough).
-       * instman.test: Updated to reflect fact that mkinstalldirs will be
-       in distribution.
-
-       * cxxonly.test: Removed.
-
-Mon Aug 31 09:46:59 1998  Matthew D. Langston  <address@hidden>
-
-       * Makefile.am (TESTS): Added compile_f_c_cxx.test.
-       * compile_f_c_cxx.test: New file.
-
-Sat Aug 29 18:17:58 1998  Matthew D. Langston  <address@hidden>
-
-       * Makefile.am (TESTS): Added flink.test link_c_cxx.test
-       link_f_c.test link_f_c_cxx.test link_f_cxx.test link_f_only.test.
-       Removed flink.test.
-       * flibs.test: New File.
-       * link_c_cxx.test: New file.
-       * link_f_c.test: New file.
-       * link_f_c_cxx.test: New file.
-       * link_f_cxx.test: New file.
-       * link_f_only.test: New file.
-
-Tue Aug 11 10:46:36 1998  Matthew D. Langston  <address@hidden>
-
-       * Makefile.am (TESTS): Add cxxonly.test, fonly.test, flink.test,
-       fnoc.test and fo.test.
-       * cxxonly.test: New file.
-       * fonly.test: New file.
-       * flink.test: New file.
-       * fnoc.test: New file.
-       * fo.test: New file.
-
-1998-10-08  Tom Tromey  <address@hidden>
-
-       * confdist.test: New file.
-       * Makefile.am (TESTS): Added confdist.test.
-
-1998-10-07  Tom Tromey  <address@hidden>
-
-       * extra4.test: New file.
-       * extra3.test: New file.
-       * Makefile.am (TESTS): Added extra3.test, extra4.test.
-
-Mon Oct  5 12:47:32 1998  Tom Tromey  <address@hidden>
-
-       * badline.test: New file.
-       * Makefile.am (TESTS): Added badline.test.
-
-Thu Oct  1 00:03:39 1998  Tom Tromey  <address@hidden>
-
-       * seenc.test: Updated test to account for removed line numbers.
-
-       * xsource.test: Correctly fail if source in subdir.
-
-Wed Sep 30 12:17:34 1998  Tom Tromey  <address@hidden>
-
-       * colon7.test: New file.
-       * Makefile.am (TESTS): Added colon7.test.
-
-Tue Sep 29 02:09:11 1998  Tom Tromey  <address@hidden>
-
-       * config.test: New file.
-       * Makefile.am (TESTS): Added config.test.
-
-       * Makefile.am (TESTS): Reference clean.test, not clean.am.
-
-Mon Sep 28 01:46:34 1998  Tom Tromey  <address@hidden>
-
-       * recurs2.test: New file, from Jim Meyering.
-       * Makefile.am (TESTS): Added recurs2.test.
-
-       * Makefile.am (TESTS): Added clean.am.
-       * clean.test: New file.
-       * ansi2.test: Updated test for new SUBDIRS change.
-       * noinst.test: Updated test for new SUBDIRS change.
-       * checkall.test: Added check to make sure check-local is handled.
-       Updated test for new SUBDIRS change.
-       * java.test: Updated test for new SUBDIRS change.
-
-Sun Sep 27 20:01:20 1998  Tom Tromey  <address@hidden>
-
-       * Makefile.am (TESTS): Added else.test.
-       * else.test: New file.
-
-       * Makefile.am (TESTS): Added parse.test.
-       * parse.test: New file.
-
-Sat Sep 26 19:17:43 1998  Tom Tromey  <address@hidden>
-
-       * aclocal.test: Put AM_INIT_AUTOMAKE into configure.in.
-       * library.test: Use AC_EXEEXT.
-       * texinfo5.test: Use AC_EXEEXT.
-       * Many files: use AC_PROG_INSTALL, not AM_PROG_INSTALL.
-
-       Test suite updates for the @SHELL@ change:
-       * exsource.test: Set SHELL on `make' command line.
-       * ansi.test: Set SHELL on `make' command line.
-       * texinfo.test: Set SHELL on `make' command line.
-       * insh2.test: Set SHELL on `make' command line.
-       * empty.test: Rewrite @SHELL@ to /bin/sh.
-
-Tue Sep 22 01:20:00 1998  Tom Tromey  <address@hidden>
-
-       * ansi3.test: Use gcc and not gcc -traditional.
-
-Tue Sep 15 22:19:48 1998  Tom Tromey  <address@hidden>
-
-       * texinfo7.test: New file.
-
-Sun Aug 16 23:17:38 1998  Tom Tromey  <address@hidden>
-
-       * colon6.test: New file.
-
-Fri Aug 14 11:09:03 1998  Tom Tromey  <address@hidden>
-
-       * cond6.test: New file.
-
-Mon Aug 10 21:05:15 1998  Tom Tromey  <address@hidden>
-
-       * ansi3.test: New file.
-
-Sat Jul 18 00:27:26 1998  Tom Tromey  <address@hidden>
-
-       * recurs.test: New file.
-
-       * cond3.test: Changed to match recent fixes.
-
-Fri Jul 17 23:44:49 1998  Tom Tromey  <address@hidden>
-
-       * cond4.test, cond5.test: New files.
-
-Tue May 26 01:44:37 1998  Tom Tromey  <address@hidden>
-
-       * syntax.test: New file.
-
-Sun Apr  5 15:26:42 1998  Tom Tromey  <address@hidden>
-
-       * version3.test: Increased version number to ensure failure for a
-       long time to come.
-
-       * library.test: New file.
-
-       * lex2.test: Updated since lex error changed to warning.
-
-Fri Apr  3 13:04:50 1998  Tom Tromey  <address@hidden>
-
-       * colon5.test: New file.
-
-       * exdir2.test: New file.
-       * instdata.test: New file.
-
-Wed Mar 25 15:30:39 1998  Tom Tromey  <address@hidden>
-
-       * badopt.test: new file.
-       * version3.test: New file.
-
-Mon Mar 23 10:52:36 1998  Tom Tromey  <address@hidden>
-
-       * libobj8.test: New file.
-
-Fri Mar 20 00:32:16 1998  Tom Tromey  <address@hidden>
-
-       * lex2.test: New file.
-
-       * aclocalii.test: New file.
-
-       * javasubst.test: New file.
-
-Thu Mar 19 14:11:45 1998  Tom Tromey  <address@hidden>
-
-       * javaprim.test: New file.
-
-       * sinclude.test: New file.
-
-Wed Mar 18 17:15:22 1998  Tom Tromey  <address@hidden>
-
-       * java.test: New file.
-
-Sun Mar  8 15:35:14 1998  Tom Tromey  <address@hidden>
-
-       * colon4.test: New file.
-
-Fri Mar  6 21:17:10 1998  Tom Tromey  <address@hidden>
-
-       * colon3.test: Refined tests.
-
-Tue Feb 24 12:29:05 1998  Tom Tromey  <address@hidden>
-
-       * man.test: Removed.
-
-       * condman2.test: New file.
-
-Mon Feb 23 16:20:49 1998  Tom Tromey  <address@hidden>
-
-       * texinfo6.test: New file.
-
-Mon Feb 16 00:08:58 1998  Tom Tromey  <address@hidden>
-
-       * aclocali.test: New file.
-
-Fri Feb 13 00:36:38 1998  Tom Tromey  <address@hidden>
-
-       * texinfo5.test (info_TEXINFOS): New file.
-
-       * condman.test: New file.
-
-       * Makefile.am (distclean-local): Ignore rm return value.
-
-Thu Feb 12 21:00:34 1998  Tom Tromey  <address@hidden>
-
-       * unused.test: New file.
-
-       * whoami.test: New file.
-
-       * alpha.test: New file.
-
-Wed Feb 11 17:28:30 1998  Tom Tromey  <address@hidden>
-
-       * aclocal.test: New file.
-
-Thu Feb  5 13:22:17 1998  Tom Tromey  <address@hidden>
-
-       * cxxcpp.test: New file.
-
-Mon Dec  1 15:48:16 1997  Tom Tromey  <address@hidden>
-
-       * cond3.test: New file.
-
-Sat Nov 29 22:09:27 1997  Tom Tromey  <address@hidden>
-
-       * objc.test: New file.
-
-Sat Oct 25 00:04:04 1997  Tom Tromey  <address@hidden>
-
-       * libobj7.test: New file.
-
-Tue Oct 21 00:46:24 1997  Tom Tromey  <address@hidden>
-
-       * lex2.test: Removed; @LEXLIB@ no longer required.
-
-       * depacl2.test: Use -I, not --acdir.
-
-       * install.test: New file.
-       * ammissing.test: New file.
-
-Sun Sep 28 17:19:52 1997  Tom Tromey  <address@hidden>
-
-       * cxxnoc.test: Changed to reflect MKDEP change.
-
-Wed Sep 24 16:01:59 1997  Tom Tromey  <address@hidden>
-
-       * output5.test: New file.
-
-       * depend3.test: New file.
-
-Mon Aug 25 17:24:42 1997  Tom Tromey  <address@hidden>
-
-       * cygwin32.test: Use AM_EXEEXT, not AM_CYGWIN32.
-
-Tue Aug  5 20:33:33 1997  Tom Tromey  <address@hidden>
-
-       * libobj6.test: New file.
-
-Mon May 26 22:47:36 1997  Tom Tromey  <address@hidden>
-
-       * depend.test: Fixed test.
-
-Sat May 10 18:28:14 1997  Tom Tromey  <address@hidden>
-
-       * depend2.test: Fixed test; added another check.
-
-Sun May  4 15:47:24 1997  Tom Tromey  <address@hidden>
-
-       * xsource.test: New file.
-
-Tue Apr 29 19:08:47 1997  Tom Tromey  <address@hidden>
-
-       * cond.test, cond2.test: New files from Ian Taylor.
-
-Sun Apr 27 21:07:49 1997  Tom Tromey  <address@hidden>
-
-       * confsub.test: Fixed bug.
-
-Fri Apr 25 12:30:22 1997  Tom Tromey  <address@hidden>
-
-       * conf2.test: New file.
-
-Tue Apr  8 19:26:07 1997  Tom Tromey  <address@hidden>
-
-       * ansi.test, empty.test, exsource.test, insh2.test, man.test,
-       mkinst2.test, texinfo.test, texinfo2.test: Use $MAKE.
-
-       * defs (MAKE): Define.
-
-Mon Apr  7 17:35:49 1997  Tom Tromey  <address@hidden>
-
-       * version2.test: New file.
-
-Wed Apr  2 00:12:26 1997  Tom Tromey  <address@hidden>
-
-       * ldadd.test: New file.
-
-Fri Mar 28 23:36:04 1997  Tom Tromey  <address@hidden>
-
-       * stamph.test: New file.
-
-Thu Mar 27 18:10:47 1997  Tom Tromey  <address@hidden>
-
-       * lisp.test: New file.
-
-Sat Mar 22 01:14:03 1997  Tom Tromey  <address@hidden>
-
-       * cygwin32.test: New file.
-
-Thu Mar 20 00:34:33 1997  Tom Tromey  <address@hidden>
-
-       * exsource.test: Exit if not using GNU make.
-
-Tue Mar 18 22:36:34 1997  Tom Tromey  <address@hidden>
-
-       * remake2.test: Changed for `missing' support.
-
-Sun Mar 16 14:29:45 1997  Tom Tromey  <address@hidden>
-
-       * seenc.test: New file.
-
-       * checkall.test, noinst.test: Don't use bogus construct when
-       checking.
-
-       * libobj3.test, canon.test, target.test, spell2.test,
-       primary2.test, discover.test, lex2.test: Fixed to test what it
-       claims to test.
-
-Mon Mar 10 23:21:03 1997  Tom Tromey  <address@hidden>
-
-       * libobj.test, libobj2.test: Use AC_PROG_CC.
-
-       * confsub.test: Modified for definition of CONFIG_HEADER_FULL.
-
-       * cxxlibobj.test: New file.
-
-Wed Feb 26 13:05:42 1997  Tom Tromey  <address@hidden>
-
-       * tagsub.test: New file.
-
-Sun Feb 23 11:58:00 1997  Tom Tromey  <address@hidden>
-
-       * texinfo.test, texinfo2.test, texinfo3.test, info.test,
-       mdate.test, vtexi.test, canon2.test, mdate2.test, vtexi2.test:
-       Updated for new texinfo handling.
-
-       * texinfo4.test: New file.
-       * texinfo3.test: New file.
-
-Sat Feb 22 09:48:44 1997  Tom Tromey  <address@hidden>
-
-       * yaccpp.test: New file.
-
-Tue Feb 11 09:51:47 1997  Tom Tromey  <address@hidden>
-
-       * texinfo2.test: Fixed quoting bug.  From Michael Brantley.
-
-Tue Feb  4 18:41:32 1997  Tom Tromey  <address@hidden>
-
-       * confsub.test: Check subdir/Makefile.in to make sure dependency
-       is correct.
-
-       * ansi2.test: ANSI2KNR dependency of all.
-
-Tue Dec 10 00:43:14 1996  Tom Tromey  <address@hidden>
-
-       * defun2.test: New file.
-       * subst.test: New file.
-
-Sun Dec  8 12:25:22 1996  Tom Tromey  <address@hidden>
-
-       * colneq2.test: New file.
-
-Sat Dec  7 12:52:45 1996  Tom Tromey  <address@hidden>
-
-       * output4.test: New file.
-       * output3.test: New file.
-       * remake2.test: New file.
-       * output2.test: New file.
-
-Fri Dec  6 19:00:31 1996  Tom Tromey  <address@hidden>
-
-       * output.test: New file.
-
-Thu Dec  5 18:23:17 1996  Tom Tromey  <address@hidden>
-
-       * remake.test: New file.
-       * colon3.test: New file.
-       * colon2.test: New file.
-       * cxxo.test: New file.
-
-Wed Dec  4 00:41:44 1996  Tom Tromey  <address@hidden>
-
-       * defs: Allow user to set interpreter via PERL environment
-       variable.
-
-       * Makefile.am (distclean-local): New target.
-
-Tue Dec  3 11:55:18 1996  Gordon Matzigkeit  <address@hidden>
-
-       * dup.test, dup2.test: Modified, now that aclocal allows
-       acinclude.m4 to override any installed macro file.
-
-Mon Dec  2 22:44:16 1996  Gordon Matzigkeit  <address@hidden>
-
-       * alllib.test: Removed from distribution, since LIBFILES are no
-       longer computed.
-
-Sun Nov 24 14:36:00 1996  Tom Tromey  <address@hidden>
-
-       * extra2.test: New file.
-
-Fri Nov 22 00:10:04 1996  Tom Tromey  <address@hidden>
-
-       * stdlib.test: New file.
-
-Thu Nov 21 22:51:35 1996  Tom Tromey  <address@hidden>
-
-       * confsub.test: Use AM_CONFIG_HEADER.
-
-Tue Nov 19 23:37:32 1996  Tom Tromey  <address@hidden>
-
-       * confvar2.test: New file.
-
-Fri Nov 15 00:09:18 1996  Tom Tromey  <address@hidden>
-
-       * ansi2.test: New file.
-
-       * libfiles.test: Removed (obsolete).
-
-       * libobj.test, canon4.test, libobj2.test, alllib.test,
-       ranlib.test: Fixed for Gord's changes to library handling.
-
-       * Many files: Use AC_PROG_CC to avoid error.
-
-Thu Oct 24 15:22:53 1996  Tom Tromey  <address@hidden>
-
-       * confvar.test: New file.
-       * ranlib.test: New file.
-
-Mon Oct 21 22:57:51 1996  Tom Tromey  <address@hidden>
-
-       * version.test: New file.
-
-Fri Oct 11 00:51:04 1996  Tom Tromey  <address@hidden>
-
-       * libobj5.test: New file.
-       * libobj4.test: New file.
-       * distdir.test: New file.
-       * lex2.test: New file.
-
-Sun Oct  6 11:00:44 1996  Tom Tromey  <address@hidden>
-
-       * acsilent.test: New file.
-       * req.test: New file.
-       * acinclude.test: New file.
-
-Sat Oct  5 11:31:38 1996  Tom Tromey  <address@hidden>
-
-       * discover.test: New file.
-
-       * mkinst2.test: Renamed from mkinstall2.test.
-
-       * symlink.test: New file.
-
-Thu Oct  3 19:55:23 1996  Tom Tromey  <address@hidden>
-
-       * vpath.test: New file.
-
-Mon Sep 30 08:34:07 1996  Tom Tromey  <address@hidden>
-
-       * comment2.test: New file.
-
-Mon Sep 23 00:23:34 1996  Tom Tromey  <address@hidden>
-
-       * spell3.test: New file.
-
-Sun Sep 22 14:42:09 1996  Tom Tromey  <address@hidden>
-
-       * depend2.test: New file.
-
-Sat Sep 21 14:01:10 1996  Tom Tromey  <address@hidden>
-
-       * primary2.test: New file.
-       * primary.test: New file.
-
-Fri Sep 20 09:39:27 1996  Tom Tromey  <address@hidden>
-
-       * confsub.test: New file.
-
-Mon Sep 16 00:05:52 1996  Tom Tromey  <address@hidden>
-
-       * spell2.test: New file.
-
-       * spell.test: New file.
-
-Thu Sep 12 14:57:49 1996  Tom Tromey  <address@hidden>
-
-       * implicit.test: New file.
-
-Wed Sep 11 13:57:10 1996  Tom Tromey  <address@hidden>
-
-       * colneq.test: New file.
-
-       * interp2.test: New file.
-
-Sun Sep  8 10:47:07 1996  Tom Tromey  <address@hidden>
-
-       * gnits.test: New file.
-
-Thu Sep  5 22:54:26 1996  Tom Tromey  <address@hidden>
-
-       * libobj3.test: New file.
-
-Tue Sep  3 20:57:38 1996  Tom Tromey  <address@hidden>
-
-       * block.test: New file.
-
-Mon Aug 26 23:04:01 1996  Tom Tromey  <address@hidden>
-
-       * alllib.test: New file.
-
-       * interp.test: New file.
-
-Mon Aug 12 13:58:55 1996  Tom Tromey  <address@hidden>
-
-       * libobj2.test: New file.
-
-       * order.test: New file.
-
-Sun Aug 11 00:10:42 1996  Tom Tromey  <address@hidden>
-
-       * cxxnoc.test: New file.
-
-       * cxxlink.test: Use AC_PROG_CXX.
-
-       * lex.test: Use AC_PROG_LEX, AC_DECL_YYTEXT.
-
-       * yacc.test: Use AC_PROG_YACC in configure.in.
-
-       * cxxlink.test: New file.
-
-       * yacc.test: Fixed test for new yacc code.
-
-Sat Aug 10 10:09:45 1996  Tom Tromey  <address@hidden>
-
-       * defun.test: New file.
-
-       * dup.test: New file.
-
-Fri Aug  9 09:18:07 1996  Tom Tromey  <address@hidden>
-
-       * canon4.test: New file.
-
-Thu Aug  8 10:47:45 1996  Tom Tromey  <address@hidden>
-
-       * exsource.test: New file.
-
-       * subdir2.test: New file.
-
-       * scripts.test: New file.
-
-Tue Aug  6 12:30:41 1996  Tom Tromey  <address@hidden>
-
-       * lex.test: New file.
-
-Mon Aug  5 01:03:03 1996  Tom Tromey  <address@hidden>
-
-       * obsolete.test: New file.
-
-       * Many files: Use AM_ macros, not fp_ macros.
-
-       * info.test: New file.
-
-Sun Aug  4 12:47:34 1996  Tom Tromey  <address@hidden>
-
-       * man.test: New file.
-
-       * acouttbs2.test: New file.
-
-       * libfiles.test: New file.
-
-       * comment.test: New file.
-
-       * tags.test: New file.
-
-       * vtexi2.test: New file.
-
-       * colon.test: New file.
-
-Sun Jul 28 11:43:00 1996  Tom Tromey  <address@hidden>
-
-       * defs (ACLOCAL): Added definition.
-
-       * depacl.test, depacl2.test, error.test: New tests for aclocal.
-
-Fri Jul 19 10:09:56 1996  Tom Tromey  <address@hidden>
-
-       * ansi.test: New file.
-
-Sun Jun  9 23:20:03 1996  Tom Tromey  <address@hidden>
-
-       * texinfo2.test: New file.
-
-Sat Jun  8 10:00:42 1996  Tom Tromey  <address@hidden>
-
-       * mkinstall2.test: New file.
-
-Fri Jun  7 18:17:11 1996  Tom Tromey  <address@hidden>
-
-       * yacc.test: New file.
-
-Sun Jun  2 09:04:52 1996  Tom Tromey  <address@hidden>
-
-       * dejagnu.test: New file.
-
-       * texinfo.test: New file.
-
-Thu May 23 09:58:48 1996  Tom Tromey  <address@hidden>
-
-       * fpinst2.test: New file.
-
-       * fpinstall.test: New file.
-
-Wed May 22 09:45:52 1996  Tom Tromey  <address@hidden>
-
-       * outdir.test: New file.
-
-Sat May 18 10:51:37 1996  Tom Tromey  <address@hidden>
-
-       * insh2.test: New file.
-
-Fri May 17 17:32:35 1996  Tom Tromey  <address@hidden>
-
-       * number.test: New file.
-
-       * defs, many .test files: Define PACKAGE and VERSION in
-       configure.in.
-
-       * package.test: New file.
-
-       * backsl.test: New file.
-
-Thu May 16 09:15:57 1996  Tom Tromey  <address@hidden>
-
-       * subdir.test: New file.
-
-Tue May 14 10:17:17 1996  Tom Tromey  <address@hidden>
-
-       * mdate2.test: New file, from report by Jim Meyering.
-
-       * canon3.test: New file.
-
-       * auxdir.test: New file.
-
-       * mkinstall.test: New file.
-
-       * extra.test: Reversed sense of test.
-
-Fri Apr 26 15:15:01 1996  Tom Tromey  <address@hidden>
-
-       * instman.test: New file.
-
-Thu Apr 25 17:12:30 1996  Tom Tromey  <address@hidden>
-
-       * noinst.test: New file
-
-       * exdir.test: Quoting change from Gord Matzigkeit.
-
-       * extra.test (EXTRA_PROGRAMS): New file.
-
-Tue Apr  9 22:55:07 1996  Tom Tromey  <address@hidden>
-
-       * target.test: New file.
-
-Wed Apr  3 15:10:54 1996  Tom Tromey  <address@hidden>
-
-       * canon2.test: New file
-
-       * insh.test: New file.
-
-Wed Mar 27 23:31:51 1996  Tom Tromey  <address@hidden>
-
-       * rulepat.test: New file.
-
-Sat Mar 16 08:37:36 1996  Tom Tromey  <address@hidden>
-
-       * empty.test: New file.
-
-Fri Mar 15 17:55:13 1996  Tom Tromey  <address@hidden>
-
-       * installsh.test: New file.
-
-Tue Mar  5 16:22:46 1996  Tom Tromey  <address@hidden>
-
-       * badprog.test: Rewrote.
-
-       * canon.test: New file.
-
-Mon Mar  4 21:08:37 1996  Tom Tromey  <address@hidden>
-
-       * exdir.test: New file.
-
-Fri Mar  1 17:23:53 1996  Tom Tromey  <address@hidden>
-
-       * depend.test: New file.
-
-       * badprog.test: New file.
-
-       * defs (AUTOMAKE): Pass --foreign.
-
-Thu Feb 29 20:23:42 1996  Tom Tromey  <address@hidden>
-
-       More tests:
-       * prefix.test: New file.
-       * spelling.test: New file
-       * confincl.test: New file.
-       * Makefile.am (TESTS): Updated.
-
-Wed Feb 28 11:57:02 1996  Tom Tromey  <address@hidden>
-
-       * acoutqnl.test: New file.
-       * Makefile.am (TESTS): Include it.
-
-Tue Feb 27 10:52:58 1996  Tom Tromey  <address@hidden>
-
-       * Makefile.am (DIST_OTHER): Include "defs".
-
-       * defs (AUTOMAKE): Never relative to $srcdir.
-
-Mon Feb 26 23:14:08 1996  Tom Tromey  <address@hidden>
-
-       * libobj.test: Put AC_PROG_RANLIB in configure.in
-
-Mon Feb 19 08:22:22 1996  Tom Tromey  <address@hidden>
-
-       * proginst.test: New file.
-
-Tue Feb 13 18:54:39 1996  Tom Tromey  <address@hidden>
-
-       * libobj.test: New file.
-
-Mon Feb 12 17:05:48 1996  Tom Tromey  <address@hidden>
-
-       * acouttbs.test: New file.
-
-       * Makefile.am (DIST_OTHER): New variable.
-
-       * acoutnoq.test: New file.
-
-Sun Feb 11 16:39:14 1996  Tom Tromey  <address@hidden>
-
-       * checkall.test: Delay a little.
-
-       * Makefile.am (check-local): Print name of failing test.
-
-Sat Feb 10 17:08:39 1996  Tom Tromey  <address@hidden>
-
-       * checkall.test: New file.
-
-       * instexec.test: New file.
-
-       * mdate.test, vtexi.test, acoutput.test: New files.
-
-       * Started.
-
diff --git a/tests/ChangeLog-old b/tests/ChangeLog-old
new file mode 100644
index 0000000..d76ca2b
--- /dev/null
+++ b/tests/ChangeLog-old
@@ -0,0 +1,1441 @@
+2001-02-07  Tom Tromey  <address@hidden>
+
+       * Makefile.am (XFAIL_TESTS): Removed remake3.test,
+       distcommon.test.
+
+       * Makefile.am (XFAIL_TESTS): Added new files.
+
+       * remake3.test: New file.
+       * Makefile.am (TESTS): Added new file.
+
+       * distcommon.test: New file.
+       * Makefile.am (TESTS): Added new file.
+
+2001-02-04  Tom Tromey  <address@hidden>
+
+       * exsource.test: Updated for new include code.
+
+2001-02-03  Tom Tromey  <address@hidden>
+
+       * Makefile.am (XFAIL_TESTS): Removed colon7.test.
+
+2001-01-29  Akim Demaille  <address@hidden>
+
+       * check.test: New.
+
+2001-01-28  Tom Tromey  <address@hidden>
+
+       * listval.test: New file.
+       * Makefile.am (TESTS): Added listval.test.
+
+2001-01-26  Tom Tromey  <address@hidden>
+
+       * makevars.test: Fail if automake fails.
+
+2001-01-26  Pavel Roskin  <address@hidden>
+
+       * Makefile.am (XFAIL_TESTS): Added colon7.test.
+
+2001-01-26  Akim Demaille  <address@hidden>
+
+       * vtexi.test (info_TEXINFOS): Check that the path to mdate-sh is
+       already correct.
+
+       * defs (AUTOCONF, has_autoconf, needs_autoconf): New.
+       * ansi3.test, cond9.test, depacl2.test, install2.test, pr19.test,
+       * pr87.test, pr9.test, subobj3.test, target-cflags.test: Use them.
+
+2001-01-25  Pavel Roskin  <address@hidden>
+
+       * makevars.test: Disable shell tracing.
+
+2001-01-25  Akim Demaille  <address@hidden>
+
+       * makevars.test: New.
+
+2001-01-24  Akim Demaille  <address@hidden>
+
+       * vtexi.test (info_TEXINFOS): Escape a $ in egrep pattern.
+
+2001-01-23  Akim Demaille  <address@hidden>
+
+       * vtexi.test: Also check that stamp-vti properly depends upon
+       configure.in and the Texinfo source file.
+
+2001-01-21  Kevin Ryde <address@hidden>
+
+       * colon7.test: Grep for a couple of AC_OUTPUT problems.
+
+2001-01-15  Tom Tromey  <address@hidden>
+
+       * subdir3.test: Allow any number of dependencies.
+
+       * subobj4.test: Fixed test case.
+
+       * amassign.test: New file.
+       * Makefile.am (TESTS): Added new file.
+
+2001-01-12  Tom Tromey  <address@hidden>
+
+       * subobj4.test: New file.
+       * Makefile.am (TESTS): Added subobj4.test.
+
+       * cxxansi.test: New file.
+       * Makefile.am (TESTS): Added cxxansi.test.
+
+2000-12-21  Tom Tromey  <address@hidden>
+
+       * vtexi.test: Fixed to reflect new rules.
+
+2000-12-17  Tom Tromey  <address@hidden>
+
+       * Makefile.am (XFAIL_TESTS): Don't mention ldflags.test.
+
+2000-11-25  Tom Tromey  <address@hidden>
+
+       * space.test: New file.
+       * Makefile.am (TESTS): Added space.test.
+
+2000-11-23  Pavel Roskin  <address@hidden>
+
+       * pr87.test: Prevent automake from looking into .. and ../..
+       by using AC_CONFIG_AUX_DIR(.) in configure.in.
+
+2000-11-23  Tom Tromey  <address@hidden>
+
+       * pr87.test: New file.  From PR automake/87.
+       * Makefile.am (TESTS): Added pr87.test.
+
+2000-10-17  Pavel Roskin  <address@hidden>
+
+       * Makefile.am (TESTS): Added aclocali1.test.
+       * aclocali1.test: New file.
+
+2000-08-30  Tom Tromey  <address@hidden>
+
+       * Makefile.am (XFAIL_TESTS): Removed pr72.test.
+
+       For PR automake/72:
+       * Makefile.am (TESTS): Added pr72.test.
+       (XFAIL_TESTS): Likewise.
+       * pr72.test: New file.
+
+2000-08-28  Tom Tromey  <address@hidden>
+
+       * Makefile.am (XFAIL_TESTS): Added ldflags.test.
+
+2000-08-27  Tom Tromey  <address@hidden>
+
+       For PR automake/75:
+       * Makefile.am (TESTS): Added fortdep.test.
+       * fortdep.test: New file.
+
+       For PR automake/68:
+       * Makefile.am (TESTS): Added header.test.
+       * header.test: New file.
+
+2000-08-26  Tom Tromey  <address@hidden>
+
+       For PR automake/73:
+       * Makefile.am (TESTS): Added instman2.test.
+       * instman2.test: New file.
+
+       For PR automake/77:
+       * Makefile.am (TESTS): Added ldflags.test.
+       * ldflags.test: New file.
+
+2000-08-06  Jim Meyering  <address@hidden>
+
+       * Makefile.am (TESTS): Add subdir4.test.
+       * subdir4.test: New test for the just-fixed depcomp failure.
+
+2000-08-02  Akim Demaille  <address@hidden>
+
+       * depacl.test: Weaken the regexp looking for AM_PROG_CC_C_STDC in
+       aclocal.m4.
+
+2000-05-01  Pavel Roskin  <address@hidden>
+
+       * install2.test: Prevent automake from looking into .. and ../..
+       by using AC_CONFIG_AUX_DIR(.) in configure.in
+       * pr19.test: Likewise
+       * subobj3.test: Likewise
+
+2000-03-19  Tom Tromey  <address@hidden>
+
+       * libobj2.test: Put depcomp into subdir.
+       * confsub.test: Put depcomp into subdir.
+       * defs: Always copy `depcomp'.
+
+       * defs: Correctly create `depcomp'.
+       * nodepcomp.test: Remove depcomp.
+
+       More for PR automake/38:
+       * symlink3.test: New file.
+       * Makefile.am (TESTS): Added symlink3.test.
+
+       For PR automake/38:
+       * symlink2.test: New file.
+       * Makefile.am (TESTS): Added symlink2.test.
+
+       For PR automake/45:
+       * defs, acoutnoq.test, texinfo8.test, tagsub.test, subdir2.test,
+       subdir.test, scripts.test, remake2.test, remake.test, pr2.test,
+       parse.test, output4.test, output3.test, output2.test, output.test,
+       libobj10.test, libobj9.test, libobj8.test, libobj7.test,
+       libobj6.test, libobj2.test, libobj.test, fpinstall.test,
+       fpinst2.test, depend3.test, confsub.test, config.test,
+       confh4.test, confh3.test, confh2.test, confh.test, conf2.test,
+       colon7.test, colon6.test, colon5.test, colon4.test, colon3.test,
+       colon2.test, colon.test, acouttbs.test, acoutqnl.test,
+       acoutput.test: Put AM_INIT_AUTOMAKE into configure.in.
+
+       * install2.test: Expect a `dist' failure.
+
+2000-03-19  Tom Tromey  <address@hidden>
+
+       * nodepcomp.test: New file.
+       * Makefile.am (TESTS): Added nodepcomp.test.
+
+2000-02-02  Assar Westerlund  <address@hidden>
+
+       * target-cflags.test: new test case to target-specific CFLAGS
+
+2000-01-08  Tom Tromey  <address@hidden>
+
+       * ansi.test, texinfo.test, empty.test, insh2.test, texinfo8.test:
+       Remove @SET_MAKE@ before using Makefile.
+       * backsl2.test: Don't add AC_PROG_MAKE_SET in configure.in;
+       already done.
+       * defs: Put AC_PROG_MAKE_SET in configure.in.
+       * acoutnoq.test, acoutput.test, acoutqnl.test, acouttbs.test,
+       acouttbs2.test, colon.test, colon2.test, colon3.test, colon4.test,
+       colon5.test, colon6.test, colon7.test, conf2.test, confh.test,
+       confh2.test, confh3.test, confh4.test, config.test, depend3.test,
+       discover.test, fpinst2.test, gnits.test, ldadd.test, libobj.test,
+       libobj10.test, libobj2.test, libobj6.test, libobj7.test,
+       libobj8.test, libobj9.test, output.test, output2.test,
+       output3.test, output4.test, output5.test, package.test,
+       parse.test, pr2.test, remake.test, remake2.test, scripts.test,
+       stamph.test, texinfo8.test: Likewise.
+
+1999-12-26  Tom Tromey  <address@hidden>
+
+       * subobj3.test: Remove depcomp.
+       * pr9.test: Remove depcomp.
+       Remove opportunistic check.
+       * pr19.test: Remove depcomp.
+
+1999-12-25  Tom Tromey  <address@hidden>
+
+       * suffix2.test: Create config.guess and config.sub so user doesn't
+       need libtoolize.  From Klaus Reichl.
+
+1999-12-19  Tom Tromey  <address@hidden>
+
+       Test for PR automake/9:
+       * pr9.test: New file.
+       * Makefile.am (TESTS): Added pr9.test.
+
+       * pr19.test: Fail gracefully if gzip missing.
+       * install2.test: Fail gracefully if gzip missing.
+
+1999-12-19  Pavel Roskin  <address@hidden>
+
+       * tests/defs: add all permissions to testSubDir before
+       removing it.
+
+1999-12-19  Tom Tromey  <address@hidden>
+
+       * pr2.test: Use egrep, not grep.
+
+       Test for PR automake/2:
+       * pr2.test: New file.
+       * Makefile.am (TESTS): Added pr2.test.
+
+1999-12-15  Tom Tromey  <address@hidden>
+
+       * dup3.test: New file.
+       * Makefile.am (TESTS): Added dup3.test.
+
+1999-12-13  Tom Tromey  <address@hidden>
+
+       * pr19.test: New file.  For PR automake/19.
+       * Makefile.am (TESTS): Added pr19.test.
+
+       * lex4.test: New file.  For PR automake/6.
+       * Makefile.am (TESTS): Added lex4.test.
+
+       * suffix3.test: New file.
+       * Makefile.am (TESTS): Added suffix3.test.
+
+       * suffix2.test: Added `no-dependencies' to options in
+       Makefile.am.  Removed trailing `exit 1'.
+
+       * nostdinc.test: New file.
+       * Makefile.am (TESTS): Added nostdinc.test.
+
+       * condincl2.test: New file.
+       * condincl.test: New file.
+       * Makefile.am (TESTS): Added condincl.test, condincl2.test.
+
+       * suffix2.test: New file.
+       * Makefile.am (TESTS): Added suffix2.test.
+
+       * subobj.test: Remove final test.
+
+1999-12-12  Tom Tromey  <address@hidden>
+
+       * Makefile.am (XFAIL_TESTS): Removed subobj3.test.
+
+1999-12-10  Tom Tromey  <address@hidden>
+
+       * install2.test: New file.
+       * Makefile.am (TESTS): Added install2.test.
+
+       * specflags5.test: New file.
+       * Makefile.am (TESTS): Added specflags5.test.
+
+1999-12-06  Tom Tromey  <address@hidden>
+
+       * confh4.test: Corrected final test.
+
+       * confh4.test: New file.  PR automake/34.
+       * Makefile.am (TESTS): Mention confh4.test.
+
+1999-11-22  Tom Tromey  <address@hidden>
+
+       * defs: Never hard link `depcomp'.  From Pavel Roskin
+
+       * exsource.test: Don't use configure substitution in _SOURCES.
+       * depend.test: Don't use configure substitution in _SOURCES.
+       * cygwin32.test: Don't use configure substitution in _SOURCES.
+
+       * subobj.test: Check for another bug.
+
+       * Makefile.am (XFAIL_TESTS): Removed sourcesub.test,
+       ltlibobjs.test.
+
+1999-11-21  Tom Tromey  <address@hidden>
+
+       * specflags3.test: Updated test for new dependency
+       implementation.
+
+1999-10-02  Alexandre Oliva  <address@hidden>
+
+       * defs: Set CDPATH to avoid verbose cd.
+
+1999-09-14  Alexandre Oliva  <address@hidden>
+
+       * defs: Avoid printing the full pathname of testSubDir.
+
+       * exsource.test: Update.
+
+1999-06-01  Alexandre Oliva  <address@hidden>
+
+       * exsource.test: sed @AMDEP@ away from `include' line.
+
+       * compile_f_c_cxx.test: depcomp is no longer in the same line.
+
+1999-04-25  Alexandre Oliva  <address@hidden>
+
+       * compile_f_c_cxx.test: Look for $(depcomp) for C and C++.
+       * suffix.test: We no longer emit % rules.
+
+1999-04-10  Alexandre Oliva  <address@hidden>
+
+       * defs: Create link or copy of depcomp.
+       * depend2.test: Removed, no more disted dependencies.
+       * Makefile.am (TESTS): Likewise.
+       * exsource.test: Adjust dependency filenames.
+       * mdate3.test: Adjust for depcomp.
+
+1999-11-07  Tom Tromey  <address@hidden>
+
+       * dash.test: New file.
+       * Makefile.am (TESTS): Added dash.test.
+
+1999-08-26  Tom Tromey  <address@hidden>
+
+       * texinfo8.test: Use directory named `sub'.
+
+       * symlink.test: Use directory named `sub' (just in case; for
+       Windows).
+
+1999-08-15  Tom Tromey  <address@hidden>
+
+       * ansi4.test: New file.
+       * Makefile.am (TESTS): Added ansi4.test.
+
+1999-07-30  Tom Tromey  <address@hidden>
+
+       * double.test (bin_PROGRAMS): New file.
+       * Makefile.am (TESTS): Added double.test.
+
+1999-07-27  Tom Tromey  <address@hidden>
+
+       * empty4.test: New file.
+       * Makefile.am (TESTS): Added empty4.test.
+
+1999-07-13  Tom Tromey  <address@hidden>
+
+       * empty3.test: New file.
+       * Makefile.am (TESTS): Added empty3.test.
+
+       * empty2.test: Also look for `pavel.o'.
+
+       * empty2.test: New file.
+       * Makefile.am (TESTS): Added empty2.test.
+
+1999-05-27  Tom Tromey  <address@hidden>
+
+       * subobj3.test: New file.
+       * Makefile.am (TESTS): Added subobj3.test.
+       (XFAIL_TESTS): Likewise.
+
+       * ltlibobjs.test: New file.
+       * Makefile.am (TESTS): Added ltlibobjs.test.
+       (XFAIL_TESTS): Added ltlibobjs.test.
+
+       * Makefile.am (XFAIL_TESTS): Added sourcesub.test.
+
+1999-05-19  Tom Tromey  <address@hidden>
+
+       * specflags4.test: Typo fix.
+
+       * specflags4.test: New file.  From Pavel Roskin.
+       * Makefile.am (TESTS): Added specflags4.test.
+
+       * specflags.test: Added regression test for missing space.
+
+1999-05-13  Tom Tromey  <address@hidden>
+
+       * sourcesub.test: New file.
+       * Makefile.am (TESTS): Added sourcesub.test.
+
+1999-05-01  Tom Tromey  <address@hidden>
+
+       * libobj2.test: Reverted previous change; it is incorrect.
+
+       * libobj2.test: Error if libtu.a.P is mentioned.
+
+1999-04-27  Tom Tromey  <address@hidden>
+
+       * cond9.test: New file.  From Raja R Harinath.
+       * Makefile.am (TESTS): Added cond9.test.
+
+       * pluseq8.test: New file.
+       * Makefile.am (TESTS): Added pluseq8.test.
+
+       * canon5.test: Updated to reflect change to MACRO_PATTERN.
+
+       * specflags3.test: New file.
+       * Makefile.am (TESTS): Added specflags3.test.
+       (TESTS): Now lists one file per line, for simpler maintenance.
+
+       * specflags2.test: New file.
+       * specflags.test: New file.
+       * Makefile.am (TESTS): Added specflags.test, specflags2.test.
+
+1999-04-27  Alexandre Oliva  <address@hidden>
+
+       * canon5.test (bin_PROGRAMS): New file.
+       * Makefile.am (TESTS): Added canon5.test.
+
+1999-04-20  Alexandre Oliva  <address@hidden>
+
+       * libobj10.test: New file.
+       * Makefile.am (TESTS): Added libobj10.test.
+
+1999-04-11  Tom Tromey  <address@hidden>
+
+       * subobj2.test: New file.
+       * Makefile.am (TESTS): Added subobj2.test.
+
+       * subobj.test: New file.
+       * Makefile.am (TESTS): Added subobj.test.
+
+       * confh.test: Use `sed' to extract full definition of
+       DIST_COMMON.  Look for stamp-h.in rule in include/Makefile.in.
+       * Makefile.am (XFAIL_TESTS): Removed confh.test.
+
+1999-04-10  Tom Tromey  <address@hidden>
+
+       * defs: Ensure srcdir is always absolute.
+
+       * Makefile.am (XFAIL_TESTS): Removed cond8.test.
+
+       * gcj2.test: New file.
+       * Makefile.am (TESTS): Added gcj2.test.
+
+1999-04-10  Alexandre Oliva  <address@hidden>
+
+       * suffix.test: New file.
+       * Makefile.am: Added suffix.test.
+
+       * Makefile.am (XFAIL_TESTS): Added cond8.test.
+
+       * cond3.test: Refer to am_targ_OBJECTS.
+
+       * yacc2.test, yacc3.test: New files.
+       * Makefile.am (TESTS): Added yacc2.test and yacc3.test.
+
+1999-04-09  Tom Tromey  <address@hidden>
+
+       * nodist.test: New file.
+       * Makefile.am (TESTS): Added nodist.test.
+
+       * gcj.test: New file.
+       * Makefile.am (TESTS): Added gcj.test.
+
+1999-04-08  Tom Tromey  <address@hidden>
+
+       * cond8.test: New file.
+       * Makefile.am (TESTS): Added cond8.test.
+
+1999-04-07  Alexandre Oliva  <address@hidden>
+
+       * backsl2.test: New file.
+       * Makefile.am (TESTS): Added backsl2.test.
+
+       * texinfo8.test: texinfo.tex is only disted by aux/Makefile.
+
+       * texinfo8.test: New file.
+       * Makefile.am (TESTS): Added texinfo8.test.
+
+1999-03-31  Tom Tromey  <address@hidden>
+
+       * pluseq2.test, pluseq3.test: Updated for recent \-preservation
+       change.
+
+1999-03-31  Alexandre Oliva  <address@hidden>
+
+       * Makefile.am (XFAIL_TESTS): add confh.test
+
+1999-03-30  Tom Tromey  <address@hidden>
+
+       * mclean.test: Fixed typo.
+
+       * mclean.test: New file.
+       * Makefile.am (TESTS): Added mclean.test.
+
+1999-03-30  Alexandre Oliva  <address@hidden>
+
+       * confh.test: if include/Makefile.am is created, the test fails
+
+1999-03-27  Tom Tromey  <address@hidden>
+
+       * extra4.test: Allow EXTRA_DATA to be specified.
+
+1999-03-22  Tom Tromey  <address@hidden>
+
+       * ldadd.test: Use AC_PROG_LIBTOOL, not AM_PROG_LIBTOOL.
+
+       * pluseq7.test: New file.
+       * Makefile.am (TESTS): Added pluseq7.test.
+       * pluseq6.test: New file.
+       * Makefile.am (TESTS): Added pluseq6.test.
+
+1999-03-21  Tom Tromey  <address@hidden>
+
+       * nodep.test: New file.
+       * Makefile.am (TESTS): Added nodep.test.
+
+       * subdir3.test: Correctly mention _SOURCES in Makefile.am.
+
+       * subdir3.test: New file.
+       * Makefile.am (TESTS): Added subdir3.test.
+       * xsource.test: Changed to check whether multiple source files
+       with same object name cause failure.
+
+1999-03-11  Tom Tromey  <address@hidden>
+
+       * libobj9.test: New file.
+       * Makefile.am (TESTS): Added libobj9.test.
+
+       * insthook.test: Don't require GNU grep.  From John Pierce.
+
+       * lex3.test: New file.
+       * Makefile.am (TESTS): Added lex3.test.
+
+1999-03-01  Tom Tromey  <address@hidden>
+
+       * ansi3.test: Use no-dependencies option to avoid GNU make
+       requirement.  From Jerome Lovy.
+
+1999-02-27  Tom Tromey  <address@hidden>
+
+       * ext.test (foo_SOURCES): New file.
+       * Makefile.am (TESTS): Added ext.test.
+
+1999-02-11  Tom Tromey  <address@hidden>
+
+       * cygwin32.test: Use AC_EXEEXT, not AM_EXEEXT.
+
+       * obsolete2.test: New file.
+       * Makefile.am (TESTS): Added obsolete2.test.
+
+1999-02-01  Tom Tromey  <address@hidden>
+
+       * installsh.test (AUTOMAKE): Use $PERL.  From Pavel Roskin.
+
+       * cond5.test: Sleep 15 seconds, not 5.  Some people still run the
+       test on slow machines.
+
+1999-01-22  Tom Tromey  <address@hidden>
+
+       * copy.test: New file.
+       * Makefile.am (TESTS): Added copy.test.
+
+       * ppf77.test: New file.
+       * Makefile.am (TESTS): Added ppf77.test.
+
+1999-01-14  Tom Tromey  <address@hidden>
+
+       * confh3.test: New file.
+       * Makefile.am (TESTS): Added confh3.test.
+
+       * confh2.test: New file.
+       * Makefile.am (TESTS): Added confh2.test.
+
+       * confh.test: Run automake differently the second time.
+
+       * mdate3.test: New file.
+       * Makefile.am (TESTS): Added mdate3.test.
+
+1999-01-11  Tom Tromey  <address@hidden>
+
+       * confh.test: New file.
+       * Makefile.am (TESTS): Added confh.test.
+
+1999-01-10  Tom Tromey  <address@hidden>
+
+       * objc.test: Updated to account for new ObjC support.
+
+       * pluseq5.test: New file.
+       * Makefile.am (TESTS): Added pluseq5.test.
+
+       * all.test: Test all *-local targets, not just all-local.
+
+       * all.test: New file.
+       * Makefile.am (TESTS): Added all.test.
+
+1999-01-07  Tom Tromey  <address@hidden>
+
+       * include.test: New file.
+       * Makefile.am (TESTS): Added include.test.
+
+1998-12-21  Tom Tromey  <address@hidden>
+
+       * insthook.test: Updated to fail when it should.
+
+1998-12-11  Tom Tromey  <address@hidden>
+
+       * insthook.test: New file.
+       * Makefile.am (TESTS): Added insthook.test.
+
+1998-11-27  Tom Tromey  <address@hidden>
+
+       * cond7.test: New file.  From Pavel Roskin.
+       * Makefile.am (TESTS): New file.
+
+1998-11-10  Tom Tromey  <address@hidden>
+
+       * pluseq4.test: New file.
+       * Makefile.am (TESTS): Added pluseq4.test.
+
+1998-11-09  Tom Tromey  <address@hidden>
+
+       * pluseq3.test: New file.
+       * Makefile.am (TESTS): Added pluseq3.test.
+
+       * pluseq2.test: New file.
+       * Makefile.am (TESTS): Added pluseq2.test.
+
+1998-10-30  Tom Tromey  <address@hidden>
+
+       * pluseq.test: New file.
+       * Makefile.am (TESTS): Added pluseq.test.
+
+1998-10-28  Tom Tromey  <address@hidden>
+
+       * Makefile.am (distclean-local): Typo fix.
+
+1998-10-20  Tom Tromey  <address@hidden>
+
+       * Makefile.am (TESTS): Sorted tests.  From Jeff Garzik.
+
+1998-10-13  Tom Tromey  <address@hidden>
+
+       * libobj7.test: Updated to reflect minor change in automake (test
+       wasn't resilient enough).
+       * instman.test: Updated to reflect fact that mkinstalldirs will be
+       in distribution.
+
+       * cxxonly.test: Removed.
+
+Mon Aug 31 09:46:59 1998  Matthew D. Langston  <address@hidden>
+
+       * Makefile.am (TESTS): Added compile_f_c_cxx.test.
+       * compile_f_c_cxx.test: New file.
+
+Sat Aug 29 18:17:58 1998  Matthew D. Langston  <address@hidden>
+
+       * Makefile.am (TESTS): Added flink.test link_c_cxx.test
+       link_f_c.test link_f_c_cxx.test link_f_cxx.test link_f_only.test.
+       Removed flink.test.
+       * flibs.test: New File.
+       * link_c_cxx.test: New file.
+       * link_f_c.test: New file.
+       * link_f_c_cxx.test: New file.
+       * link_f_cxx.test: New file.
+       * link_f_only.test: New file.
+
+Tue Aug 11 10:46:36 1998  Matthew D. Langston  <address@hidden>
+
+       * Makefile.am (TESTS): Add cxxonly.test, fonly.test, flink.test,
+       fnoc.test and fo.test.
+       * cxxonly.test: New file.
+       * fonly.test: New file.
+       * flink.test: New file.
+       * fnoc.test: New file.
+       * fo.test: New file.
+
+1998-10-08  Tom Tromey  <address@hidden>
+
+       * confdist.test: New file.
+       * Makefile.am (TESTS): Added confdist.test.
+
+1998-10-07  Tom Tromey  <address@hidden>
+
+       * extra4.test: New file.
+       * extra3.test: New file.
+       * Makefile.am (TESTS): Added extra3.test, extra4.test.
+
+Mon Oct  5 12:47:32 1998  Tom Tromey  <address@hidden>
+
+       * badline.test: New file.
+       * Makefile.am (TESTS): Added badline.test.
+
+Thu Oct  1 00:03:39 1998  Tom Tromey  <address@hidden>
+
+       * seenc.test: Updated test to account for removed line numbers.
+
+       * xsource.test: Correctly fail if source in subdir.
+
+Wed Sep 30 12:17:34 1998  Tom Tromey  <address@hidden>
+
+       * colon7.test: New file.
+       * Makefile.am (TESTS): Added colon7.test.
+
+Tue Sep 29 02:09:11 1998  Tom Tromey  <address@hidden>
+
+       * config.test: New file.
+       * Makefile.am (TESTS): Added config.test.
+
+       * Makefile.am (TESTS): Reference clean.test, not clean.am.
+
+Mon Sep 28 01:46:34 1998  Tom Tromey  <address@hidden>
+
+       * recurs2.test: New file, from Jim Meyering.
+       * Makefile.am (TESTS): Added recurs2.test.
+
+       * Makefile.am (TESTS): Added clean.am.
+       * clean.test: New file.
+       * ansi2.test: Updated test for new SUBDIRS change.
+       * noinst.test: Updated test for new SUBDIRS change.
+       * checkall.test: Added check to make sure check-local is handled.
+       Updated test for new SUBDIRS change.
+       * java.test: Updated test for new SUBDIRS change.
+
+Sun Sep 27 20:01:20 1998  Tom Tromey  <address@hidden>
+
+       * Makefile.am (TESTS): Added else.test.
+       * else.test: New file.
+
+       * Makefile.am (TESTS): Added parse.test.
+       * parse.test: New file.
+
+Sat Sep 26 19:17:43 1998  Tom Tromey  <address@hidden>
+
+       * aclocal.test: Put AM_INIT_AUTOMAKE into configure.in.
+       * library.test: Use AC_EXEEXT.
+       * texinfo5.test: Use AC_EXEEXT.
+       * Many files: use AC_PROG_INSTALL, not AM_PROG_INSTALL.
+
+       Test suite updates for the @SHELL@ change:
+       * exsource.test: Set SHELL on `make' command line.
+       * ansi.test: Set SHELL on `make' command line.
+       * texinfo.test: Set SHELL on `make' command line.
+       * insh2.test: Set SHELL on `make' command line.
+       * empty.test: Rewrite @SHELL@ to /bin/sh.
+
+Tue Sep 22 01:20:00 1998  Tom Tromey  <address@hidden>
+
+       * ansi3.test: Use gcc and not gcc -traditional.
+
+Tue Sep 15 22:19:48 1998  Tom Tromey  <address@hidden>
+
+       * texinfo7.test: New file.
+
+Sun Aug 16 23:17:38 1998  Tom Tromey  <address@hidden>
+
+       * colon6.test: New file.
+
+Fri Aug 14 11:09:03 1998  Tom Tromey  <address@hidden>
+
+       * cond6.test: New file.
+
+Mon Aug 10 21:05:15 1998  Tom Tromey  <address@hidden>
+
+       * ansi3.test: New file.
+
+Sat Jul 18 00:27:26 1998  Tom Tromey  <address@hidden>
+
+       * recurs.test: New file.
+
+       * cond3.test: Changed to match recent fixes.
+
+Fri Jul 17 23:44:49 1998  Tom Tromey  <address@hidden>
+
+       * cond4.test, cond5.test: New files.
+
+Tue May 26 01:44:37 1998  Tom Tromey  <address@hidden>
+
+       * syntax.test: New file.
+
+Sun Apr  5 15:26:42 1998  Tom Tromey  <address@hidden>
+
+       * version3.test: Increased version number to ensure failure for a
+       long time to come.
+
+       * library.test: New file.
+
+       * lex2.test: Updated since lex error changed to warning.
+
+Fri Apr  3 13:04:50 1998  Tom Tromey  <address@hidden>
+
+       * colon5.test: New file.
+
+       * exdir2.test: New file.
+       * instdata.test: New file.
+
+Wed Mar 25 15:30:39 1998  Tom Tromey  <address@hidden>
+
+       * badopt.test: new file.
+       * version3.test: New file.
+
+Mon Mar 23 10:52:36 1998  Tom Tromey  <address@hidden>
+
+       * libobj8.test: New file.
+
+Fri Mar 20 00:32:16 1998  Tom Tromey  <address@hidden>
+
+       * lex2.test: New file.
+
+       * aclocalii.test: New file.
+
+       * javasubst.test: New file.
+
+Thu Mar 19 14:11:45 1998  Tom Tromey  <address@hidden>
+
+       * javaprim.test: New file.
+
+       * sinclude.test: New file.
+
+Wed Mar 18 17:15:22 1998  Tom Tromey  <address@hidden>
+
+       * java.test: New file.
+
+Sun Mar  8 15:35:14 1998  Tom Tromey  <address@hidden>
+
+       * colon4.test: New file.
+
+Fri Mar  6 21:17:10 1998  Tom Tromey  <address@hidden>
+
+       * colon3.test: Refined tests.
+
+Tue Feb 24 12:29:05 1998  Tom Tromey  <address@hidden>
+
+       * man.test: Removed.
+
+       * condman2.test: New file.
+
+Mon Feb 23 16:20:49 1998  Tom Tromey  <address@hidden>
+
+       * texinfo6.test: New file.
+
+Mon Feb 16 00:08:58 1998  Tom Tromey  <address@hidden>
+
+       * aclocali.test: New file.
+
+Fri Feb 13 00:36:38 1998  Tom Tromey  <address@hidden>
+
+       * texinfo5.test (info_TEXINFOS): New file.
+
+       * condman.test: New file.
+
+       * Makefile.am (distclean-local): Ignore rm return value.
+
+Thu Feb 12 21:00:34 1998  Tom Tromey  <address@hidden>
+
+       * unused.test: New file.
+
+       * whoami.test: New file.
+
+       * alpha.test: New file.
+
+Wed Feb 11 17:28:30 1998  Tom Tromey  <address@hidden>
+
+       * aclocal.test: New file.
+
+Thu Feb  5 13:22:17 1998  Tom Tromey  <address@hidden>
+
+       * cxxcpp.test: New file.
+
+Mon Dec  1 15:48:16 1997  Tom Tromey  <address@hidden>
+
+       * cond3.test: New file.
+
+Sat Nov 29 22:09:27 1997  Tom Tromey  <address@hidden>
+
+       * objc.test: New file.
+
+Sat Oct 25 00:04:04 1997  Tom Tromey  <address@hidden>
+
+       * libobj7.test: New file.
+
+Tue Oct 21 00:46:24 1997  Tom Tromey  <address@hidden>
+
+       * lex2.test: Removed; @LEXLIB@ no longer required.
+
+       * depacl2.test: Use -I, not --acdir.
+
+       * install.test: New file.
+       * ammissing.test: New file.
+
+Sun Sep 28 17:19:52 1997  Tom Tromey  <address@hidden>
+
+       * cxxnoc.test: Changed to reflect MKDEP change.
+
+Wed Sep 24 16:01:59 1997  Tom Tromey  <address@hidden>
+
+       * output5.test: New file.
+
+       * depend3.test: New file.
+
+Mon Aug 25 17:24:42 1997  Tom Tromey  <address@hidden>
+
+       * cygwin32.test: Use AM_EXEEXT, not AM_CYGWIN32.
+
+Tue Aug  5 20:33:33 1997  Tom Tromey  <address@hidden>
+
+       * libobj6.test: New file.
+
+Mon May 26 22:47:36 1997  Tom Tromey  <address@hidden>
+
+       * depend.test: Fixed test.
+
+Sat May 10 18:28:14 1997  Tom Tromey  <address@hidden>
+
+       * depend2.test: Fixed test; added another check.
+
+Sun May  4 15:47:24 1997  Tom Tromey  <address@hidden>
+
+       * xsource.test: New file.
+
+Tue Apr 29 19:08:47 1997  Tom Tromey  <address@hidden>
+
+       * cond.test, cond2.test: New files from Ian Taylor.
+
+Sun Apr 27 21:07:49 1997  Tom Tromey  <address@hidden>
+
+       * confsub.test: Fixed bug.
+
+Fri Apr 25 12:30:22 1997  Tom Tromey  <address@hidden>
+
+       * conf2.test: New file.
+
+Tue Apr  8 19:26:07 1997  Tom Tromey  <address@hidden>
+
+       * ansi.test, empty.test, exsource.test, insh2.test, man.test,
+       mkinst2.test, texinfo.test, texinfo2.test: Use $MAKE.
+
+       * defs (MAKE): Define.
+
+Mon Apr  7 17:35:49 1997  Tom Tromey  <address@hidden>
+
+       * version2.test: New file.
+
+Wed Apr  2 00:12:26 1997  Tom Tromey  <address@hidden>
+
+       * ldadd.test: New file.
+
+Fri Mar 28 23:36:04 1997  Tom Tromey  <address@hidden>
+
+       * stamph.test: New file.
+
+Thu Mar 27 18:10:47 1997  Tom Tromey  <address@hidden>
+
+       * lisp.test: New file.
+
+Sat Mar 22 01:14:03 1997  Tom Tromey  <address@hidden>
+
+       * cygwin32.test: New file.
+
+Thu Mar 20 00:34:33 1997  Tom Tromey  <address@hidden>
+
+       * exsource.test: Exit if not using GNU make.
+
+Tue Mar 18 22:36:34 1997  Tom Tromey  <address@hidden>
+
+       * remake2.test: Changed for `missing' support.
+
+Sun Mar 16 14:29:45 1997  Tom Tromey  <address@hidden>
+
+       * seenc.test: New file.
+
+       * checkall.test, noinst.test: Don't use bogus construct when
+       checking.
+
+       * libobj3.test, canon.test, target.test, spell2.test,
+       primary2.test, discover.test, lex2.test: Fixed to test what it
+       claims to test.
+
+Mon Mar 10 23:21:03 1997  Tom Tromey  <address@hidden>
+
+       * libobj.test, libobj2.test: Use AC_PROG_CC.
+
+       * confsub.test: Modified for definition of CONFIG_HEADER_FULL.
+
+       * cxxlibobj.test: New file.
+
+Wed Feb 26 13:05:42 1997  Tom Tromey  <address@hidden>
+
+       * tagsub.test: New file.
+
+Sun Feb 23 11:58:00 1997  Tom Tromey  <address@hidden>
+
+       * texinfo.test, texinfo2.test, texinfo3.test, info.test,
+       mdate.test, vtexi.test, canon2.test, mdate2.test, vtexi2.test:
+       Updated for new texinfo handling.
+
+       * texinfo4.test: New file.
+       * texinfo3.test: New file.
+
+Sat Feb 22 09:48:44 1997  Tom Tromey  <address@hidden>
+
+       * yaccpp.test: New file.
+
+Tue Feb 11 09:51:47 1997  Tom Tromey  <address@hidden>
+
+       * texinfo2.test: Fixed quoting bug.  From Michael Brantley.
+
+Tue Feb  4 18:41:32 1997  Tom Tromey  <address@hidden>
+
+       * confsub.test: Check subdir/Makefile.in to make sure dependency
+       is correct.
+
+       * ansi2.test: ANSI2KNR dependency of all.
+
+Tue Dec 10 00:43:14 1996  Tom Tromey  <address@hidden>
+
+       * defun2.test: New file.
+       * subst.test: New file.
+
+Sun Dec  8 12:25:22 1996  Tom Tromey  <address@hidden>
+
+       * colneq2.test: New file.
+
+Sat Dec  7 12:52:45 1996  Tom Tromey  <address@hidden>
+
+       * output4.test: New file.
+       * output3.test: New file.
+       * remake2.test: New file.
+       * output2.test: New file.
+
+Fri Dec  6 19:00:31 1996  Tom Tromey  <address@hidden>
+
+       * output.test: New file.
+
+Thu Dec  5 18:23:17 1996  Tom Tromey  <address@hidden>
+
+       * remake.test: New file.
+       * colon3.test: New file.
+       * colon2.test: New file.
+       * cxxo.test: New file.
+
+Wed Dec  4 00:41:44 1996  Tom Tromey  <address@hidden>
+
+       * defs: Allow user to set interpreter via PERL environment
+       variable.
+
+       * Makefile.am (distclean-local): New target.
+
+Tue Dec  3 11:55:18 1996  Gordon Matzigkeit  <address@hidden>
+
+       * dup.test, dup2.test: Modified, now that aclocal allows
+       acinclude.m4 to override any installed macro file.
+
+Mon Dec  2 22:44:16 1996  Gordon Matzigkeit  <address@hidden>
+
+       * alllib.test: Removed from distribution, since LIBFILES are no
+       longer computed.
+
+Sun Nov 24 14:36:00 1996  Tom Tromey  <address@hidden>
+
+       * extra2.test: New file.
+
+Fri Nov 22 00:10:04 1996  Tom Tromey  <address@hidden>
+
+       * stdlib.test: New file.
+
+Thu Nov 21 22:51:35 1996  Tom Tromey  <address@hidden>
+
+       * confsub.test: Use AM_CONFIG_HEADER.
+
+Tue Nov 19 23:37:32 1996  Tom Tromey  <address@hidden>
+
+       * confvar2.test: New file.
+
+Fri Nov 15 00:09:18 1996  Tom Tromey  <address@hidden>
+
+       * ansi2.test: New file.
+
+       * libfiles.test: Removed (obsolete).
+
+       * libobj.test, canon4.test, libobj2.test, alllib.test,
+       ranlib.test: Fixed for Gord's changes to library handling.
+
+       * Many files: Use AC_PROG_CC to avoid error.
+
+Thu Oct 24 15:22:53 1996  Tom Tromey  <address@hidden>
+
+       * confvar.test: New file.
+       * ranlib.test: New file.
+
+Mon Oct 21 22:57:51 1996  Tom Tromey  <address@hidden>
+
+       * version.test: New file.
+
+Fri Oct 11 00:51:04 1996  Tom Tromey  <address@hidden>
+
+       * libobj5.test: New file.
+       * libobj4.test: New file.
+       * distdir.test: New file.
+       * lex2.test: New file.
+
+Sun Oct  6 11:00:44 1996  Tom Tromey  <address@hidden>
+
+       * acsilent.test: New file.
+       * req.test: New file.
+       * acinclude.test: New file.
+
+Sat Oct  5 11:31:38 1996  Tom Tromey  <address@hidden>
+
+       * discover.test: New file.
+
+       * mkinst2.test: Renamed from mkinstall2.test.
+
+       * symlink.test: New file.
+
+Thu Oct  3 19:55:23 1996  Tom Tromey  <address@hidden>
+
+       * vpath.test: New file.
+
+Mon Sep 30 08:34:07 1996  Tom Tromey  <address@hidden>
+
+       * comment2.test: New file.
+
+Mon Sep 23 00:23:34 1996  Tom Tromey  <address@hidden>
+
+       * spell3.test: New file.
+
+Sun Sep 22 14:42:09 1996  Tom Tromey  <address@hidden>
+
+       * depend2.test: New file.
+
+Sat Sep 21 14:01:10 1996  Tom Tromey  <address@hidden>
+
+       * primary2.test: New file.
+       * primary.test: New file.
+
+Fri Sep 20 09:39:27 1996  Tom Tromey  <address@hidden>
+
+       * confsub.test: New file.
+
+Mon Sep 16 00:05:52 1996  Tom Tromey  <address@hidden>
+
+       * spell2.test: New file.
+
+       * spell.test: New file.
+
+Thu Sep 12 14:57:49 1996  Tom Tromey  <address@hidden>
+
+       * implicit.test: New file.
+
+Wed Sep 11 13:57:10 1996  Tom Tromey  <address@hidden>
+
+       * colneq.test: New file.
+
+       * interp2.test: New file.
+
+Sun Sep  8 10:47:07 1996  Tom Tromey  <address@hidden>
+
+       * gnits.test: New file.
+
+Thu Sep  5 22:54:26 1996  Tom Tromey  <address@hidden>
+
+       * libobj3.test: New file.
+
+Tue Sep  3 20:57:38 1996  Tom Tromey  <address@hidden>
+
+       * block.test: New file.
+
+Mon Aug 26 23:04:01 1996  Tom Tromey  <address@hidden>
+
+       * alllib.test: New file.
+
+       * interp.test: New file.
+
+Mon Aug 12 13:58:55 1996  Tom Tromey  <address@hidden>
+
+       * libobj2.test: New file.
+
+       * order.test: New file.
+
+Sun Aug 11 00:10:42 1996  Tom Tromey  <address@hidden>
+
+       * cxxnoc.test: New file.
+
+       * cxxlink.test: Use AC_PROG_CXX.
+
+       * lex.test: Use AC_PROG_LEX, AC_DECL_YYTEXT.
+
+       * yacc.test: Use AC_PROG_YACC in configure.in.
+
+       * cxxlink.test: New file.
+
+       * yacc.test: Fixed test for new yacc code.
+
+Sat Aug 10 10:09:45 1996  Tom Tromey  <address@hidden>
+
+       * defun.test: New file.
+
+       * dup.test: New file.
+
+Fri Aug  9 09:18:07 1996  Tom Tromey  <address@hidden>
+
+       * canon4.test: New file.
+
+Thu Aug  8 10:47:45 1996  Tom Tromey  <address@hidden>
+
+       * exsource.test: New file.
+
+       * subdir2.test: New file.
+
+       * scripts.test: New file.
+
+Tue Aug  6 12:30:41 1996  Tom Tromey  <address@hidden>
+
+       * lex.test: New file.
+
+Mon Aug  5 01:03:03 1996  Tom Tromey  <address@hidden>
+
+       * obsolete.test: New file.
+
+       * Many files: Use AM_ macros, not fp_ macros.
+
+       * info.test: New file.
+
+Sun Aug  4 12:47:34 1996  Tom Tromey  <address@hidden>
+
+       * man.test: New file.
+
+       * acouttbs2.test: New file.
+
+       * libfiles.test: New file.
+
+       * comment.test: New file.
+
+       * tags.test: New file.
+
+       * vtexi2.test: New file.
+
+       * colon.test: New file.
+
+Sun Jul 28 11:43:00 1996  Tom Tromey  <address@hidden>
+
+       * defs (ACLOCAL): Added definition.
+
+       * depacl.test, depacl2.test, error.test: New tests for aclocal.
+
+Fri Jul 19 10:09:56 1996  Tom Tromey  <address@hidden>
+
+       * ansi.test: New file.
+
+Sun Jun  9 23:20:03 1996  Tom Tromey  <address@hidden>
+
+       * texinfo2.test: New file.
+
+Sat Jun  8 10:00:42 1996  Tom Tromey  <address@hidden>
+
+       * mkinstall2.test: New file.
+
+Fri Jun  7 18:17:11 1996  Tom Tromey  <address@hidden>
+
+       * yacc.test: New file.
+
+Sun Jun  2 09:04:52 1996  Tom Tromey  <address@hidden>
+
+       * dejagnu.test: New file.
+
+       * texinfo.test: New file.
+
+Thu May 23 09:58:48 1996  Tom Tromey  <address@hidden>
+
+       * fpinst2.test: New file.
+
+       * fpinstall.test: New file.
+
+Wed May 22 09:45:52 1996  Tom Tromey  <address@hidden>
+
+       * outdir.test: New file.
+
+Sat May 18 10:51:37 1996  Tom Tromey  <address@hidden>
+
+       * insh2.test: New file.
+
+Fri May 17 17:32:35 1996  Tom Tromey  <address@hidden>
+
+       * number.test: New file.
+
+       * defs, many .test files: Define PACKAGE and VERSION in
+       configure.in.
+
+       * package.test: New file.
+
+       * backsl.test: New file.
+
+Thu May 16 09:15:57 1996  Tom Tromey  <address@hidden>
+
+       * subdir.test: New file.
+
+Tue May 14 10:17:17 1996  Tom Tromey  <address@hidden>
+
+       * mdate2.test: New file, from report by Jim Meyering.
+
+       * canon3.test: New file.
+
+       * auxdir.test: New file.
+
+       * mkinstall.test: New file.
+
+       * extra.test: Reversed sense of test.
+
+Fri Apr 26 15:15:01 1996  Tom Tromey  <address@hidden>
+
+       * instman.test: New file.
+
+Thu Apr 25 17:12:30 1996  Tom Tromey  <address@hidden>
+
+       * noinst.test: New file
+
+       * exdir.test: Quoting change from Gord Matzigkeit.
+
+       * extra.test (EXTRA_PROGRAMS): New file.
+
+Tue Apr  9 22:55:07 1996  Tom Tromey  <address@hidden>
+
+       * target.test: New file.
+
+Wed Apr  3 15:10:54 1996  Tom Tromey  <address@hidden>
+
+       * canon2.test: New file
+
+       * insh.test: New file.
+
+Wed Mar 27 23:31:51 1996  Tom Tromey  <address@hidden>
+
+       * rulepat.test: New file.
+
+Sat Mar 16 08:37:36 1996  Tom Tromey  <address@hidden>
+
+       * empty.test: New file.
+
+Fri Mar 15 17:55:13 1996  Tom Tromey  <address@hidden>
+
+       * installsh.test: New file.
+
+Tue Mar  5 16:22:46 1996  Tom Tromey  <address@hidden>
+
+       * badprog.test: Rewrote.
+
+       * canon.test: New file.
+
+Mon Mar  4 21:08:37 1996  Tom Tromey  <address@hidden>
+
+       * exdir.test: New file.
+
+Fri Mar  1 17:23:53 1996  Tom Tromey  <address@hidden>
+
+       * depend.test: New file.
+
+       * badprog.test: New file.
+
+       * defs (AUTOMAKE): Pass --foreign.
+
+Thu Feb 29 20:23:42 1996  Tom Tromey  <address@hidden>
+
+       More tests:
+       * prefix.test: New file.
+       * spelling.test: New file
+       * confincl.test: New file.
+       * Makefile.am (TESTS): Updated.
+
+Wed Feb 28 11:57:02 1996  Tom Tromey  <address@hidden>
+
+       * acoutqnl.test: New file.
+       * Makefile.am (TESTS): Include it.
+
+Tue Feb 27 10:52:58 1996  Tom Tromey  <address@hidden>
+
+       * Makefile.am (DIST_OTHER): Include "defs".
+
+       * defs (AUTOMAKE): Never relative to $srcdir.
+
+Mon Feb 26 23:14:08 1996  Tom Tromey  <address@hidden>
+
+       * libobj.test: Put AC_PROG_RANLIB in configure.in
+
+Mon Feb 19 08:22:22 1996  Tom Tromey  <address@hidden>
+
+       * proginst.test: New file.
+
+Tue Feb 13 18:54:39 1996  Tom Tromey  <address@hidden>
+
+       * libobj.test: New file.
+
+Mon Feb 12 17:05:48 1996  Tom Tromey  <address@hidden>
+
+       * acouttbs.test: New file.
+
+       * Makefile.am (DIST_OTHER): New variable.
+
+       * acoutnoq.test: New file.
+
+Sun Feb 11 16:39:14 1996  Tom Tromey  <address@hidden>
+
+       * checkall.test: Delay a little.
+
+       * Makefile.am (check-local): Print name of failing test.
+
+Sat Feb 10 17:08:39 1996  Tom Tromey  <address@hidden>
+
+       * checkall.test: New file.
+
+       * instexec.test: New file.
+
+       * mdate.test, vtexi.test, acoutput.test: New files.
+
+       * Started.
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 38dd348..05ff224 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -1,47 +1,331 @@
 ## Process this file with automake to create Makefile.in
 
-AUTOMAKE_OPTIONS = gnits
+TESTS =        \
+acinclude.test \
+aclibobj.test \
+aclocal.test \
+aclocali.test \
+aclocali1.test \
+aclocalii.test \
+acoutnoq.test \
+acoutput.test \
+acoutput2.test \
+acoutqnl.test \
+acouttbs.test \
+acsilent.test \
+all.test \
+alpha.test \
+amassign.test \
+ammissing.test \
+ansi.test \
+ansi2.test \
+ansi3.test \
+ansi4.test \
+ansi5.test \
+asm.test \
+auxdir.test \
+backsl.test \
+backsl2.test \
+badline.test \
+badprog.test \
+block.test \
+canon.test \
+canon2.test \
+canon3.test \
+canon4.test \
+canon5.test \
+ccnoco.test \
+check.test \
+checkall.test \
+clean.test \
+colneq.test \
+colneq2.test \
+colon.test \
+colon2.test \
+colon3.test \
+colon4.test \
+colon5.test \
+colon6.test \
+colon7.test \
+comment.test \
+comment2.test \
+comment3.test \
+compile_f_c_cxx.test \
+cond.test \
+cond2.test \
+cond3.test \
+cond4.test \
+cond5.test \
+cond6.test \
+cond7.test \
+cond8.test \
+cond9.test \
+cond10.test \
+cond11.test \
+cond12.test \
+cond13.test \
+cond14.test \
+cond15.test \
+cond16.test \
+cond18.test \
+cond19.test \
+cond20.test \
+condincl.test \
+condincl2.test \
+condlib.test \
+condman.test \
+condman2.test \
+conf2.test \
+confdeps.test \
+confdist.test \
+confh.test \
+confh2.test \
+confh3.test \
+confh4.test \
+config.test \
+confincl.test \
+confsub.test \
+confvar.test \
+confvar2.test \
+copy.test \
+ctarget1.test \
+cxx.test \
+cxxansi.test \
+cxxcpp.test \
+cxxlibobj.test \
+cxxlink.test \
+cxxnoc.test \
+cxxo.test \
+cygwin32.test \
+dash.test \
+defun.test \
+defun2.test \
+dejagnu.test \
+dejagnu2.test \
+depacl.test \
+depacl2.test \
+depcomp.test \
+depcomp2.test \
+depdist.test \
+depend.test \
+depend2.test \
+depend3.test \
+depend4.test \
+dirname.test \
+discover.test \
+distcommon.test \
+distdir.test \
+distname.test \
+double.test \
+dup2.test \
+dup3.test \
+else.test \
+empty.test \
+empty2.test \
+empty3.test \
+empty4.test \
+error.test \
+exdir.test \
+exdir2.test \
+exeext.test \
+exeext2.test \
+exsource.test \
+ext.test \
+extra.test \
+extra3.test \
+extra4.test \
+flibs.test \
+fnoc.test \
+fo.test        \
+fonly.test \
+fortdep.test \
+fpinst2.test \
+fpinstall.test \
+gcj.test \
+gcj2.test \
+gcj3.test \
+gnits.test \
+header.test \
+implicit.test \
+include.test \
+info.test \
+insh.test \
+insh2.test \
+install.test \
+install2.test \
+installsh.test \
+instdata.test \
+instdata2.test \
+instexec.test \
+insthook.test \
+instman.test \
+instman2.test \
+interp.test \
+interp2.test \
+java.test \
+javaprim.test \
+javasubst.test \
+listval.test \
+ldadd.test \
+ldflags.test \
+lex.test \
+lex2.test \
+lex3.test \
+lex4.test \
+libobj.test \
+libobj2.test \
+libobj3.test \
+libobj4.test \
+libobj5.test \
+libobj6.test \
+libobj7.test \
+libobj8.test \
+libobj9.test \
+libobj10.test \
+library.test \
+libtool.test \
+libtool2.test \
+link_c_cxx.test        \
+link_dist.test \
+link_f_c.test \
+link_f_c_cxx.test \
+link_f_cxx.test        \
+link_f_only.test \
+lisp.test \
+ltdeps.test \
+ltlibobjs.test \
+make.test \
+makevars.test \
+man.test \
+mclean.test \
+mdate.test \
+mdate2.test \
+mdate3.test \
+mdate4.test \
+mkinst2.test \
+mkinstall.test \
+nodep.test \
+nodepcomp.test \
+nodist.test \
+noinst.test \
+noinstdir.test \
+nolink.test \
+nostdinc.test \
+number.test \
+obsolete.test \
+obsolete2.test \
+order.test \
+outdir.test \
+output.test \
+output2.test \
+output3.test \
+output4.test \
+output5.test \
+package.test \
+parse.test \
+pluseq.test \
+pluseq2.test \
+pluseq3.test \
+pluseq4.test \
+pluseq5.test \
+pluseq6.test \
+pluseq7.test \
+pluseq8.test \
+ppf77.test \
+pr2.test \
+pr9.test \
+pr72.test \
+pr87.test \
+prefix.test \
+primary.test \
+primary2.test \
+proginst.test \
+python.test \
+ranlib.test \
+recurs.test \
+recurs2.test \
+remake.test \
+remake2.test \
+remake3.test \
+req.test \
+rulepat.test \
+scripts.test \
+seenc.test \
+sinclude.test \
+sourcesub.test \
+space.test \
+specflags.test \
+specflags2.test        \
+specflags3.test        \
+spell.test \
+spell2.test \
+spell3.test \
+spelling.test \
+stamph.test \
+stamph2.test \
+stdlib.test \
+subdir.test \
+subdir2.test \
+subdir3.test \
+subdir4.test \
+subdirbuiltsources.test \
+subdircond.test \
+subobj.test \
+subobj2.test \
+subobj3.test \
+subobj4.test \
+subobj5.test \
+subobj6.test \
+subobj7.test \
+subobj8.test \
+subst.test \
+substref.test \
+substtarg.test \
+suffix.test \
+suffix2.test \
+suffix3.test \
+symlink.test \
+symlink2.test \
+symlink3.test \
+syntax.test \
+tags.test \
+tagsub.test \
+target.test \
+target-cflags.test \
+texinfo.test \
+texinfo2.test \
+texinfo3.test \
+texinfo4.test \
+texinfo5.test \
+texinfo6.test \
+texinfo7.test \
+texinfo8.test \
+texinfo9.test \
+texinfo10.test \
+unused.test \
+vars.test \
+vartar.test \
+version.test \
+version2.test \
+version3.test \
+version4.test \
+vpath.test \
+vtexi.test \
+vtexi2.test \
+werror.test \
+whoami.test \
+xsource.test \
+yacc.test \
+yacc2.test \
+yacc3.test \
+yacc4.test \
+yacc5.test \
+yacc6.test \
+yacc7.test \
+yaccpp.test \
+yaccvpath.test
 
-TESTS = acinclude.test aclocal.test aclocali.test aclocalii.test \
-acoutnoq.test acoutput.test acoutqnl.test acouttbs.test acsilent.test \
-all.test alpha.test ammissing.test ansi.test ansi2.test ansi3.test \
-auxdir.test backsl.test badline.test badprog.test block.test \
-canon.test canon2.test canon3.test canon4.test checkall.test \
-clean.test colneq.test colneq2.test colon.test colon2.test colon3.test \
-colon4.test colon5.test colon6.test colon7.test comment.test \
-comment2.test compile_f_c_cxx.test cond.test cond2.test cond3.test \
-cond4.test cond5.test cond6.test cond7.test condman.test condman2.test \
-conf2.test confdist.test confh.test confh2.test confh3.test \
-config.test confincl.test confsub.test confvar.test confvar2.test \
-cxxcpp.test cxxlibobj.test cxxlink.test cxxnoc.test cxxo.test \
-cygwin32.test defun.test defun2.test dejagnu.test depacl.test \
-depacl2.test depend.test depend2.test depend3.test discover.test \
-distdir.test dup.test dup2.test else.test empty.test error.test        \
-exdir.test exdir2.test exsource.test extra.test extra3.test \
-extra4.test flibs.test fnoc.test fo.test fonly.test fpinst2.test \
-fpinstall.test gnits.test implicit.test include.test info.test \
-insh.test insh2.test install.test installsh.test instdata.test \
-instexec.test insthook.test instman.test interp.test interp2.test \
-java.test javaprim.test javasubst.test ldadd.test lex.test lex2.test \
-libobj.test libobj2.test libobj3.test libobj4.test libobj5.test        \
-libobj6.test libobj7.test libobj8.test library.test link_c_cxx.test \
-link_f_c.test link_f_c_cxx.test link_f_cxx.test link_f_only.test \
-lisp.test mdate.test mdate2.test mdate3.test mkinst2.test \
-mkinstall.test noinst.test number.test objc.test obsolete.test \
-order.test outdir.test output.test output2.test output3.test \
-output4.test output5.test package.test parse.test pluseq.test \
-pluseq2.test pluseq3.test pluseq4.test pluseq5.test prefix.test        \
-primary.test primary2.test proginst.test ranlib.test recurs.test \
-recurs2.test remake.test remake2.test req.test rulepat.test \
-scripts.test seenc.test sinclude.test spell.test spell2.test \
-spell3.test spelling.test stamph.test stdlib.test subdir.test \
-subdir2.test subst.test symlink.test syntax.test tags.test tagsub.test \
-target.test texinfo.test texinfo2.test texinfo3.test texinfo4.test \
-texinfo5.test texinfo6.test texinfo7.test unused.test version.test \
-version2.test version3.test vpath.test vtexi.test vtexi2.test \
-whoami.test xsource.test yacc.test yaccpp.test
-
-EXTRA_DIST = defs $(TESTS)
+EXTRA_DIST = defs ChangeLog-old $(TESTS)
 
 distclean-local:
        -rm -rf testSubDir
diff --git a/tests/Makefile.in b/tests/Makefile.in
index 2ffefa3..43d751a 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -1,6 +1,7 @@
-# Makefile.in generated automatically by automake 1.4 from Makefile.am
+# Makefile.in generated automatically by automake 1.5.1a from Makefile.am.
 
-# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+# Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -10,6 +11,7 @@
 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 # PARTICULAR PURPOSE.
 
address@hidden@
 
 SHELL = @SHELL@
 
@@ -31,13 +33,9 @@ infodir = @infodir@
 mandir = @mandir@
 includedir = @includedir@
 oldincludedir = /usr/include
-
-DESTDIR =
-
 pkgdatadir = $(datadir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
-
 top_builddir = ..
 
 ACLOCAL = @ACLOCAL@
@@ -46,160 +44,531 @@ AUTOMAKE = @AUTOMAKE@
 AUTOHEADER = @AUTOHEADER@
 
 INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_HEADER = $(INSTALL_DATA)
 transform = @program_transform_name@
-
 NORMAL_INSTALL = :
 PRE_INSTALL = :
 POST_INSTALL = :
 NORMAL_UNINSTALL = :
 PRE_UNINSTALL = :
 POST_UNINSTALL = :
-MAKEINFO = @MAKEINFO@
+AMTAR = @AMTAR@
+AWK = @AWK@
+DEPDIR = @DEPDIR@
+EXEEXT = @EXEEXT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PERL = @PERL@
-TAR = @TAR@
 VERSION = @VERSION@
+am__include = @am__include@
+am__quote = @am__quote@
+install_sh = @install_sh@
+
+TESTS = \
+acinclude.test \
+aclibobj.test \
+aclocal.test \
+aclocali.test \
+aclocali1.test \
+aclocalii.test \
+acoutnoq.test \
+acoutput.test \
+acoutput2.test \
+acoutqnl.test \
+acouttbs.test \
+acsilent.test \
+all.test \
+alpha.test \
+amassign.test \
+ammissing.test \
+ansi.test \
+ansi2.test \
+ansi3.test \
+ansi4.test \
+ansi5.test \
+asm.test \
+auxdir.test \
+backsl.test \
+backsl2.test \
+badline.test \
+badprog.test \
+block.test \
+canon.test \
+canon2.test \
+canon3.test \
+canon4.test \
+canon5.test \
+ccnoco.test \
+check.test \
+checkall.test \
+clean.test \
+colneq.test \
+colneq2.test \
+colon.test \
+colon2.test \
+colon3.test \
+colon4.test \
+colon5.test \
+colon6.test \
+colon7.test \
+comment.test \
+comment2.test \
+comment3.test \
+compile_f_c_cxx.test \
+cond.test \
+cond2.test \
+cond3.test \
+cond4.test \
+cond5.test \
+cond6.test \
+cond7.test \
+cond8.test \
+cond9.test \
+cond10.test \
+cond11.test \
+cond12.test \
+cond13.test \
+cond14.test \
+cond15.test \
+cond16.test \
+cond18.test \
+cond19.test \
+cond20.test \
+condincl.test \
+condincl2.test \
+condlib.test \
+condman.test \
+condman2.test \
+conf2.test \
+confdeps.test \
+confdist.test \
+confh.test \
+confh2.test \
+confh3.test \
+confh4.test \
+config.test \
+confincl.test \
+confsub.test \
+confvar.test \
+confvar2.test \
+copy.test \
+ctarget1.test \
+cxx.test \
+cxxansi.test \
+cxxcpp.test \
+cxxlibobj.test \
+cxxlink.test \
+cxxnoc.test \
+cxxo.test \
+cygwin32.test \
+dash.test \
+defun.test \
+defun2.test \
+dejagnu.test \
+dejagnu2.test \
+depacl.test \
+depacl2.test \
+depcomp.test \
+depcomp2.test \
+depdist.test \
+depend.test \
+depend2.test \
+depend3.test \
+depend4.test \
+dirname.test \
+discover.test \
+distcommon.test \
+distdir.test \
+distname.test \
+double.test \
+dup2.test \
+dup3.test \
+else.test \
+empty.test \
+empty2.test \
+empty3.test \
+empty4.test \
+error.test \
+exdir.test \
+exdir2.test \
+exeext.test \
+exeext2.test \
+exsource.test \
+ext.test \
+extra.test \
+extra3.test \
+extra4.test \
+flibs.test \
+fnoc.test \
+fo.test        \
+fonly.test \
+fortdep.test \
+fpinst2.test \
+fpinstall.test \
+gcj.test \
+gcj2.test \
+gcj3.test \
+gnits.test \
+header.test \
+implicit.test \
+include.test \
+info.test \
+insh.test \
+insh2.test \
+install.test \
+install2.test \
+installsh.test \
+instdata.test \
+instdata2.test \
+instexec.test \
+insthook.test \
+instman.test \
+instman2.test \
+interp.test \
+interp2.test \
+java.test \
+javaprim.test \
+javasubst.test \
+listval.test \
+ldadd.test \
+ldflags.test \
+lex.test \
+lex2.test \
+lex3.test \
+lex4.test \
+libobj.test \
+libobj2.test \
+libobj3.test \
+libobj4.test \
+libobj5.test \
+libobj6.test \
+libobj7.test \
+libobj8.test \
+libobj9.test \
+libobj10.test \
+library.test \
+libtool.test \
+libtool2.test \
+link_c_cxx.test        \
+link_dist.test \
+link_f_c.test \
+link_f_c_cxx.test \
+link_f_cxx.test        \
+link_f_only.test \
+lisp.test \
+ltdeps.test \
+ltlibobjs.test \
+make.test \
+makevars.test \
+man.test \
+mclean.test \
+mdate.test \
+mdate2.test \
+mdate3.test \
+mdate4.test \
+mkinst2.test \
+mkinstall.test \
+nodep.test \
+nodepcomp.test \
+nodist.test \
+noinst.test \
+noinstdir.test \
+nolink.test \
+nostdinc.test \
+number.test \
+obsolete.test \
+obsolete2.test \
+order.test \
+outdir.test \
+output.test \
+output2.test \
+output3.test \
+output4.test \
+output5.test \
+package.test \
+parse.test \
+pluseq.test \
+pluseq2.test \
+pluseq3.test \
+pluseq4.test \
+pluseq5.test \
+pluseq6.test \
+pluseq7.test \
+pluseq8.test \
+ppf77.test \
+pr2.test \
+pr9.test \
+pr72.test \
+pr87.test \
+prefix.test \
+primary.test \
+primary2.test \
+proginst.test \
+python.test \
+ranlib.test \
+recurs.test \
+recurs2.test \
+remake.test \
+remake2.test \
+remake3.test \
+req.test \
+rulepat.test \
+scripts.test \
+seenc.test \
+sinclude.test \
+sourcesub.test \
+space.test \
+specflags.test \
+specflags2.test        \
+specflags3.test        \
+spell.test \
+spell2.test \
+spell3.test \
+spelling.test \
+stamph.test \
+stamph2.test \
+stdlib.test \
+subdir.test \
+subdir2.test \
+subdir3.test \
+subdir4.test \
+subdirbuiltsources.test \
+subdircond.test \
+subobj.test \
+subobj2.test \
+subobj3.test \
+subobj4.test \
+subobj5.test \
+subobj6.test \
+subobj7.test \
+subobj8.test \
+subst.test \
+substref.test \
+substtarg.test \
+suffix.test \
+suffix2.test \
+suffix3.test \
+symlink.test \
+symlink2.test \
+symlink3.test \
+syntax.test \
+tags.test \
+tagsub.test \
+target.test \
+target-cflags.test \
+texinfo.test \
+texinfo2.test \
+texinfo3.test \
+texinfo4.test \
+texinfo5.test \
+texinfo6.test \
+texinfo7.test \
+texinfo8.test \
+texinfo9.test \
+texinfo10.test \
+unused.test \
+vars.test \
+vartar.test \
+version.test \
+version2.test \
+version3.test \
+version4.test \
+vpath.test \
+vtexi.test \
+vtexi2.test \
+werror.test \
+whoami.test \
+xsource.test \
+yacc.test \
+yacc2.test \
+yacc3.test \
+yacc4.test \
+yacc5.test \
+yacc6.test \
+yacc7.test \
+yaccpp.test \
+yaccvpath.test
+
+
+EXTRA_DIST = defs ChangeLog-old $(TESTS)
+subdir = tests
+mkinstalldirs = $(SHELL) $(top_srcdir)/lib/mkinstalldirs
+CONFIG_CLEAN_FILES =
+DIST_SOURCES =
+DIST_COMMON = Makefile.am Makefile.in
+all: all-am
 
-AUTOMAKE_OPTIONS = gnits
-
-TESTS = acinclude.test aclocal.test aclocali.test aclocalii.test acoutnoq.test 
acoutput.test acoutqnl.test acouttbs.test acsilent.test all.test alpha.test 
ammissing.test ansi.test ansi2.test ansi3.test auxdir.test backsl.test 
badline.test badprog.test block.test canon.test canon2.test canon3.test 
canon4.test checkall.test clean.test colneq.test colneq2.test colon.test 
colon2.test colon3.test colon4.test colon5.test colon6.test colon7.test 
comment.test comment2.test compile_f_c_cxx.test cond.test cond2.test cond3.test 
cond4.test cond5.test cond6.test cond7.test condman.test condman2.test 
conf2.test confdist.test confh.test confh2.test confh3.test config.test 
confincl.test confsub.test confvar.test confvar2.test cxxcpp.test 
cxxlibobj.test cxxlink.test cxxnoc.test cxxo.test cygwin32.test defun.test 
defun2.test dejagnu.test depacl.test depacl2.test depend.test depend2.test 
depend3.test discover.test distdir.test dup.test dup2.test else.test empty.test 
error.test   exdir.test exdir2.test exsource.test extra.test extra3.test 
extra4.test flibs.test fnoc.test fo.test fonly.test fpinst2.test fpinstall.test 
gnits.test implicit.test include.test info.test insh.test insh2.test 
install.test installsh.test instdata.test instexec.test insthook.test 
instman.test interp.test interp2.test java.test javaprim.test javasubst.test 
ldadd.test lex.test lex2.test libobj.test libobj2.test libobj3.test 
libobj4.test libobj5.test       libobj6.test libobj7.test libobj8.test 
library.test link_c_cxx.test link_f_c.test link_f_c_cxx.test link_f_cxx.test 
link_f_only.test lisp.test mdate.test mdate2.test mdate3.test mkinst2.test 
mkinstall.test noinst.test number.test objc.test obsolete.test order.test 
outdir.test output.test output2.test output3.test output4.test output5.test 
package.test parse.test pluseq.test pluseq2.test pluseq3.test pluseq4.test 
pluseq5.test prefix.test        primary.test primary2.test proginst.test 
ranlib.test recurs.test recurs2.test remake.test remake2.test req.test 
rulepat.test scripts.test seenc.test sinclude.test spell.test spell2.test 
spell3.test spelling.test stamph.test stdlib.test subdir.test subdir2.test 
subst.test symlink.test syntax.test tags.test tagsub.test target.test 
texinfo.test texinfo2.test texinfo3.test texinfo4.test texinfo5.test 
texinfo6.test texinfo7.test unused.test version.test version2.test 
version3.test vpath.test vtexi.test vtexi2.test whoami.test xsource.test 
yacc.test yaccpp.test
-
-
-EXTRA_DIST = defs $(TESTS)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_CLEAN_FILES = 
-DIST_COMMON =  ChangeLog Makefile.am Makefile.in
-
-
-DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-
-GZIP_ENV = --best
-all: all-redirect
 .SUFFIXES:
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
-       cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/Makefile
-
-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
-       cd $(top_builddir) \
-         && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
+$(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.in $(ACLOCAL_M4)
+       cd $(top_srcdir) && \
+         $(AUTOMAKE) --gnu  tests/Makefile
+Makefile:  $(srcdir)/Makefile.in  $(top_builddir)/config.status
+       cd $(top_builddir) && \
+         CONFIG_HEADERS= CONFIG_LINKS= \
+         CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status
+uninstall-info-am:
 tags: TAGS
 TAGS:
 
 
-distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+check-TESTS: $(TESTS)
+       @failed=0; all=0; xfail=0; xpass=0; \
+       srcdir=$(srcdir); export srcdir; \
+       list='$(TESTS)'; \
+       if test -n "$$list"; then \
+         for tst in $$list; do \
+           if test -f ./$$tst; then dir=./; \
+           elif test -f $$tst; then dir=; \
+           else dir="$(srcdir)/"; fi; \
+           if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
+             all=`expr $$all + 1`; \
+             case " $(XFAIL_TESTS) " in \
+             *" $$tst "*) \
+               xpass=`expr $$xpass + 1`; \
+               failed=`expr $$failed + 1`; \
+               echo "XPASS: $$tst"; \
+             ;; \
+             *) \
+               echo "PASS: $$tst"; \
+             ;; \
+             esac; \
+           elif test $$? -ne 77; then \
+             all=`expr $$all + 1`; \
+             case " $(XFAIL_TESTS) " in \
+             *" $$tst "*) \
+               xfail=`expr $$xfail + 1`; \
+               echo "XFAIL: $$tst"; \
+             ;; \
+             *) \
+               failed=`expr $$failed + 1`; \
+               echo "FAIL: $$tst"; \
+             ;; \
+             esac; \
+           fi; \
+         done; \
+         if test "$$failed" -eq 0; then \
+           if test "$$xfail" -eq 0; then \
+             banner="All $$all tests passed"; \
+           else \
+             banner="All $$all tests behaved as expected ($$xfail expected 
failures)"; \
+           fi; \
+         else \
+           if test "$$xpass" -eq 0; then \
+             banner="$$failed of $$all tests failed"; \
+           else \
+             banner="$$failed of $$all tests did not behave as expected 
($$xpass unexpected passes)"; \
+           fi; \
+         fi; \
+         dashes=`echo "$$banner" | sed s/./=/g`; \
+         echo "$$dashes"; \
+         echo "$$banner"; \
+         echo "$$dashes"; \
+         test "$$failed" -eq 0; \
+       fi
 
-subdir = tests
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = ..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
 
 distdir: $(DISTFILES)
-       here=`cd $(top_builddir) && pwd`; \
-       top_distdir=`cd $(top_distdir) && pwd`; \
-       distdir=`cd $(distdir) && pwd`; \
-       cd $(top_srcdir) \
-         && $(AUTOMAKE) --include-deps --build-dir=$$here 
--srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnits tests/Makefile
        @for file in $(DISTFILES); do \
-         d=$(srcdir); \
+         if test -f $$file; then d=.; else d=$(srcdir); fi; \
+         dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+         if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+           $(mkinstalldirs) "$(distdir)/$$dir"; \
+         fi; \
          if test -d $$d/$$file; then \
-           cp -pr $$/$$file $(distdir)/$$file; \
+           cp -pR $$d/$$file $(distdir) \
+           || exit 1; \
          else \
            test -f $(distdir)/$$file \
-           || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
-           || cp -p $$d/$$file $(distdir)/$$file || :; \
+           || cp -p $$d/$$file $(distdir)/$$file \
+           || exit 1; \
          fi; \
        done
-check-TESTS: $(TESTS)
-       @failed=0; all=0; \
-       srcdir=$(srcdir); export srcdir; \
-       for tst in $(TESTS); do \
-         if test -f $$tst; then dir=.; \
-         else dir="$(srcdir)"; fi; \
-         if $(TESTS_ENVIRONMENT) $$dir/$$tst; then \
-           all=`expr $$all + 1`; \
-           echo "PASS: $$tst"; \
-         elif test $$? -ne 77; then \
-           all=`expr $$all + 1`; \
-           failed=`expr $$failed + 1`; \
-           echo "FAIL: $$tst"; \
-         fi; \
-       done; \
-       if test "$$failed" -eq 0; then \
-         banner="All $$all tests passed"; \
-       else \
-         banner="$$failed of $$all tests failed"; \
-       fi; \
-       dashes=`echo "$$banner" | sed s/./=/g`; \
-       echo "$$dashes"; \
-       echo "$$banner"; \
-       echo "$$dashes"; \
-       test "$$failed" -eq 0
-info-am:
-info: info-am
-dvi-am:
-dvi: dvi-am
 check-am: all-am
        $(MAKE) $(AM_MAKEFLAGS) check-TESTS
 check: check-am
-installcheck-am:
-installcheck: installcheck-am
-install-exec-am:
-install-exec: install-exec-am
+all-am: Makefile
 
-install-data-am:
-install-data: install-data-am
+installdirs:
 
-install-am: all-am
-       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
 install: install-am
-uninstall-am:
+install-exec: install-exec-am
+install-data: install-data-am
 uninstall: uninstall-am
-all-am: Makefile
-all-redirect: all-am
-install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
-installdirs:
 
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
 
+installcheck: installcheck-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
 mostlyclean-generic:
 
 clean-generic:
 
 distclean-generic:
-       -rm -f Makefile $(CONFIG_CLEAN_FILES)
-       -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+       -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
 
 maintainer-clean-generic:
-mostlyclean-am:  mostlyclean-generic
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
 
-mostlyclean: mostlyclean-am
+clean-am: clean-generic mostlyclean-am
 
-clean-am:  clean-generic mostlyclean-am
+distclean: distclean-am
 
-clean: clean-am
+distclean-am: clean-am distclean-generic distclean-local
 
-distclean-am:  distclean-generic clean-am distclean-local
+dvi: dvi-am
 
-distclean: distclean-am
+dvi-am:
 
-maintainer-clean-am:  maintainer-clean-generic distclean-am
-       @echo "This command is intended for maintainers to use;"
-       @echo "it deletes files that may require special tools to rebuild."
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
 
 maintainer-clean: maintainer-clean-am
 
-.PHONY: tags distdir check-TESTS info-am info dvi-am dvi check check-am \
-installcheck-am installcheck install-exec-am install-exec \
-install-data-am install-data install-am install uninstall-am uninstall \
-all-redirect all-am all installdirs mostlyclean-generic \
-distclean-generic clean-generic maintainer-clean-generic clean \
-mostlyclean distclean maintainer-clean
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+uninstall-am: uninstall-info-am
+
+.PHONY: all all-am check check-TESTS check-am clean clean-generic \
+       distclean distclean-generic distclean-local distdir dvi dvi-am \
+       info info-am install install-am install-data install-data-am \
+       install-exec install-exec-am install-info install-info-am \
+       install-man install-strip installcheck installcheck-am \
+       installdirs maintainer-clean maintainer-clean-generic \
+       mostlyclean mostlyclean-generic uninstall uninstall-am \
+       uninstall-info-am
 
 
 distclean-local:
        -rm -rf testSubDir
-
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/tests/aclibobj.test b/tests/aclibobj.test
new file mode 100755
index 0000000..1bcbc5e
--- /dev/null
+++ b/tests/aclibobj.test
@@ -0,0 +1,33 @@
+#! /bin/sh
+
+# Make sure AC_LIBOBJ and friends work.
+
+. $srcdir/defs || exit 1
+
+cat > X << 'END'
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
+AC_PROG_CC
+AC_PROG_RANLIB
+AC_OUTPUT(Makefile)
+END
+
+cat > Makefile.am << 'END'
+noinst_LIBRARIES = libtu.a
+libtu_a_SOURCES =
+libtu_a_LIBADD = @LIBOBJS@
+END
+
+: > maude.c
+: > liver.c
+
+$ACLOCAL
+
+set -e
+
+cp X configure.in
+echo 'AC_LIBSOURCE(maude.c)' >> configure.in
+$AUTOMAKE
+
+cp X configure.in
+echo 'AC_LIBSOURCES([maude.c, liver.c])' >> configure.in
+$AUTOMAKE
diff --git a/tests/aclocali1.test b/tests/aclocali1.test
new file mode 100755
index 0000000..3c81464
--- /dev/null
+++ b/tests/aclocali1.test
@@ -0,0 +1,23 @@
+#! /bin/sh
+
+# Make sure that ACLOCAL_AMFLAGS doesn't cause circular dependencies.
+. $srcdir/defs || exit 1
+
+echo AM_QUUX >> configure.in
+
+cat > quux.m4 << 'END'
+AC_DEFUN([AM_QUUX], [
+])
+END
+
+cat > Makefile.am << 'END'
+ACLOCAL_AMFLAGS = -I .
+END
+
+# We have to run aclocal first to make sure that aclocal.m4 exists.
+# Otherwise automake won't guess that we want to auto-generate it.
+$ACLOCAL -I . || exit 1
+
+$AUTOMAKE || exit 1
+
+grep "\$(ACLOCAL_M4): *configure.in *quux.m4" Makefile.in || exit 1
diff --git a/tests/acoutnoq.test b/tests/acoutnoq.test
index f753800..b35efcf 100755
--- a/tests/acoutnoq.test
+++ b/tests/acoutnoq.test
@@ -9,10 +9,12 @@
 . $srcdir/defs || exit 1
 
 cat > configure.in << 'END'
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
 PACKAGE=nonesuch
 VERSION=nonesuch
 AC_ARG_PROGRAM
 AC_PROG_INSTALL
+AC_PROG_MAKE_SET
 AC_OUTPUT(Makefile, [true])
 END
 
diff --git a/tests/acoutput.test b/tests/acoutput.test
index 53c59d0..d20c881 100755
--- a/tests/acoutput.test
+++ b/tests/acoutput.test
@@ -6,10 +6,12 @@
 . $srcdir/defs || exit 1
 
 cat > configure.in << 'END'
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
 PACKAGE=nonesuch
 VERSION=nonesuch
 AC_ARG_PROGRAM
 AC_PROG_INSTALL
+AC_PROG_MAKE_SET
 AC_OUTPUT([Makefile], [true])
 END
 
diff --git a/tests/acoutput2.test b/tests/acoutput2.test
new file mode 100755
index 0000000..28d542b
--- /dev/null
+++ b/tests/acoutput2.test
@@ -0,0 +1,25 @@
+#! /bin/sh
+
+# Test for bug reported by Eric Magnien.
+
+. $srcdir/defs || exit 1
+
+cat > configure.in << 'END'
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
+AC_OUTPUT([subdir/Makefile subdir/foo Makefile foo], [true])
+END
+
+mkdir subdir
+
+: > Makefile.am
+: > subdir/Makefile.am
+: > foo.in
+: > subdir/foo.in
+
+$AUTOMAKE || exit 1
+
+count=`fgrep foo.in Makefile.in | wc -l`
+test $count -eq 2 || exit 1
+
+# This ought to work as well.
+$AUTOMAKE --add-missing --force-missing
diff --git a/tests/acoutqnl.test b/tests/acoutqnl.test
index 94c909d..4aa8286 100755
--- a/tests/acoutqnl.test
+++ b/tests/acoutqnl.test
@@ -5,10 +5,12 @@
 . $srcdir/defs || exit 1
 
 cat > configure.in << 'END'
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
 PACKAGE=nonesuch
 VERSION=nonesuch
 AC_ARG_PROGRAM
 AC_PROG_INSTALL
+AC_PROG_MAKE_SET
 AC_OUTPUT([Makefile],
 [echo zardoz has spoken])
 END
diff --git a/tests/acouttbs.test b/tests/acouttbs.test
index 88be5d2..6497eb0 100755
--- a/tests/acouttbs.test
+++ b/tests/acouttbs.test
@@ -6,10 +6,12 @@
 . $srcdir/defs || exit 1
 
 cat > configure.in << 'END'
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
 PACKAGE=nonesuch
 VERSION=nonesuch
 AC_ARG_PROGRAM
 AC_PROG_INSTALL
+AC_PROG_MAKE_SET
 AC_OUTPUT(Makefile \
 zot)
 END
diff --git a/tests/acouttbs2.test b/tests/acouttbs2.test
index 417b180..e129781 100755
--- a/tests/acouttbs2.test
+++ b/tests/acouttbs2.test
@@ -10,6 +10,7 @@ PACKAGE=nonesuch
 VERSION=nonesuch
 AC_ARG_PROGRAM
 AC_PROG_INSTALL
+AC_PROG_MAKE_SET
 AC_OUTPUT(\
    Makefile \
    zot
diff --git a/tests/amassign.test b/tests/amassign.test
new file mode 100755
index 0000000..56efd69
--- /dev/null
+++ b/tests/amassign.test
@@ -0,0 +1,14 @@
+#! /bin/sh
+
+# Test to see if AM_ name can be assigned to in configure.in.
+# Report from Steve Robbins.
+
+. $srcdir/defs || exit 1
+
+cat >> configure.in << 'END'
+AM_CFLAGS=foo
+AC_SUBST(AM_BAR)
+AC_SUBST([AM_ZARDOZ])
+END
+
+$ACLOCAL
diff --git a/tests/ansi.test b/tests/ansi.test
index 1140cad..0e133c2 100755
--- a/tests/ansi.test
+++ b/tests/ansi.test
@@ -20,4 +20,5 @@ END
 
 $AUTOMAKE || exit 1
 
-$MAKE -s -f Makefile.in SHELL=/bin/sh magic | grep 'ansi2knr\.c'
+fgrep -v @SET_MAKE@ Makefile.in > Makefile.sed
+$MAKE -s -f Makefile.sed SHELL=/bin/sh magic | grep 'ansi2knr\.c'
diff --git a/tests/ansi2.test b/tests/ansi2.test
index 9f51f8e..0436813 100755
--- a/tests/ansi2.test
+++ b/tests/ansi2.test
@@ -17,6 +17,7 @@ END
 : > ansi2knr.c
 : > ansi2knr.1
 
+$ACLOCAL || exit 1
 $AUTOMAKE || exit 1
 
 grep '^all[-a-z]*:.*ANSI2KNR' Makefile.in
diff --git a/tests/ansi3.test b/tests/ansi3.test
index d225054..46e40d4 100755
--- a/tests/ansi3.test
+++ b/tests/ansi3.test
@@ -14,7 +14,7 @@ AC_OUTPUT(Makefile)
 END
 
 cat > Makefile.am << 'END'
-AUTOMAKE_OPTIONS = ansi2knr
+AUTOMAKE_OPTIONS = ansi2knr no-dependencies
 bin_PROGRAMS = hello
 END
 
@@ -29,15 +29,19 @@ main (int argc, char *argv[])
 END
 
 # Fail gracefully if no autoconf.
-(autoconf --version) > /dev/null 2>&1 || exit 0
+$needs_autoconf
 
 # Likewise for gcc.
-(gcc -v) > /dev/null 2>&1 || exit 0
+(gcc -v) > /dev/null 2>&1 || exit 77
+
+# Ignore user CFLAGS.
+CFLAGS=
+export CFLAGS
 
 # We use gcc and not gcc -traditional as the latter fails on some
 # Linux boxes (Red Hat 5.1 in particular).
 $ACLOCAL \
-   && autoconf \
+   && $AUTOCONF \
    && $AUTOMAKE -a \
    && CC='gcc' ./configure \
    && $MAKE ANSI2KNR=./ansi2knr U=_ \
diff --git a/tests/ansi4.test b/tests/ansi4.test
new file mode 100755
index 0000000..ac03bbf
--- /dev/null
+++ b/tests/ansi4.test
@@ -0,0 +1,27 @@
+#! /bin/sh
+
+# Quoting regression.  Test from Thomas Gagne.
+
+. $srcdir/defs || exit 1
+
+cat >> configure.in << 'END'
+AC_PROG_CC
+AM_C_PROTOTYPES
+AC_EXEEXT
+AC_OBJEXT
+END
+
+cat > Makefile.am << 'END'
+AUTOMAKE_OPTIONS = ansi2knr
+bin_PROGRAMS = hello
+hello_SOURCES = hello.c
+END
+
+: > ansi2knr.1
+: > ansi2knr.c
+: > hello.c
+
+$ACLOCAL || exit 1
+$AUTOMAKE || exit 1
+
+fgrep 'ansi2knr.$(' Makefile.in || exit 1
diff --git a/tests/ansi5.test b/tests/ansi5.test
new file mode 100755
index 0000000..1e0d082
--- /dev/null
+++ b/tests/ansi5.test
@@ -0,0 +1,80 @@
+#! /bin/sh
+
+# Test for ansi2knr in another directory.
+
+. $srcdir/defs || exit 1
+
+cat > configure.in << 'END'
+AC_INIT(one/joe.c)
+AM_INIT_AUTOMAKE(liver, 0.23)
+AC_PROG_CC
+AM_C_PROTOTYPES
+AC_OUTPUT(Makefile one/Makefile two/Makefile)
+END
+
+cat > Makefile.am << 'END'
+SUBDIRS = one two
+END
+
+mkdir one two
+
+cat > one/Makefile.am << 'END'
+AUTOMAKE_OPTIONS = ansi2knr
+bin_PROGRAMS = joe
+END
+
+cat > two/Makefile.am << 'END'
+AUTOMAKE_OPTIONS = ../one/ansi2knr
+bin_PROGRAMS = maude
+END
+
+cat > one/joe.c << 'END'
+#include <stdio.h>
+int
+main (int argc, char *argv[])
+{
+   printf ("joe\n");
+   return 0;
+}
+END
+
+cat > two/maude.c << 'END'
+#include <stdio.h>
+int
+main (int argc, char *argv[])
+{
+   printf ("maude\n");
+   return 0;
+}
+END
+
+$needs_autoconf
+
+(gcc -v) > /dev/null 2>&1 || exit 77
+
+set -e
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE -a
+# Ignore user CFLAGS.
+CFLAGS=
+export CFLAGS
+CC=gcc ./configure
+
+# This is ugly!  If we set U at make time then the "wrong" file gets
+# included.
+find . -name '*.Po' -print \
+| while read file; do
+    base="`echo $file | sed -e 's/\.Po//'`"
+    mv $file ${base}_.Po
+done
+
+# So is this!  If we set ANSI2KNR on the make command line then the
+# wrong value is passed to two's Makefile.
+mv one/Makefile one/Makefile.old
+sed -e 's,ANSI2KNR =,ANSI2KNR = ./ansi2knr,' < one/Makefile.old > one/Makefile
+
+$MAKE U=_
+./one/joe
+./two/maude
diff --git a/tests/asm.test b/tests/asm.test
new file mode 100755
index 0000000..3d81689
--- /dev/null
+++ b/tests/asm.test
@@ -0,0 +1,73 @@
+#! /bin/sh
+
+# Test of basic assembly functionality
+
+. $srcdir/defs || exit 1
+
+cat > configure.in << 'END'
+AC_INIT
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
+AC_ARG_PROGRAM
+AC_PROG_INSTALL
+AC_PROG_MAKE_SET
+AC_SUBST(ASFLAGS)
+AC_OUTPUT(Makefile)
+END
+
+cat > Makefile.am << 'END'
+noinst_PROGRAMS = maude
+maude_SOURCES = maude.s
+END
+
+: > maude.s
+
+# Should fail because we need cc and as.
+echo 1
+$AUTOMAKE && exit 1
+
+cat > configure.in << 'END'
+AC_INIT
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
+AC_ARG_PROGRAM
+AC_PROG_INSTALL
+AC_PROG_MAKE_SET
+AC_PROG_CC
+AC_SUBST(ASFLAGS)
+AC_OUTPUT(Makefile)
+END
+
+# We still need as.
+echo 2
+$AUTOMAKE && exit 1
+
+cat > configure.in << 'END'
+AC_INIT
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
+AC_ARG_PROGRAM
+AC_PROG_INSTALL
+AC_PROG_MAKE_SET
+AS='$(CC)'
+AC_SUBST(AS)
+AC_PROG_CC
+AC_OUTPUT(Makefile)
+END
+
+# We need ASFLAGS.
+echo 3
+$AUTOMAKE && exit 1
+
+cat > configure.in << 'END'
+AC_INIT
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
+AC_ARG_PROGRAM
+AC_PROG_INSTALL
+AC_PROG_MAKE_SET
+AS='$(CC)'
+AC_SUBST(AS)
+AC_PROG_CC
+AC_SUBST(ASFLAGS)
+AC_OUTPUT(Makefile)
+END
+
+echo 4
+$AUTOMAKE
diff --git a/tests/backsl.test b/tests/backsl.test
index a35c5d1..0bf43a6 100755
--- a/tests/backsl.test
+++ b/tests/backsl.test
@@ -13,6 +13,7 @@ bin_PROGRAMS = \
    frob
 END
 
+$ACLOCAL || exit 1
 $AUTOMAKE || exit 1
 
 grep '^_SOURCE' Makefile.in && exit 1
diff --git a/tests/backsl2.test b/tests/backsl2.test
new file mode 100755
index 0000000..9d3dcb2
--- /dev/null
+++ b/tests/backsl2.test
@@ -0,0 +1,15 @@
+#! /bin/sh
+
+# We must skip the backslash, not complain about `./\' not existing.
+# Reported by Rick Scott <address@hidden>
+
+. $srcdir/defs || exit 1
+
+cat > Makefile.am << 'END'
+SUBDIRS = \
+   .
+END
+
+$AUTOMAKE || exit 1
+
+exit 0
diff --git a/tests/badprog.test b/tests/badprog.test
index 91876a7..47711e7 100755
--- a/tests/badprog.test
+++ b/tests/badprog.test
@@ -14,4 +14,5 @@ bin_PROGRAMS = a,b
 a_b_SOURCES = ab.c
 END
 
+$ACLOCAL || exit 1
 $AUTOMAKE
diff --git a/tests/canon.test b/tests/canon.test
index b54caf3..6745c7d 100755
--- a/tests/canon.test
+++ b/tests/canon.test
@@ -11,5 +11,6 @@ bin_PROGRAMS = sniff-glue
 sniff-glue_SOURCES = sg.c
 END
 
+$ACLOCAL || exit 1
 $AUTOMAKE && exit 1
 exit 0
diff --git a/tests/canon3.test b/tests/canon3.test
index d7a28a7..f6e70fd 100755
--- a/tests/canon3.test
+++ b/tests/canon3.test
@@ -14,6 +14,7 @@ END
 
 : > perm-number.c
 
+$ACLOCAL || exit 1
 $AUTOMAKE || exit 1
 
 grep 'perm_number\.c' Makefile.in && exit 1
diff --git a/tests/canon4.test b/tests/canon4.test
index 5ca51e7..330ead0 100755
--- a/tests/canon4.test
+++ b/tests/canon4.test
@@ -14,6 +14,7 @@ noinst_LIBRARIES = libx-y.a
 libx_y_a_SOURCES = xy.c
 END
 
+$ACLOCAL || exit 1
 $AUTOMAKE || exit 1
 
 grep '^libx-y.*=' Makefile.in && exit 1
diff --git a/tests/canon5.test b/tests/canon5.test
new file mode 100755
index 0000000..b05ced4
--- /dev/null
+++ b/tests/canon5.test
@@ -0,0 +1,37 @@
+#! /bin/sh
+
+# Test to make sure that we allow variable names starting in
+# non-letters.
+
+. $srcdir/defs || exit 1
+
+echo AC_PROG_CC >> configure.in
+
+cat > Makefile.am << 'END'
+bin_PROGRAMS = 123test
+123test_SOURCES = 123.c
+END
+
+$ACLOCAL || exit 1
+$AUTOMAKE || exit 1
+
+cat > Makefile.am << 'END'
+bin_PROGRAMS = _foo
+_foo_SOURCES = foo.c
+END
+
+$AUTOMAKE || exit 1
+
+cat > Makefile.am << 'END'
+bin_PROGRAMS = ,foo
+,foo_SOURCES = foo.c
+END
+
+$AUTOMAKE && exit 1
+
+cat > Makefile.am << 'END'
+bin_PROGRAMS = ,foo
+_foo_SOURCES = foo.c
+END
+
+$AUTOMAKE
diff --git a/tests/ccnoco.test b/tests/ccnoco.test
new file mode 100755
index 0000000..08bdaea
--- /dev/null
+++ b/tests/ccnoco.test
@@ -0,0 +1,85 @@
+#! /bin/sh
+
+# Test to make sure we can compile when the compiler doesn't
+# understand `-c -o'.
+
+. $srcdir/defs || exit 1
+
+cat > configure.1 << 'END'
+AC_INIT(a.c)
+AM_INIT_AUTOMAKE(nonesuch, 0.23)
+AC_PROG_CC
+AM_PROG_CC_C_O
+AC_OUTPUT(Makefile)
+END
+
+# This one makes sure that $CC can be used after AM_PROG_CC_C_O.
+cat > configure.3 << 'END'
+AC_INIT(a.c)
+AM_INIT_AUTOMAKE(nonesuch, 0.23)
+AC_PROG_CC
+AM_PROG_CC_C_O
+$CC -v > Hi 2>&1 || exit 1
+AC_OUTPUT(Makefile)
+END
+
+cat > Makefile.am << 'END'
+bin_PROGRAMS = wish
+wish_SOURCES = a.c
+# Make sure we need something strange.
+wish_CFLAGS = -g
+END
+
+cat > a.c << 'END'
+#include <stdio.h>
+
+int main ()
+{
+   printf ("hi\n");
+}
+END
+
+$needs_autoconf
+gcc -v || exit 77
+
+cat > Mycomp << 'END'
+#!/bin/sh
+
+case "$@" in
+ *-c*-o* | *-o*-c*)
+    exit 1
+    ;;
+esac
+
+exec gcc ${1+"$@"}
+END
+
+chmod +x Mycomp
+
+set -e
+
+
+# Ignore user CFLAGS.
+CFLAGS=
+export CFLAGS
+
+for conf in configure.1 configure.3; do
+   cp $conf configure.in
+
+   $ACLOCAL
+   $AUTOCONF
+   $AUTOMAKE --copy --add-missing
+
+   rm -rf build
+   mkdir build
+   cd build
+
+   # Make sure the compiler doesn't understand `-c -o'
+   CC=`pwd`/../Mycomp
+   export CC
+
+   ../configure
+   $MAKE
+
+   cd ..
+done
diff --git a/tests/check.test b/tests/check.test
new file mode 100755
index 0000000..2cf7508
--- /dev/null
+++ b/tests/check.test
@@ -0,0 +1,21 @@
+#! /bin/sh
+
+# Test Automake style tests.
+
+. $srcdir/defs || exit 1
+
+cat > Makefile.am << 'END'
+TESTS = frob.test
+END
+
+: > frob.test
+
+$AUTOMAKE || exit 1
+
+grep '^check-TESTS:' Makefile.in || exit 1
+grep '^check-DEJAGNU' Makefile.in && exit 1
+
+# check-TESTS is phony.
+sed -n '/^\.PHONY:/,/^$/p' Makefile.in | grep check-TESTS || exit 1
+
+exit 0
diff --git a/tests/colon.test b/tests/colon.test
index 672bb54..4513500 100755
--- a/tests/colon.test
+++ b/tests/colon.test
@@ -6,10 +6,12 @@
 . $srcdir/defs || exit 1
 
 cat > configure.in << 'END'
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
 PACKAGE=nonesuch
 VERSION=nonesuch
 AC_ARG_PROGRAM
 AC_PROG_INSTALL
+AC_PROG_MAKE_SET
 AC_OUTPUT(Makefile foo.h:foo.hin)
 END
 
diff --git a/tests/colon2.test b/tests/colon2.test
index feeda98..db6fa5e 100755
--- a/tests/colon2.test
+++ b/tests/colon2.test
@@ -5,9 +5,11 @@
 . $srcdir/defs || exit 1
 
 cat > configure.in << 'END'
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
 PACKAGE=nonesuch
 VERSION=nonesuch
 AC_ARG_PROGRAM
+AC_PROG_MAKE_SET
 AC_PROG_INSTALL
 AC_OUTPUT(Makefile:zardoz.in)
 END
diff --git a/tests/colon3.test b/tests/colon3.test
index 41ee212..f43b353 100755
--- a/tests/colon3.test
+++ b/tests/colon3.test
@@ -6,10 +6,12 @@
 . $srcdir/defs || exit 1
 
 cat > configure.in << 'END'
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
 PACKAGE=nonesuch
 VERSION=nonesuch
 AC_ARG_PROGRAM
 AC_PROG_INSTALL
+AC_PROG_MAKE_SET
 AC_OUTPUT(Makefile:zardoz.in:two.in:three.in)
 END
 
diff --git a/tests/colon4.test b/tests/colon4.test
index c94059d..bf1f910 100755
--- a/tests/colon4.test
+++ b/tests/colon4.test
@@ -7,9 +7,11 @@
 . $srcdir/defs || exit 1
 
 cat > configure.in << 'END'
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
 PACKAGE=nonesuch
 VERSION=nonesuch
 AC_ARG_PROGRAM
+AC_PROG_MAKE_SET
 AC_PROG_INSTALL
 AC_OUTPUT(Makefile zardoz:one:two:three)
 END
diff --git a/tests/colon5.test b/tests/colon5.test
index f1ca626..222b08c 100755
--- a/tests/colon5.test
+++ b/tests/colon5.test
@@ -5,9 +5,11 @@
 . $srcdir/defs || exit 1
 
 cat > configure.in << 'END'
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
 PACKAGE=nonesuch
 VERSION=nonesuch
 AC_ARG_PROGRAM
+AC_PROG_MAKE_SET
 AC_PROG_INSTALL
 AC_OUTPUT(Makefile:Makefile.in:Makefile.dep)
 END
diff --git a/tests/colon6.test b/tests/colon6.test
index f156d3e..6e761a5 100755
--- a/tests/colon6.test
+++ b/tests/colon6.test
@@ -5,9 +5,11 @@
 . $srcdir/defs || exit 1
 
 cat > configure.in << 'END'
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
 PACKAGE=nonesuch
 VERSION=nonesuch
 AC_ARG_PROGRAM
+AC_PROG_MAKE_SET
 AC_PROG_INSTALL
 AC_OUTPUT(demo/Makefile demo/version.good:demo/version.gin)
 END
diff --git a/tests/colon7.test b/tests/colon7.test
index 0e57f92..a491dcd 100755
--- a/tests/colon7.test
+++ b/tests/colon7.test
@@ -6,9 +6,11 @@
 . $srcdir/defs || exit 1
 
 cat > configure.in << 'END'
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
 PACKAGE=nonesuch
 VERSION=nonesuch
 AC_ARG_PROGRAM
+AC_PROG_MAKE_SET
 AC_PROG_INSTALL
 AC_OUTPUT(subdir/bar:subdir/foo \
    Makefile \
@@ -22,4 +24,12 @@ mkdir subdir
 : > subdir/Makefile.am
 : > subdir/foo
 
-$AUTOMAKE
+$AUTOMAKE || exit 1
+
+# shouldn't have any bar.in
+grep 'bar.in' subdir/Makefile.in && exit 1
+
+# DIST_COMMON should have foo, not subdir/foo
+grep 'DIST_COMMON.*subdir/foo' subdir/Makefile.in && exit 1
+
+exit 0
diff --git a/tests/comment2.test b/tests/comment2.test
index d25a19a..c2a1d2c 100755
--- a/tests/comment2.test
+++ b/tests/comment2.test
@@ -13,6 +13,7 @@ cat > Makefile.am << 'END'
 bin_PROGRAMS = sim_products receive_th receive_pos # image_proc
 END
 
+$ACLOCAL || exit 1
 $AUTOMAKE || exit 1
 
 grep '^image_proc' Makefile.in && exit 1
diff --git a/tests/comment3.test b/tests/comment3.test
new file mode 100755
index 0000000..01d8323
--- /dev/null
+++ b/tests/comment3.test
@@ -0,0 +1,16 @@
+#! /bin/sh
+
+# Make sure that `#' after a tab is a failure.
+# The Tru64 Unix V5.1 system make will pass these to the
+# shell, which in turn can't find `#' as a command.
+# Sigh.  Some vendors must be destroyed.
+
+. $srcdir/defs || exit 1
+
+cat > Makefile.am << 'END'
+install-data-local:
+       # Tru64 Unix must die
+END
+
+$AUTOMAKE && exit 1
+exit 0
diff --git a/tests/compile_f_c_cxx.test b/tests/compile_f_c_cxx.test
index 2ef19dc..8aa0895 100755
--- a/tests/compile_f_c_cxx.test
+++ b/tests/compile_f_c_cxx.test
@@ -23,6 +23,7 @@ END
 : > bar.c
 : > baz.cc
 
+$ACLOCAL || exit 1
 $AUTOMAKE || exit 1
 
 
diff --git a/tests/cond.test b/tests/cond.test
index 459b64b..9da9ac4 100755
--- a/tests/cond.test
+++ b/tests/cond.test
@@ -18,7 +18,10 @@ VAR = false
 endif
 END
 
-$AUTOMAKE || exit 1
+set -e
+$AUTOMAKE
+
+grep 'address@hidden@VAR = true$' Makefile.in
+grep 'address@hidden@VAR = false$' Makefile.in
 
-grep 'address@hidden@' Makefile.in || exit 1
 exit 0
diff --git a/tests/cond10.test b/tests/cond10.test
new file mode 100755
index 0000000..84b4950
--- /dev/null
+++ b/tests/cond10.test
@@ -0,0 +1,33 @@
+#! /bin/sh
+
+# Test for bug in conditionals.  From Raja R Harinath.
+
+. $srcdir/defs || exit 1
+
+cat > configure.in << 'END'
+AC_INIT(Makefile.am)
+AM_INIT_AUTOMAKE(foo,0.0)
+AC_PROG_CC
+AM_CONDITIONAL(USE_A,[test x = y])
+AM_CONDITIONAL(USE_B,[test x = z])
+AC_OUTPUT(Makefile)
+END
+
+cat > Makefile.am << 'END'
+if USE_A
+out=output_a.c
+else
+if USE_B
+out=output_b.c
+else
+out=output_c.c
+endif
+endif
+
+noinst_PROGRAMS=foo
+foo_SOURCES=foo.c $(out)
+END
+
+$ACLOCAL \
+  && $AUTOMAKE -a \
+  && grep 'USE_A_FALSE.*USE_B_FALSE.*output_c\...OBJEXT.' Makefile.in
diff --git a/tests/cond11.test b/tests/cond11.test
new file mode 100755
index 0000000..98c6e5c
--- /dev/null
+++ b/tests/cond11.test
@@ -0,0 +1,41 @@
+#! /bin/sh
+
+# Test for bug in conditionals.  From Richard Boulton.
+# This checks that, if LDADD is set from a conditional variable
+# and an AC_SUBST, the _DEPENDENCIES variable is set correctly.
+
+. $srcdir/defs || exit 1
+
+cat > configure.in << 'END'
+AC_INIT(Makefile.am)
+AM_INIT_AUTOMAKE(foo,0.0)
+AC_PROG_CC
+AM_CONDITIONAL(USE_A,[test x = x])
+AC_OUTPUT(Makefile)
+AC_SUBST(SUBSTVAR)
+END
+
+cat > Makefile.am << 'END'
+
+if USE_A
+foolibs=faz.la
+else
+foolibs=
+endif
+
+noinst_PROGRAMS = foo
+foo_SOURCES = foo.c
+LDADD = $(SUBSTVAR) $(foolibs)
+END
+
+: > config.guess
+: > config.sub
+: > compile
+
+$ACLOCAL || exit 1
+$AUTOMAKE || exit 1
+
+#Should be two dependency setting lines
+count=`grep 'foo_DEPENDENCIES =' Makefile.in | wc -l|sed 's/ //g'`
+test "x$count" = "x2" &&
+  grep '^.USE_A_TRUE.foo_DEPENDENCIES =' Makefile.in
diff --git a/tests/cond12.test b/tests/cond12.test
new file mode 100755
index 0000000..9d3d7b0
--- /dev/null
+++ b/tests/cond12.test
@@ -0,0 +1,83 @@
+#! /bin/sh
+
+# Test behaviour of variable_conditions_reduce()
+# This checks the result of variable_conditions_reduce() for a wide variety
+# of cases.
+
+. $srcdir/defs || exit 1
+
+# FIXME: probably ought to let use override this like we do in `defs'.
+amfile=../../automake
+
+head -n 1 $amfile >>automake_tmp
+cat << 'END' >> automake_tmp
+my $failed = 0;
+sub check_reduce($$) {
+ my ($inref, $outref) = @_;
+ my @result = sort &Automake::variable_conditions_reduce(@$inref);
+ my $correct = 1;
+ $correct = 0 if (join(",", @result) ne join(",", @$outref));
+ 
+ if (! $correct) {
+   print '"'.join(",", @$inref) . '" => "' .
+        join(",", @result) . '" expected "' .
+        join(",", @$outref) . '"' . "\n";
+   $failed = 1;
+ }
+}
+
+# If no conditions are given, TRUE should be returned
+check_reduce([""], ["TRUE"]);
+# A single condition should be passed through unchanged
+check_reduce(["FOO"], ["FOO"]);
+check_reduce(["FALSE"], ["FALSE"]);
+check_reduce(["TRUE"], ["TRUE"]);
+
+# TRUE and false should be discarded and overwhelm the result, respectively
+check_reduce(["FOO", "TRUE"], ["FOO"]);
+check_reduce(["FOO", "FALSE"], ["FALSE"]);
+
+# Repetitions should be removed
+check_reduce(["FOO", "FOO"], ["FOO"]);
+check_reduce(["TRUE", "FOO", "FOO"], ["FOO"]);
+check_reduce(["FOO", "TRUE", "FOO"], ["FOO"]);
+check_reduce(["FOO", "FOO", "TRUE"], ["FOO"]);
+
+# Two different conditions should be preserved, but TRUEs should be removed
+check_reduce(["FOO", "BAR"], ["BAR,FOO"]);
+check_reduce(["TRUE", "FOO", "BAR"], ["BAR,FOO"]);
+check_reduce(["FOO", "TRUE", "BAR"], ["BAR,FOO"]);
+check_reduce(["FOO", "BAR", "TRUE"], ["BAR,FOO"]);
+
+# A condition implied by another condition should be removed.
+check_reduce(["FOO BAR", "BAR"], ["FOO BAR"]);
+check_reduce(["BAR", "FOO BAR"], ["FOO BAR"]);
+check_reduce(["TRUE", "FOO BAR", "BAR"], ["FOO BAR"]);
+check_reduce(["FOO BAR", "TRUE", "BAR"], ["FOO BAR"]);
+check_reduce(["FOO BAR", "BAR", "TRUE"], ["FOO BAR"]);
+
+check_reduce(["BAR FOO", "BAR"], ["BAR FOO"]);
+check_reduce(["BAR", "BAR FOO"], ["BAR FOO"]);
+check_reduce(["TRUE", "BAR FOO", "BAR"], ["BAR FOO"]);
+check_reduce(["BAR FOO", "TRUE", "BAR"], ["BAR FOO"]);
+check_reduce(["BAR FOO", "BAR", "TRUE"], ["BAR FOO"]);
+
+# Check that reduction happens even when there are two conditionals to remove.
+check_reduce(["FOO", "FOO BAR", "BAR"], ["FOO BAR"]);
+check_reduce(["FOO", "FOO BAR", "BAZ", "FOO BAZ"], ["FOO BAR", "FOO BAZ"]);
+check_reduce(["FOO", "FOO BAR", "BAZ", "FOO BAZ", "FOO BAZ BAR"], ["FOO BAZ 
BAR"]);
+
+# Duplicated condionals should be removed
+check_reduce(["FOO", "BAR", "BAR"], ["BAR,FOO"]);
+
+# Equivalent conditionals in different forms should be reduced: which one is
+# left is unfortunately order dependent.
+check_reduce(["BAR FOO", "FOO BAR"], ["FOO BAR"]);
+check_reduce(["FOO BAR", "BAR FOO"], ["BAR FOO"]);
+
+exit $failed;
+END
+cat $amfile >>automake_tmp
+chmod +x automake_tmp
+
+./automake_tmp
diff --git a/tests/cond13.test b/tests/cond13.test
new file mode 100755
index 0000000..81a9fe6
--- /dev/null
+++ b/tests/cond13.test
@@ -0,0 +1,39 @@
+#! /bin/sh
+
+# Test for bug in conditionals.
+# Report from Lars J. Aas.
+
+. $srcdir/defs || exit 1
+
+cat >> configure.in << 'END'
+AC_PROG_CC
+AC_PROG_CXX
+AC_PROG_RANLIB
+AM_CONDITIONAL(COND1, true)
+AM_CONDITIONAL(COND2, true)
+END
+
+cat > Makefile.am << 'END'
+noinst_LIBRARIES = libtest.a
+
+if COND1
+SOURCEVAR1 = 
+SOURCEVAR2 = habla.cpp espanol.cpp
+else
+SOURCEVAR1 = dummy.cpp
+SOURCEVAR2 =
+endif
+
+if COND2
+TESTSOURCES = $(SOURCEVAR1)
+else
+TESTSOURCES = $(SOURCEVAR2)
+endif
+
+libtest_a_SOURCES = $(TESTSOURCES)
+END
+
+$ACLOCAL || exit 1
+$AUTOMAKE || exit 1
+
+grep 'am_libtest_a_OBJECTS = .*$' Makefile.in
diff --git a/tests/cond14.test b/tests/cond14.test
new file mode 100755
index 0000000..253874e
--- /dev/null
+++ b/tests/cond14.test
@@ -0,0 +1,36 @@
+#! /bin/sh
+
+# Test for bug in conditionals.
+# Report from Robert Boehne
+
+. $srcdir/defs || exit 1
+
+cat >> configure.in << 'END'
+AC_PROG_CC
+AM_CONDITIONAL(COND1, true)
+END
+
+cat > Makefile.am << 'END'
+
+if COND1
+BUILD_helldl = helldl
+helldl_SOURCES = dlmain.c
+helldl_DEPENDENCIES = libhello.la
+else
+BUILD_helldl = 
+bin_SCRIPTS = helldl
+helldl$(EXEEXT):
+       rm -f $@
+       echo '#! /bin/sh' > $@
+       echo '-dlopen is unsupported' >> $@
+       chmod +x $@
+endif
+
+bin_PROGRAMS = $(BUILD_helldl)
+END
+
+$ACLOCAL || exit 1
+$AUTOMAKE || exit 1
+
+num=`grep 'helldl$(EXEEXT):' Makefile.in | wc -l`
+test $num -eq 2
diff --git a/tests/cond15.test b/tests/cond15.test
new file mode 100755
index 0000000..abc764f
--- /dev/null
+++ b/tests/cond15.test
@@ -0,0 +1,45 @@
+#! /bin/sh
+
+# Regression test for conditionally defined overriding of automatic rules.
+
+. $srcdir/defs || exit 1
+
+cat >> configure.in << 'END'
+AC_PROG_CC
+AM_CONDITIONAL(COND1, true)
+AM_CONDITIONAL(COND2, true)
+END
+
+cat > Makefile.am << 'END'
+
+if COND1
+if COND2
+bin_SCRIPTS = helldl
+helldl$(EXEEXT):
+       rm -f $@
+       echo '#! /bin/sh' > $@
+       echo '-dlopen is unsupported' >> $@
+       chmod +x $@
+endif
+else
+if COND2
+else
+bin_SCRIPTS = helldl
+helldl$(EXEEXT):
+       rm -f $@
+       echo '#! /bin/sh' > $@
+       echo '-dlopen is unsupported' >> $@
+       chmod +x $@
+endif
+endif
+
+bin_PROGRAMS = helldl
+END
+
+$ACLOCAL || exit 1
+$AUTOMAKE || exit 1
+
+num1=`grep 'helldl$(EXEEXT):' Makefile.in | wc -l`
+num2=`grep '@COND1_FALSE@@address@hidden(EXEEXT):' Makefile.in | wc -l`
+test $num1 -eq 4 || exit 1
+test $num2 -eq 1 || exit 1
diff --git a/tests/cond16.test b/tests/cond16.test
new file mode 100755
index 0000000..20be630
--- /dev/null
+++ b/tests/cond16.test
@@ -0,0 +1,52 @@
+#! /bin/sh
+
+# Test for bug in conditionals in SOURCES with variable substitution 
references.
+# Report from Richard Boulton
+
+. $srcdir/defs || exit 1
+
+cat > configure.in << 'END'
+AC_INIT(hello.c)
+AM_INIT_AUTOMAKE(hello,0.23)
+AC_PROG_CC
+AM_CONDITIONAL(COND1, true)
+AC_OUTPUT(Makefile)
+END
+
+cat > hello.c << 'END'
+END
+
+cat > Makefile.am << 'END'
+
+if COND1
+var = foo.c
+else
+var = foo.c
+endif
+
+bin_PROGRAMS = hell
+hell_SOURCES = $(var:=)
+
+echorule:
+       @echo $(hell_SOURCES) $(hell_OBJECTS)
+
+END
+
+$needs_autoconf
+(gcc -v) > /dev/null 2>&1 || exit 77
+
+# Ignore user CFLAGS.
+CFLAGS=
+export CFLAGS
+
+set -e
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE -a
+
+CC='gcc' ./configure
+
+val=`$MAKE -s echorule`;
+echo $val
+test "x$val" = "xfoo.c foo.o"
diff --git a/tests/cond18.test b/tests/cond18.test
new file mode 100755
index 0000000..9d5496b
--- /dev/null
+++ b/tests/cond18.test
@@ -0,0 +1,60 @@
+#! /bin/sh
+
+# Regression test for substitution references to conditional variables.
+# Report from Richard Boulton
+
+. $srcdir/defs || exit 1
+
+cat > configure.in << 'END'
+AC_INIT(Makefile.am)
+AM_INIT_AUTOMAKE(hello,0.23)
+AC_PROG_CC
+AM_CONDITIONAL(COND1, true)
+AM_CONDITIONAL(COND2, true)
+AC_OUTPUT(Makefile)
+END
+
+cat > Makefile.am << 'END'
+
+var1 = dlmain
+
+if COND1
+var2 = $(var1:=.c) foo.cc
+else
+var2 = $(var1:=.c)
+endif
+
+if COND2
+var3 = $(var2:.cc=.c)
+else
+var3 = $(var2:.cc=.c)
+endif
+
+helldl_SOURCES = $(var3)
+
+echorule:
+       @echo $(helldl_SOURCES) $(helldl_OBJECTS)
+
+bin_PROGRAMS = helldl
+END
+
+$needs_autoconf
+(gcc -v) > /dev/null 2>&1 || exit 77
+
+# Ignore user CFLAGS.
+CFLAGS=
+export CFLAGS
+
+$needs_gnu_make
+
+set -e
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE -a
+
+CC='gcc' ./configure
+
+val=`$MAKE --no-print-directory echorule`;
+echo $val
+test "x$val" = "xdlmain.c foo.c dlmain.o foo.o"
diff --git a/tests/cond19.test b/tests/cond19.test
new file mode 100755
index 0000000..fb86c14
--- /dev/null
+++ b/tests/cond19.test
@@ -0,0 +1,74 @@
+#! /bin/sh
+
+# Regression test for substitution references to conditional variables.
+# Report from Richard Boulton
+
+. $srcdir/defs || exit 1
+
+cat > configure.in << 'END'
+AC_INIT(Makefile.am)
+AM_INIT_AUTOMAKE(hello,0.23)
+AC_PROG_CC
+AM_CONDITIONAL(COND1, test "x$CONDITION1" = "xtrue")
+AM_CONDITIONAL(COND2, test "x$CONDITION2" = "xtrue")
+AC_OUTPUT(Makefile)
+END
+
+cat > Makefile.am << 'END'
+
+var1 = dlmain
+
+if COND1
+var2 = $(var1:=.c)
+else
+var2 = $(var1:=.c)
+endif
+
+if COND2
+var3 = $(var2:.c=a.c)
+var4 = $(var2:.c=b.c)
+else
+var3 = $(var2:.c=b.c)
+var4 = $(var2:.c=a.c)
+endif
+
+helldl_SOURCES = $(var3:.c=1.c) $(var4:.c=2.c)
+
+echorule:
+       @echo $(helldl_SOURCES) $(helldl_OBJECTS)
+
+bin_PROGRAMS = helldl
+END
+
+$needs_autoconf
+(gcc -v) > /dev/null 2>&1 || exit 77
+
+# Ignore user CFLAGS.
+CFLAGS=
+export CFLAGS
+
+$needs_gnu_make
+
+set -e
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE -a
+
+CONDITION1=true CONDITION2=true CC='gcc' ./configure
+vala=`$MAKE --no-print-directory echorule`;
+CONDITION1=true CONDITION2=false CC='gcc' ./configure
+valb=`$MAKE --no-print-directory echorule`;
+CONDITION1=false CONDITION2=true CC='gcc' ./configure
+valc=`$MAKE --no-print-directory echorule`;
+CONDITION1=false CONDITION2=false CC='gcc' ./configure
+vald=`$MAKE --no-print-directory echorule`;
+
+echo $vala
+echo $valb
+echo $valc
+echo $vald
+test "x$vala" = "xdlmaina1.c dlmainb2.c dlmaina1.o dlmainb2.o" || exit 1
+test "x$valb" = "xdlmainb1.c dlmaina2.c dlmainb1.o dlmaina2.o" || exit 1
+test "x$valc" = "xdlmaina1.c dlmainb2.c dlmaina1.o dlmainb2.o" || exit 1
+test "x$vald" = "xdlmainb1.c dlmaina2.c dlmainb1.o dlmaina2.o" || exit 1
diff --git a/tests/cond20.test b/tests/cond20.test
new file mode 100755
index 0000000..6c17c11
--- /dev/null
+++ b/tests/cond20.test
@@ -0,0 +1,38 @@
+#! /bin/sh
+
+# Regression test for recursion handling in substitution references to
+# conditional variables.
+
+. $srcdir/defs || exit 1
+
+cat > configure.in << 'END'
+AC_INIT(Makefile.am)
+AM_INIT_AUTOMAKE(hello,0.23)
+AC_PROG_CC
+AM_CONDITIONAL(COND1, true)
+AC_OUTPUT(Makefile)
+END
+
+cat > Makefile.am << 'END'
+
+var1 = $(var2)
+
+if COND1
+var2 = $(var1:=.c) foo.cc
+else
+var2 = $(var1:=.c)
+endif
+
+helldl_SOURCES = $(var2)
+
+bin_PROGRAMS = helldl
+END
+
+$needs_autoconf
+
+set -e
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE -a && exit 1
+$AUTOMAKE -a 2>&1| grep "recursively defined"
diff --git a/tests/cond3.test b/tests/cond3.test
index 44a3760..0e2ad1d 100755
--- a/tests/cond3.test
+++ b/tests/cond3.test
@@ -1,7 +1,7 @@
 #! /bin/sh
 
 # Test sources listed in conditional.
-# Report from Rob Savoye <address@hidden>.
+# Report from Rob Savoye <address@hidden>, and Lars J. Aas.
 
 . $srcdir/defs || exit 1
 
@@ -38,6 +38,35 @@ endif
 targ_SOURCES = $(SONE) $(STWO) $(STHREE)
 END
 
+$ACLOCAL || exit 1
 $AUTOMAKE || exit 1
 
-test "`grep 'targ_OBJECTS =' Makefile.in | wc -l`" -eq 8
+# `b top' so that
+sed -n '
+/am_targ_OBJECTS =/ {
+  : loop
+  /\\$/ {
+    p
+    n
+    b loop
+  }
+  p
+}' Makefile.in >produced
+
+
+cat >expected << 'EOF'
address@hidden@@THREE_FALSE@@address@hidden = two.$(OBJEXT)
address@hidden@@THREE_FALSE@@address@hidden =
address@hidden@@THREE_TRUE@@address@hidden = two.$(OBJEXT) \
address@hidden@@THREE_TRUE@@TWO_TRUE@   three.$(OBJEXT)
address@hidden@@THREE_TRUE@@address@hidden = three.$(OBJEXT)
address@hidden@@THREE_FALSE@@address@hidden = one.$(OBJEXT) \
address@hidden@@THREE_FALSE@@TWO_TRUE@  two.$(OBJEXT)
address@hidden@@THREE_FALSE@@address@hidden = one.$(OBJEXT)
address@hidden@@THREE_TRUE@@address@hidden = one.$(OBJEXT) \
address@hidden@@THREE_TRUE@@TWO_TRUE@   two.$(OBJEXT) three.$(OBJEXT)
address@hidden@@THREE_TRUE@@address@hidden = one.$(OBJEXT) \
address@hidden@@THREE_TRUE@@TWO_FALSE@  three.$(OBJEXT)
+EOF
+
+diff expected produced || exit 1
diff --git a/tests/cond4.test b/tests/cond4.test
index 42d7251..3ad56c7 100755
--- a/tests/cond4.test
+++ b/tests/cond4.test
@@ -5,10 +5,11 @@
 . $srcdir/defs || exit 1
 
 cat > configure.in << 'END'
-AM_INIT_AUTOMAKE(nonesuch, nonesuch)
+AC_INIT(Makefile.am)
+AM_INIT_AUTOMAKE(foo,0.0)
 AC_PROG_CC
-AM_CONDITIONAL(ONE, true)
-AM_CONDITIONAL(TWO, false)
+AM_CONDITIONAL(ONE, test "x$CONDITION1" = "xtrue")
+AM_CONDITIONAL(TWO, test "x$CONDITION2" = "xtrue")
 AC_OUTPUT(Makefile)
 END
 
@@ -24,8 +25,41 @@ OPT2 = two.c
 endif
 
 targ_SOURCES = main.c $(OPT1) $(OPT2)
+
+echo-objects:
+       @echo $(targ_OBJECTS)
 END
 
+$needs_autoconf
+
+$ACLOCAL || exit 1
 $AUTOMAKE || exit 1
+test "`grep TWO_FALSE Makefile.in | wc -l`" -eq 2 || exit 1
+
+$AUTOCONF || exit 1
+(gcc -v) > /dev/null 2>&1 || exit 77
+
+# Ignore user CFLAGS.
+CFLAGS=
+export CFLAGS
+
+$needs_gnu_make
+
+CC='gcc' CONDITION1=true CONDITION2=true ./configure || exit 1
+msgtt=`$MAKE --no-print-directory echo-objects`
+CC='gcc' CONDITION1=true CONDITION2=false ./configure || exit 1
+msgtf=`$MAKE --no-print-directory echo-objects`
+CC='gcc' CONDITION1=false CONDITION2=true ./configure || exit 1
+msgft=`$MAKE --no-print-directory echo-objects`
+CC='gcc' CONDITION1=false CONDITION2=false ./configure || exit 1
+msgff=`$MAKE --no-print-directory echo-objects`
+
+echo $msgtt
+echo $msgtf
+echo $msgft
+echo $msgff
 
-test "`grep TWO_FALSE Makefile.in | wc -l`" -eq 2
+test "$msgtt" = "main.o one.o two.o" || exit 1
+test "$msgtf" = "main.o one.o" || exit 1
+test "$msgft" = "main.o two.o" || exit 1
+test "$msgff" = "main.o" || exit 1
diff --git a/tests/cond5.test b/tests/cond5.test
index ff65743..02e2be8 100755
--- a/tests/cond5.test
+++ b/tests/cond5.test
@@ -28,10 +28,11 @@ END
 
 # The bug is that automake hangs.  So we give it a few seconds and
 # then kill it.
+$ACLOCAL || exit 1
 $AUTOMAKE &
 pid=$!
 
-sleep 5
+sleep 15
 kill -0 $pid && {
    kill $pid
    exit 1
diff --git a/tests/cond8.test b/tests/cond8.test
new file mode 100755
index 0000000..94d29b2
--- /dev/null
+++ b/tests/cond8.test
@@ -0,0 +1,20 @@
+#! /bin/sh
+
+# Test to make sure _PROGRAMS conditionals can be written in a useful
+# way.
+
+. $srcdir/defs || exit 1
+
+echo 'AC_PROG_CC' >> configure.in
+echo 'AM_CONDITIONAL(X, false)' >> configure.in
+
+cat > Makefile.am << 'END'
+if X
+bin_PROGRAMS = x y
+else
+noinst_PROGRAMS = x y
+endif
+END
+
+$ACLOCAL || exit 1
+$AUTOMAKE
diff --git a/tests/cond9.test b/tests/cond9.test
new file mode 100755
index 0000000..aeca07a
--- /dev/null
+++ b/tests/cond9.test
@@ -0,0 +1,31 @@
+#! /bin/sh
+
+# Test for bug in conditionals.  From Raja R Harinath.
+
+. $srcdir/defs || exit 1
+
+cat > configure.in << 'END'
+AC_INIT(Makefile.am)
+AM_INIT_AUTOMAKE(foo,0.0)
+AM_CONDITIONAL(WRONG, [test x = y])
+AC_OUTPUT(Makefile)
+END
+
+cat > Makefile.am << 'END'
+if WRONG
+this=
+else
+this=is_something_interesting
+endif
+
+echo-something:
+       echo '$(this)'
+END
+
+$needs_autoconf
+
+$ACLOCAL \
+  && $AUTOCONF \
+  && $AUTOMAKE -a \
+  && ./configure \
+  && $MAKE echo-something | grep interesting > /dev/null
diff --git a/tests/condincl.test b/tests/condincl.test
new file mode 100755
index 0000000..0dfb451
--- /dev/null
+++ b/tests/condincl.test
@@ -0,0 +1,28 @@
+#! /bin/sh
+
+# Make sure a conditional include statement is handled properly.
+
+. $srcdir/defs || exit 1
+
+cat >> configure.in << 'END'
+AM_CONDITIONAL(TOBE, false)
+END
+
+cat > Makefile.am << 'END'
+if TOBE
+include adjunct
+endif
+END
+
+cat > adjunct << 'END'
+target: dependency
+       rule
+END
+
+$AUTOMAKE || exit 1
+
+grep '^target' Makefile.in && exit 1
+
+grep 'address@hidden@target' Makefile.in || exit 1
+
+exit 0
diff --git a/tests/condincl2.test b/tests/condincl2.test
new file mode 100755
index 0000000..59b2a29
--- /dev/null
+++ b/tests/condincl2.test
@@ -0,0 +1,24 @@
+#! /bin/sh
+
+# Another test of conditional include statements.
+
+. $srcdir/defs || exit 1
+
+cat >> configure.in << 'END'
+AM_CONDITIONAL(TOBE, false)
+END
+
+cat > Makefile.am << 'END'
+if TOBE
+include adjunct
+endif
+END
+
+cat > adjunct << 'END'
+target: dependency
+       rule
+endif
+END
+
+$AUTOMAKE && exit 1
+exit 0
diff --git a/tests/condlib.test b/tests/condlib.test
new file mode 100755
index 0000000..e64062f
--- /dev/null
+++ b/tests/condlib.test
@@ -0,0 +1,28 @@
+#! /bin/sh
+
+# Test for bug with conditional library.
+# From Harlan Stenn
+
+. $srcdir/defs || exit 1
+
+cat >> configure.in << 'END'
+AC_PROG_RANLIB
+AM_MAINTAINER_MODE
+AC_EXEEXT
+AC_PROG_CC
+END
+
+cat > Makefile.am << 'END'
+noinst_LIBRARIES = @LIBRSAREF@
+EXTRA_LIBRARIES = librsaref.a
+
+nodist_librsaref_a_SOURCES = desc.c digit.c
+
+BUILT_SOURCES = $(nodist_librsaref_a_SOURCES)
+END
+
+$ACLOCAL || exit 1
+$AUTOMAKE || exit 1
+
+fgrep librsaref.a.c Makefile.in && exit 1
+exit 0
diff --git a/tests/conf2.test b/tests/conf2.test
index 52a0265..05eccf2 100755
--- a/tests/conf2.test
+++ b/tests/conf2.test
@@ -5,11 +5,13 @@
 . $srcdir/defs || exit 1
 
 cat > configure.in << 'END'
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
 AM_CONFIG_HEADER(config.h two.h)
 PACKAGE=nonesuch
 VERSION=nonesuch
 AC_PROG_CC
 AC_ARG_PROGRAM
+AC_PROG_MAKE_SET
 AC_PROG_INSTALL
 AC_OUTPUT(Makefile)
 END
@@ -19,4 +21,5 @@ END
 : > config.h.in
 : > two.h.in
 
+$ACLOCAL || exit 1
 $AUTOMAKE
diff --git a/tests/confdeps.test b/tests/confdeps.test
new file mode 100755
index 0000000..e6763f2
--- /dev/null
+++ b/tests/confdeps.test
@@ -0,0 +1,21 @@
+#! /bin/sh
+
+# Make sure that config* files are properly regenerated.
+
+. $srcdir/defs || exit 1
+
+echo "FOO = foo"        > Makefile.am
+set -e
+
+echo "$me: Not generated by aclocal..."
+echo "Hello, universe!" > aclocal.m4
+$AUTOMAKE
+grep '^\$(ACLOCAL_M4):' Makefile.in && exit 1
+
+
+echo "$me: Generated by aclocal..."
+$ACLOCAL
+$AUTOMAKE
+grep '^\$(ACLOCAL_M4):' Makefile.in
+
+exit 0
diff --git a/tests/confh.test b/tests/confh.test
index 6b70705..d32f197 100755
--- a/tests/confh.test
+++ b/tests/confh.test
@@ -6,24 +6,35 @@
 . $srcdir/defs || exit 1
 
 cat > configure.in << 'END'
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
 PACKAGE=nonesuch
 VERSION=nonesuch
 AC_ARG_PROGRAM
 AC_PROG_INSTALL
+AC_PROG_MAKE_SET
 AM_CONFIG_HEADER(include/config.h)
-AC_OUTPUT(Makefile)
+AC_OUTPUT(Makefile include/Makefile)
 END
 
 : > Makefile.am
 : > acconfig.h
 
 mkdir include
+: > include/Makefile.am
 : > include/config.h.in
 
 $AUTOMAKE || exit 1
 
-grep '^DIST_COMMON =.* acconfig.h' Makefile.in || exit 1
-grep 'stamp-h.in:.*acconfig.h' Makefile.in || exit 1
+(sed -n -e '/^DIST_COMMON =.*\\$/ {
+   :loop
+   p
+   n
+   /\\$/ b loop
+   p
+   n
+   }' -e '/^DIST_COMMON =/ p' Makefile.in | grep acconfig.h) || exit 1
+
+grep 'stamp-h.in:.*acconfig.h' include/Makefile.in || exit 1
 
 # Make sure re-running automake in a different way generates same
 # Makefile.in.
diff --git a/tests/confh2.test b/tests/confh2.test
index 45b64f8..ce3cc14 100755
--- a/tests/confh2.test
+++ b/tests/confh2.test
@@ -6,10 +6,12 @@
 . $srcdir/defs || exit 1
 
 cat > configure.in << 'END'
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
 PACKAGE=nonesuch
 VERSION=nonesuch
 AC_ARG_PROGRAM
 AC_PROG_INSTALL
+AC_PROG_MAKE_SET
 AM_CONFIG_HEADER(config.h:include/config.h.in)
 AC_OUTPUT(Makefile)
 END
diff --git a/tests/confh3.test b/tests/confh3.test
index 8cfe589..044dfbf 100755
--- a/tests/confh3.test
+++ b/tests/confh3.test
@@ -6,10 +6,12 @@
 . $srcdir/defs || exit 1
 
 cat > configure.in << 'END'
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
 PACKAGE=nonesuch
 VERSION=nonesuch
 AC_ARG_PROGRAM
 AC_PROG_INSTALL
+AC_PROG_MAKE_SET
 AM_CONFIG_HEADER(d1/config.h:d2/config.h.in)
 AC_OUTPUT(Makefile d1/Makefile)
 END
diff --git a/tests/confh4.test b/tests/confh4.test
new file mode 100755
index 0000000..97918ca
--- /dev/null
+++ b/tests/confh4.test
@@ -0,0 +1,32 @@
+#! /bin/sh
+
+# Test for PR 34.
+
+. $srcdir/defs || exit 1
+
+cat > configure.in << 'END'
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
+AC_ARG_PROGRAM
+AC_PROG_INSTALL
+AM_CONFIG_HEADER(include/config.h)
+AC_PROG_MAKE_SET
+AC_PROG_CC
+AC_OUTPUT(Makefile include/Makefile)
+END
+
+cat > Makefile.am << 'END'
+bin_PROGRAMS = foo
+foo_SOURCES = foo.c
+END
+
+: > foo.c
+: > acconfig.h
+
+mkdir include
+: > include/Makefile.am
+: > include/config.h.in
+
+$ACLOCAL || exit 1
+$AUTOMAKE || exit 1
+
+egrep '^DEFAULT_INCLUDES =.* -I(\.|\$\(top_builddir\))/include' Makefile.in
diff --git a/tests/config.test b/tests/config.test
index cbe6ba7..8e4a0ce 100755
--- a/tests/config.test
+++ b/tests/config.test
@@ -8,10 +8,12 @@
 
 cat > configure.in << 'END'
 AM_CONFIG_HEADER(subdir/config.h)
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
 PACKAGE=nonesuch
 VERSION=nonesuch
 AC_PROG_CC
 AC_ARG_PROGRAM
+AC_PROG_MAKE_SET
 AC_PROG_INSTALL
 AC_OUTPUT(Makefile)
 END
@@ -20,6 +22,7 @@ END
 mkdir subdir
 : > subdir/config.h.in
 
+$ACLOCAL || exit 1
 $AUTOMAKE || exit 1
 
 grep '^subdir/config.h:' Makefile.in
diff --git a/tests/confincl.test b/tests/confincl.test
index a6e0932..4f15522 100755
--- a/tests/confincl.test
+++ b/tests/confincl.test
@@ -14,6 +14,7 @@ cat > Makefile.am << 'EOF'
 bin_PROGRAMS = fred
 EOF
 
+$ACLOCAL || exit 1
 $AUTOMAKE || exit 1
 
 if grep '@CONFIG_INCLUDE_SPEC@' Makefile.in; then
diff --git a/tests/confsub.test b/tests/confsub.test
index d7ba30f..2e0778f 100755
--- a/tests/confsub.test
+++ b/tests/confsub.test
@@ -5,6 +5,7 @@
 . $srcdir/defs || exit 1
 
 cat > configure.in << 'END'
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
 AC_PROG_MAKE_SET
 AM_CONFIG_HEADER(subdir/config.h)
 PACKAGE=nonesuch
@@ -26,6 +27,7 @@ END
 
 : > subdir/config.h.in
 
+$ACLOCAL || exit 1
 $AUTOMAKE || exit 1
 
 # Make sure subdir Makefile.in doesn't itself look in the subdir.
diff --git a/tests/copy.test b/tests/copy.test
new file mode 100755
index 0000000..dc1de49
--- /dev/null
+++ b/tests/copy.test
@@ -0,0 +1,10 @@
+#! /bin/sh
+
+# Test to make sure `-c' works.  Report from Andris Pavenis.
+
+. $srcdir/defs || exit 1
+
+: > Makefile.am
+rm -f install-sh
+
+$AUTOMAKE -c -a
diff --git a/tests/ctarget1.test b/tests/ctarget1.test
new file mode 100755
index 0000000..3deb95d
--- /dev/null
+++ b/tests/ctarget1.test
@@ -0,0 +1,28 @@
+#! /bin/sh
+
+# Check basic use of conditionals.
+
+. $srcdir/defs || exit 1
+
+cat > configure.in << 'END'
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
+AM_CONDITIONAL(TEST, true)
+AC_OUTPUT(Makefile)
+END
+
+cat > Makefile.am << 'END'
+if TEST
+target: true
+       action
+else
+target: false
+endif
+END
+
+set -e
+
+$AUTOMAKE
+grep 'address@hidden@target: true' Makefile.in
+grep 'address@hidden@  action' Makefile.in
+grep 'address@hidden@target: false' Makefile.in
+exit 0
diff --git a/tests/cxx.test b/tests/cxx.test
new file mode 100755
index 0000000..7e54720
--- /dev/null
+++ b/tests/cxx.test
@@ -0,0 +1,20 @@
+#! /bin/sh
+
+# Test that `.c++' extension works.
+# From Ralf Corsepius.
+
+. $srcdir/defs || exit 1
+
+cat >> configure.in << 'END'
+AC_PROG_CXX
+END
+
+cat > Makefile.am << 'END'
+bin_PROGRAMS = hello
+hello_SOURCES = hello.c++
+END
+
+$ACLOCAL || exit 1
+$AUTOMAKE || exit 1
+
+grep '^\.SUFFIXES:.*c[+][+]' Makefile.in
diff --git a/tests/cxxansi.test b/tests/cxxansi.test
new file mode 100755
index 0000000..c27972e
--- /dev/null
+++ b/tests/cxxansi.test
@@ -0,0 +1,29 @@
+#! /bin/sh
+
+# Test to make sure ansi2knr doesn't use `$U' for C++.
+# Report from Robert Boehne.
+
+. $srcdir/defs || exit 1
+
+cat >> configure.in << 'END'
+AC_PROG_CXX
+AM_C_PROTOTYPES
+END
+
+cat > Makefile.am << 'END'
+AUTOMAKE_OPTIONS = ansi2knr
+sbin_PROGRAMS = anonymous
+anonymous_SOURCES = doe.C jane.C
+END
+
+: > ansi2knr.c
+: > ansi2knr.1
+
+: > doe.C
+: > jane.C
+
+$ACLOCAL || exit 1
+$AUTOMAKE || exit 1
+
+fgrep '$U' Makefile.in && exit 1
+exit 0
diff --git a/tests/cxxlibobj.test b/tests/cxxlibobj.test
index 13add34..1bbd0a6 100755
--- a/tests/cxxlibobj.test
+++ b/tests/cxxlibobj.test
@@ -20,6 +20,7 @@ END
 : > doe.C
 : > jane.C
 
+$ACLOCAL || exit 1
 $AUTOMAKE || exit 1
 
 grep CC Makefile.in
diff --git a/tests/cxxlink.test b/tests/cxxlink.test
index bcf03bb..9a0f63d 100755
--- a/tests/cxxlink.test
+++ b/tests/cxxlink.test
@@ -17,6 +17,7 @@ END
 : > lava.c
 : > lamp.cxx
 
+$ACLOCAL || exit 1
 $AUTOMAKE || exit 1
 
 # Look for this macro not at the beginning of any line; that will have
diff --git a/tests/cxxnoc.test b/tests/cxxnoc.test
index 558040d..56ca8c7 100755
--- a/tests/cxxnoc.test
+++ b/tests/cxxnoc.test
@@ -16,6 +16,7 @@ END
 : > doe.C
 : > jane.C
 
+$ACLOCAL || exit 1
 $AUTOMAKE || exit 1
 
 grep CC Makefile.in | grep -v MKDEP && exit 1
diff --git a/tests/cxxo.test b/tests/cxxo.test
index 32beec8..8fe584b 100755
--- a/tests/cxxo.test
+++ b/tests/cxxo.test
@@ -14,6 +14,7 @@ END
 
 : > doe.C
 
+$ACLOCAL || exit 1
 $AUTOMAKE || exit 1
 
-fgrep doe.o Makefile.in
+fgrep 'doe.$(OBJEXT)' Makefile.in
diff --git a/tests/cygwin32.test b/tests/cygwin32.test
index 99fa66a..a689b73 100755
--- a/tests/cygwin32.test
+++ b/tests/cygwin32.test
@@ -6,18 +6,20 @@
 
 cat >> configure.in << 'END'
 AC_PROG_CC
-AM_EXEEXT
+AC_EXEEXT
 END
 
 cat > Makefile.am << 'END'
 bin_PROGRAMS = www
-www_SOURCES = www.c @extra_stuff@
+www_SOURCES = www.c
 EXTRA_www_SOURCES = xtra.c
+www_LDADD = @extra_stuff@
 END
 
 : > www.c
 : > xtra.c
 
+$ACLOCAL || exit 1
 $AUTOMAKE || exit 1
 
 grep '^CYGWIN' Makefile.in && exit 1
diff --git a/tests/dash.test b/tests/dash.test
new file mode 100755
index 0000000..a3e2da6
--- /dev/null
+++ b/tests/dash.test
@@ -0,0 +1,14 @@
+#! /bin/sh
+
+# Test to make sure `-' can be used in path.
+# Report from Matthew D. Langston.
+
+. $srcdir/defs || exit 1
+
+cat > Makefile.am << 'END'
+include Make-lang
+END
+
+: > Make-lang
+
+$AUTOMAKE
diff --git a/tests/defs b/tests/defs
index d21540a..28219ab 100644
--- a/tests/defs
+++ b/tests/defs
@@ -8,34 +8,41 @@ test -f $srcdir/defs || {
    exit 1
 }
 
-# If srcdir is relative, we need to modify it.
+me=`echo "$0" | sed -e 's,.*[\\/],,;s/\.test$//'`
+
+# Always use an absolute srcdir.  Otherwise symlinks made in subdirs
+# of the test dir just won't work.
 case "$srcdir" in
- /*)
+ [\\/]* | ?:[\\/]*)
     ;;
 
  *)
-    srcdir="../$srcdir"
+    srcdir=`CDPATH=: && cd "$srcdir" && pwd`
     ;;
 esac
 
+chmod -R a+rwx testSubDir > /dev/null 2>&1
 rm -rf testSubDir > /dev/null 2>&1
 mkdir testSubDir
-cd testSubDir
+
+# Copy in some files we need.
+for file in install-sh mkinstalldirs missing depcomp; do
+   cp $srcdir/../lib/$file testSubDir/$file || exit 1
+done
+
+cd ./testSubDir
 
 # Build appropriate environment in test directory.  Eg create
 # configure.in, touch all necessary files, etc.
 cat > configure.in << 'END'
-PACKAGE=nonesuch
-VERSION=nonesuch
+AC_INIT
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
 AC_ARG_PROGRAM
 AC_PROG_INSTALL
+AC_PROG_MAKE_SET
 AC_OUTPUT(Makefile)
 END
 
-: > install-sh
-: > mkinstalldirs
-: > missing
-
 # See how redirections should work.  User can set VERBOSE to see all
 # output.
 test -z "$VERBOSE" && {
@@ -48,12 +55,42 @@ test -z "$PERL" && PERL=perl
 # User can set MAKE to choose which make to use.  Must use GNU make.
 test -z "$MAKE" && MAKE=make
 
+# Unset some MAKE... variables that may cause $MAKE to act like a
+# recursively invoked sub-make.  Any $MAKE invocation in a test is
+# conceptually an independent invocation, not part of the main
+# 'automake' build.
+unset MFLAGS
+unset MAKEFLAGS
+unset MAKELEVEL
+
+if ($MAKE --version) > /dev/null 2>&1; then
+   needs_gnu_make=:
+else
+   needs_gnu_make='exit 77'
+fi
+
+# User can set which tools from Autoconf to use.
+test -z "$AUTOCONF" && AUTOCONF=autoconf
+if ($AUTOCONF --version) >/dev/null 2>&1; then
+  has_autoconf=:
+  needs_autoconf=:
+else
+  has_autoconf=false
+  needs_autoconf='exit 77'
+fi
+
+
 echo "=== Running test $0"
 
 # See how Automake should be run.  We put --foreign as the default
 # strictness to avoid having to create lots and lots of files.  A test
 # can override this by specifying a different strictness.
-AUTOMAKE="$PERL ../../automake --amdir=$srcdir/.. --foreign"
+if test -z "$AUTOMAKE"; then
+   perllibdir=$srcdir/../lib
+   export perllibdir
+   AUTOMAKE="$PERL ../../automake --libdir=$srcdir/../lib --foreign --Werror"
+fi
 
 # See how aclocal should be run.
-ACLOCAL="$PERL ../../aclocal --acdir=$srcdir/../m4"
+test -z "$ACLOCAL" \
+   && ACLOCAL="$PERL ../../aclocal --acdir=$srcdir/../m4"
diff --git a/tests/defun2.test b/tests/defun2.test
index d6869c5..6f58cab 100755
--- a/tests/defun2.test
+++ b/tests/defun2.test
@@ -20,4 +20,5 @@ END
 
 : > memcmp.c
 
+$ACLOCAL || exit 1
 $AUTOMAKE
diff --git a/tests/dejagnu.test b/tests/dejagnu.test
index 140ec07..55459fd 100755
--- a/tests/dejagnu.test
+++ b/tests/dejagnu.test
@@ -13,4 +13,5 @@ END
 
 $AUTOMAKE || exit 1
 
-grep '^check-TESTS' Makefile.in && grep '^check-DEJAGNU' Makefile.in
+grep '^check-TESTS' Makefile.in
+grep '^check-DEJAGNU' Makefile.in
diff --git a/tests/dejagnu2.test b/tests/dejagnu2.test
new file mode 100755
index 0000000..f99163a
--- /dev/null
+++ b/tests/dejagnu2.test
@@ -0,0 +1,17 @@
+#! /bin/sh
+
+# Make sure we don't override the user's site.exp rule.
+
+. $srcdir/defs || exit 1
+
+cat > Makefile.am << 'END'
+AUTOMAKE_OPTIONS = dejagnu
+
+site.exp:
+    echo foo
+END
+
+$AUTOMAKE || exit 1
+
+grep site.exp Makefile.in
+test `grep '^site\.exp:' Makefile.in | wc -l` -eq 1
diff --git a/tests/depacl.test b/tests/depacl.test
index 7b04b82..c8b2268 100755
--- a/tests/depacl.test
+++ b/tests/depacl.test
@@ -10,4 +10,4 @@ END
 
 $ACLOCAL || exit 1
 
-grep '^AC_DEFUN.AM_PROG_CC_STDC,$' aclocal.m4
+grep '^AC_DEFUN.*AM_PROG_CC_STDC' aclocal.m4
diff --git a/tests/depcomp.test b/tests/depcomp.test
new file mode 100755
index 0000000..35964b5
--- /dev/null
+++ b/tests/depcomp.test
@@ -0,0 +1,35 @@
+#! /bin/sh
+
+# Test to make sure depcomp is installed and found properly
+# when required for multiple directories
+
+. $srcdir/defs || exit 1
+
+cat > configure.in << 'END'
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
+PACKAGE=nonesuch
+VERSION=nonesuch
+AC_PROG_CC
+AC_OUTPUT(subdir/Makefile subdir2/Makefile)
+END
+
+rm -f depcomp
+mkdir subdir
+mkdir subdir2
+
+cat > subdir/Makefile.am << 'END'
+noinst_PROGRAMS = foo
+foo_SOURCES = foo.c
+END
+
+cp subdir/Makefile.am subdir2/Makefile.am
+
+: > subdir/foo.c
+: > subdir2/foo.c
+
+$ACLOCAL || exit 1
+$AUTOMAKE --add-missing || exit 1
+
+# There used to be a bug where this was created in the first subdir with C
+# sources in it instead of in $top_srcdir or $ac_auxdir
+test -f depcomp || exit 1
diff --git a/tests/depcomp2.test b/tests/depcomp2.test
new file mode 100755
index 0000000..3dc002a
--- /dev/null
+++ b/tests/depcomp2.test
@@ -0,0 +1,45 @@
+#! /bin/sh
+
+# Test to make sure that depcomp is not used when it's not installed
+# From Pavel Roskin.
+
+. $srcdir/defs || exit 1
+
+cat > configure.in << 'END'
+AC_INIT(subdir/foo.c)
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
+PACKAGE=nonesuch
+VERSION=nonesuch
+AC_PROG_CC
+AC_OUTPUT(Makefile subdir/Makefile)
+END
+
+cat > Makefile.am << 'END'
+SUBDIRS = subdir
+END
+
+rm -f depcomp
+mkdir subdir
+
+cat > subdir/Makefile.in << 'END'
+foo:
+       $(CC) -o foo foo.c
+END
+
+: > subdir/foo.c
+
+# Fail gracefully if no autoconf.
+$needs_autoconf
+
+# Likewise for gcc.
+(gcc -v) > /dev/null 2>&1 || exit 77
+
+# Ignore user CFLAGS.
+CFLAGS=
+export CFLAGS
+
+$ACLOCAL || exit 1
+$AUTOMAKE --add-missing || exit 1
+$AUTOCONF || exit 1
+CC='gcc' ./configure 2>error.log
+test -z "`cat error.log`"
diff --git a/tests/depdist.test b/tests/depdist.test
new file mode 100755
index 0000000..b658d8b
--- /dev/null
+++ b/tests/depdist.test
@@ -0,0 +1,42 @@
+#! /bin/sh
+
+# Make sure depcomp is found for the distribution.
+# From Eric Magnien.
+
+. $srcdir/defs || exit 1
+
+rm -f configure.in
+
+mkdir config
+for i in *; do
+   if test $i != "config"; then
+      mv $i config
+   fi
+done
+
+cat > configure.in << 'END'
+AC_INIT(subdir/foo.c)
+AC_CONFIG_AUX_DIR(config)
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
+AC_PROG_CC
+AC_OUTPUT(subdir/Makefile Makefile)
+END
+
+cat > Makefile.am << 'END'
+SUBDIRS = subdir
+END
+
+mkdir subdir
+: > subdir/foo.c
+
+cat > subdir/Makefile.am << 'END'
+bin_PROGRAMS = foo
+foo_SOURCES = foo.c
+END
+
+set -e
+
+$ACLOCAL
+$AUTOMAKE --add-missing
+$AUTOCONF
+grep config/depcomp Makefile.in
diff --git a/tests/depend.test b/tests/depend.test
index 23c2045..70234bb 100755
--- a/tests/depend.test
+++ b/tests/depend.test
@@ -2,20 +2,19 @@
 
 # This tests for a bug reported by Henrik Frystyk Nielsen <address@hidden>
 # In some cases the auto-dependency can get confused and try
-# to `-include' a directory.
-# This actually tests for two bugs:
-# * A configure substitution in _SOURCES incorrectly ends up in DEP_FILES
-# * A backslash-newline in _SOURCES causes just the directory to
-#   appear in DEP_FILES.
+# to `-include' a directory (if a backslash-newline appears in _SOURCES).
 
 . $srcdir/defs || exit 1
 
+echo AC_PROG_CC >> configure.in
+
 cat > Makefile.am << 'END'
 bin_PROGRAMS = fred
 fred_SOURCES = \
-   @BLATT@
+   fred.c
 END
 
+$ACLOCAL || exit 1
 $AUTOMAKE || exit 1
 
 # In this case we no longer expect to find DEP_FILES.
diff --git a/tests/depend2.test b/tests/depend2.test
index 8978165..1cae3ea 100755
--- a/tests/depend2.test
+++ b/tests/depend2.test
@@ -1,71 +1,52 @@
 #! /bin/sh
 
-# Test that automatically generated dependencies are correctly
-# rewritten into distribution Makefiles.  This test is set up to look
-# like a C program was built in a subdir of the distribution.
+# Test to make sure dependency tracking works with
+# --disable-dependency-tracking.
+# Report from Robert Boehne
 
 . $srcdir/defs || exit 1
 
 cat > configure.in << 'END'
-PACKAGE=nonesuch
-VERSION=nonesuch
-AC_ARG_PROGRAM
-AC_PROG_MAKE_SET
-AC_PROG_INSTALL
+AC_INIT(hello.c)
+AM_INIT_AUTOMAKE(hello,0.23)
 AC_PROG_CC
-AC_OUTPUT(Makefile src/Makefile)
+AC_OUTPUT(Makefile)
 END
 
 cat > Makefile.am << 'END'
-SUBDIRS = src
+bin_PROGRAMS = hello
 END
 
-mkdir src
-cat > src/Makefile.am << 'END'
-bin_PROGRAMS = copyin
+cat > hello.h << 'END'
+#include <stdio.h>
 END
 
-: > src/copyin.c
+cat > hello.c << 'END'
+#include "hello.h"
+int
+main (int argc, char *argv[])
+{
+   printf ("yeah, yeah\n");
+   return 0;
+}
+END
 
-mkdir build
-mkdir build/src
-mkdir build/src/.deps
+# Fail gracefully if no autoconf.
+$needs_autoconf
 
-: > build/src/.deps/.P
+# Likewise for gcc.
+(gcc -v) > /dev/null 2>&1 || exit 77
 
-cat > build/src/.deps/copyin.P << 'END'
-copyin.o: ../../src/copyin.c ../config.h /usr/include/stdio.h \
- /usr/include/features.h /usr/include/sys/cdefs.h /usr/include/libio.h \
- 
/usr/local/lib/gcc-lib/i586-unknown-linuxaout/cygnus-2.7.1-951112/../../../../i586-unknown-linuxaout/include/_G_config.h
 \
- /usr/include/sys/types.h /usr/include/linux/types.h \
- /usr/include/asm/types.h /usr/include/sys/stat.h \
- /usr/include/linux/stat.h ../../lib/filetypes.h ../../src/system.h \
- /usr/include/string.h \
- 
/usr/local/lib/gcc-lib/i586-unknown-linuxaout/cygnus-2.7.1-951112/include/stddef.h
 \
- /usr/include/time.h /usr/include/stdlib.h /usr/include/errno.h \
- /usr/include/linux/errno.h \
- 
/usr/local/lib/gcc-lib/i586-unknown-linuxaout/cygnus-2.7.1-951112/include/float.h
 \
- /usr/include/alloca.h /usr/include/unistd.h /usr/include/posix_opt.h \
- /usr/include/gnu/types.h /usr/include/confname.h \
- /usr/include/sys/sysmacros.h /usr/include/fcntl.h \
- /usr/include/linux/fcntl.h /usr/include/utime.h \
- /usr/include/linux/utime.h /usr/include/dirent.h \
- /usr/include/linux/limits.h /usr/include/linux/dirent.h \
- /usr/include/posix1_lim.h ../../src/cpiohdr.h ../../src/cpio.h \
- ../../src/extern.h \
- 
/usr/local/lib/gcc-lib/i586-unknown-linuxaout/cygnus-2.7.1-951112/../../../../include/libintl.h
 \
- /usr/include/locale.h ../../lib/ansidecl.h ../../lib/dstring.h \
- ../../lib/error.h ../../src/defer.h ../../src/rmt.h \
- ../../lib/fnmatch.h
-END
+set -e
 
-mkdir outdir
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE -a
 
-$AUTOMAKE --include-deps --build-dir=`pwd`/build --srcdir-name=../.. \
-   --output-dir=`pwd`/outdir src/Makefile || exit 1
+# Ignore user CFLAGS.
+CFLAGS=
+export CFLAGS
 
-# The buggy output contains this string.
-fgrep '../../lib/filetypes.h' outdir/src/Makefile.in && exit 1
+CC='gcc' ./configure --disable-dependency-tracking
 
-# Also make sure that filetypes.h is mentioned at all.
-fgrep filetypes.h outdir/src/Makefile.in
+$MAKE
diff --git a/tests/depend3.test b/tests/depend3.test
index 7ff4909..2fe15ae 100755
--- a/tests/depend3.test
+++ b/tests/depend3.test
@@ -5,11 +5,11 @@
 . $srcdir/defs || exit 1
 
 cat > configure.in << 'END'
-PACKAGE=nonesuch
-VERSION=nonesuch
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
 AC_ARG_PROGRAM
 AC_PROG_INSTALL
 AC_PROG_CC
+AC_PROG_MAKE_SET
 AC_SUBST(DEPS)
 AC_OUTPUT(Makefile)
 END
@@ -33,4 +33,5 @@ DEPS = @DEPS@
 TerraVision_DEPENDENCIES = $(DEPS)
 END
 
+$ACLOCAL || exit 1
 $AUTOMAKE
diff --git a/tests/depend4.test b/tests/depend4.test
new file mode 100755
index 0000000..da56d6b
--- /dev/null
+++ b/tests/depend4.test
@@ -0,0 +1,25 @@
+#! /bin/sh
+
+# check that 'DEP_FILES' is defined when there are many header files
+
+. $srcdir/defs || exit 1
+
+echo AC_PROG_CC >> configure.in
+
+$ACLOCAL || exit 1
+
+headers=
+for header in one.h two.h three.h four.h five.h six.h
+do
+    headers="$headers $header"
+    cat > Makefile.am << END
+bin_PROGRAMS = fred
+fred_SOURCES = fred1.c $headers
+END
+
+    $AUTOMAKE || exit 1
+
+    egrep '^(@address@hidden@)*DEP_FILES = ' Makefile.in || exit 1
+done
+
+exit 0
diff --git a/tests/dirname.test b/tests/dirname.test
new file mode 100755
index 0000000..bbc5de7
--- /dev/null
+++ b/tests/dirname.test
@@ -0,0 +1,43 @@
+#! /bin/sh
+
+# Test the operation of the _AM_DIRNAME macro from m4/header.m4
+
+. $srcdir/defs || exit 1
+
+cat > configure.in << 'END'
+AC_PLAIN_SCRIPT
+echo "1 /a/path/to/a/file      = _AM_DIRNAME([/a/path/to/a/file])"
+echo "2 another/path/to/a/file = _AM_DIRNAME([another/path/to/a/file])"
+echo "3 file                   = _AM_DIRNAME([file])"
+echo "4 //                     = _AM_DIRNAME([//])"
+echo "5 //file                 = _AM_DIRNAME([//file])"
+echo "6 /                      = _AM_DIRNAME([/])"
+echo "7 /file                  = _AM_DIRNAME([/file])"
+END
+
+# Fail gracefully if no autoconf.
+$needs_autoconf
+
+$ACLOCAL || exit 1
+$AUTOCONF || exit 1
+
+# fail gracefully if autoconf didn't support AC_PLAIN_SCRIPT, because it won't
+# support our regexps anyhow
+test -s configure || exit 77
+
+$SHELL ./configure >got || exit 1
+
+cat >wanted <<EOF
+1 /a/path/to/a/file      = /a/path/to/a
+2 another/path/to/a/file = another/path/to/a
+3 file                   = .
+4 //                     = //
+5 //file                 = //
+6 /                      = /
+7 /file                  = /
+EOF
+
+diff wanted got || exit 1
+
+exit 0
+
diff --git a/tests/discover.test b/tests/discover.test
index 2daa9e7..c736e61 100755
--- a/tests/discover.test
+++ b/tests/discover.test
@@ -10,6 +10,7 @@ VERSION=nonesuch
 AC_ARG_PROGRAM
 AC_PROG_INSTALL
 AC_PROG_RANLIB
+AC_PROG_MAKE_SET
 AC_PROG_CC
 LIBOBJS="$LIBOBJS fsusage.o"
 AC_OUTPUT(Makefile)
@@ -23,5 +24,6 @@ END
 
 : > fsusage.c
 
+$ACLOCAL || exit 1
 $AUTOMAKE && exit 1
 exit 0
diff --git a/tests/distcommon.test b/tests/distcommon.test
new file mode 100755
index 0000000..6072853
--- /dev/null
+++ b/tests/distcommon.test
@@ -0,0 +1,27 @@
+#! /bin/sh
+
+# A test for failure to include files provided in AC_OUTPUT into
+# DIST_COMMON
+# From Derek R. Price.
+
+. $srcdir/defs || exit 1
+
+cat > configure.in << EOF
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
+AC_OUTPUT(subdir/bar \
+         Makefile \
+         subdir/Makefile)
+EOF
+
+: > Makefile.am
+
+mkdir subdir
+: > subdir/Makefile.am
+: > subdir/bar.in
+
+$AUTOMAKE || exit 1
+
+# verify bar.in
+grep 'DIST_COMMON.*bar.in' subdir/Makefile.in || exit 1
+
+exit 0
diff --git a/tests/distdir.test b/tests/distdir.test
index 80db378..cfc15d9 100755
--- a/tests/distdir.test
+++ b/tests/distdir.test
@@ -11,5 +11,9 @@ END
 
 $AUTOMAKE || exit 1
 
-grep 'mkinstalldirs.*\.' Makefile.in && exit 1
-grep 'mkinstalldirs.*foo' Makefile.in
+grep '\$(mkinstalldirs).*\.' Makefile.in && exit 1
+grep '\$(mkinstalldirs).*foo' Makefile.in || exit 1
+
+# Check to make sure `foo' isn't made in build directory.
+grep 'mkinstalldirs.*foo.*foo' Makefile.in && exit 1
+exit 0
diff --git a/tests/distname.test b/tests/distname.test
new file mode 100755
index 0000000..350d58f
--- /dev/null
+++ b/tests/distname.test
@@ -0,0 +1,35 @@
+#! /bin/sh
+
+# Test of names in tar file.
+# From Rainer Orth
+
+. $srcdir/defs || exit 1
+
+cat > configure.in << 'END'
+AC_INIT(a.c)
+AM_INIT_AUTOMAKE(nonesuch, 0.23)
+AM_PROG_CC_C_O
+AC_PROG_CC
+AC_OUTPUT(Makefile)
+END
+
+cat > Makefile.am << 'END'
+bin_PROGRAMS = wish
+wish_SOURCES = a.c
+END
+
+: > a.c
+
+set -e
+
+$needs_autoconf
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE --include-deps --copy --add-missing
+./configure
+$MAKE dist
+
+gunzip nonesuch-0.23.tar.gz
+(tar tf nonesuch-0.23.tar | fgrep './nonesuch-0.23/a.c') && exit 1
+exit 0
diff --git a/tests/double.test b/tests/double.test
new file mode 100755
index 0000000..5e781e8
--- /dev/null
+++ b/tests/double.test
@@ -0,0 +1,15 @@
+#! /bin/sh
+
+# Test to make sure listing a program twice is ok.
+# Report from Manu Rouat.
+
+. $srcdir/defs || exit 1
+
+echo AC_PROG_CC >> configure.in
+
+cat > Makefile.am << 'END'
+bin_PROGRAMS = spice nutmeg help sconvert multidec nutmeg
+END
+
+$ACLOCAL || exit 1
+$AUTOMAKE
diff --git a/tests/dup.test b/tests/dup.test
deleted file mode 100755
index ee26cae..0000000
--- a/tests/dup.test
+++ /dev/null
@@ -1,17 +0,0 @@
-#! /bin/sh
-
-# Make sure aclocal catches duplicate definitions in acinclude.m4.
-
-. $srcdir/defs || exit 1
-
-cat > configure.in << 'END'
-pkg_INTERNAL_MACRO
-END
-
-cat > acinclude.m4 << 'END'
-AC_DEFUN([pkg_INTERNAL_MACRO])
-AC_DEFUN([pkg_INTERNAL_MACRO])
-END
-
-$ACLOCAL && exit 1
-exit 0
diff --git a/tests/dup3.test b/tests/dup3.test
new file mode 100755
index 0000000..4e46141
--- /dev/null
+++ b/tests/dup3.test
@@ -0,0 +1,17 @@
+#! /bin/sh
+
+# Make sure aclocal searches includes in the right order.
+
+. $srcdir/defs || exit 1
+
+cat >> configure.in << 'END'
+AM_INIT_AUTOMAKE
+END
+
+mkdir zoo
+cat > zoo/zoo.m4 << 'END'
+AC_DEFUN(AM_INIT_AUTOMAKE, zardoz)
+END
+
+$ACLOCAL -I zoo || exit 1
+fgrep zardoz aclocal.m4
diff --git a/tests/empty.test b/tests/empty.test
index 14a7124..112b2c6 100755
--- a/tests/empty.test
+++ b/tests/empty.test
@@ -26,6 +26,6 @@ chmod +x mkinstalldirs
 # Substitute variables we need.
 sed -e 's,@SHELL@,/bin/sh,g' -e 's/@srcdir@/./g' \
    -e 's/@top_srcdir@/./g' -e 's/@datadir@/./g' \
-   < Makefile.in > Makefile
+   -e 's/@SET_MAKE@//g' < Makefile.in > Makefile
 
 $MAKE install
diff --git a/tests/empty2.test b/tests/empty2.test
new file mode 100755
index 0000000..fed0631
--- /dev/null
+++ b/tests/empty2.test
@@ -0,0 +1,21 @@
+#! /bin/sh
+
+# Test to make sure empty _SOURCES suppresses assumption about default
+# name.  Report from Pavel Roskin.
+
+. $srcdir/defs || exit 1
+
+cat >> configure.in << 'END'
+AC_PROG_CC
+END
+
+cat > Makefile.am << 'END'
+bin_PROGRAMS = pavel
+pavel_SOURCES =
+END
+
+$ACLOCAL || exit 1
+$AUTOMAKE || exit 1
+
+grep 'pavel\.[co]' Makefile.in && exit 1
+exit 0
diff --git a/tests/empty3.test b/tests/empty3.test
new file mode 100755
index 0000000..55a52be
--- /dev/null
+++ b/tests/empty3.test
@@ -0,0 +1,18 @@
+#! /bin/sh
+
+# A test for missing _SOURCES variable.
+
+. $srcdir/defs || exit 1
+
+cat >> configure.in << 'END'
+AC_PROG_CC
+END
+
+cat > Makefile.am << 'END'
+bin_PROGRAMS = pavel
+END
+
+$ACLOCAL || exit 1
+$AUTOMAKE || exit 1
+
+grep 'pavel\.[co]' Makefile.in
diff --git a/tests/empty4.test b/tests/empty4.test
new file mode 100755
index 0000000..0ed85da
--- /dev/null
+++ b/tests/empty4.test
@@ -0,0 +1,24 @@
+#! /bin/sh
+
+# Test to make sure empty _SOURCES works.
+# From Paul Berrevoets.
+
+. $srcdir/defs || exit 1
+
+cat >> configure.in << 'END'
+AC_PROG_CC
+AC_SUBST(ZOO_OBJ)
+END
+
+cat > Makefile.am << 'END'
+noinst_PROGRAMS = zoo
+zoo_SOURCES =
+EXTRA_zoo_SOURCES = bar.c foo.c
+zoo_DEPENDENCIES = $(ZOO_OBJ)
+zoo_LDADD = $(zoo_DEPENDENCIES)
+END
+
+$ACLOCAL || exit 1
+$AUTOMAKE || exit 1
+fgrep zoo. Makefile.in && exit 1
+exit 0
diff --git a/tests/exeext.test b/tests/exeext.test
new file mode 100755
index 0000000..a522645
--- /dev/null
+++ b/tests/exeext.test
@@ -0,0 +1,34 @@
+#! /bin/sh
+
+# Test to make sure `.' in an exe name doesn't fool us.
+# Report from Robert Collins.
+
+. $srcdir/defs || exit 1
+
+cat >> configure.in << 'END'
+AC_PROG_CC
+AC_EXEEXT
+END
+
+cat > Makefile.am << 'END'
+## Use a different dir for each to make grep easy.
+bin_PROGRAMS = maude 
+sbin_PROGRAMS = maude.static
+## We don't define this one for now.  Probably it is an error.
+## noinst_PROGRAMS = maude2.exe
+check_PROGRAMS = maude3$(EXEEXT)
+END
+
+set -e
+
+$ACLOCAL
+$AUTOMAKE
+
+grep '^maude$(EXEEXT):' Makefile.in
+grep 'bin_PROGRAMS =.*maude$(EXEEXT)' Makefile.in
+
+grep '^maude\.static$(EXEEXT):' Makefile.in
+grep 'sbin_PROGRAMS =.*maude\.static$(EXEEXT)' Makefile.in
+
+grep '^maude3$(EXEEXT):' Makefile.in
+grep 'check_PROGRAMS =.*maude3$(EXEEXT)' Makefile.in
diff --git a/tests/exeext2.test b/tests/exeext2.test
new file mode 100755
index 0000000..aaa2b87
--- /dev/null
+++ b/tests/exeext2.test
@@ -0,0 +1,25 @@
+#! /bin/sh
+
+# Make sure no-exeext option works.
+
+. $srcdir/defs || exit 1
+
+cat >> configure.in << 'END'
+AC_PROG_CC
+AC_EXEEXT
+END
+
+cat > Makefile.am << 'END'
+bin_PROGRAMS = maude 
+
+maude:
+       yeah
+END
+
+$ACLOCAL
+
+$AUTOMAKE --Werror && exit 1
+
+echo 'AUTOMAKE_OPTIONS = no-exeext' >> Makefile.am
+
+$AUTOMAKE --Werror
diff --git a/tests/exsource.test b/tests/exsource.test
index 1ebfaef..46f0798 100755
--- a/tests/exsource.test
+++ b/tests/exsource.test
@@ -5,11 +5,7 @@
 
 . $srcdir/defs || exit 1
 
-# This test relies on GNU make.
-$MAKE --version > /dev/null 2>&1 || {
-   # Nope.
-   exit 0
-}
+$needs_gnu_make
 
 cat >> configure.in << 'END'
 AC_PROG_CC
@@ -17,8 +13,9 @@ END
 
 cat > Makefile.am << 'END'
 bin_PROGRAMS = www
-www_SOURCES = www.c @extra_stuff@
+www_SOURCES = www.c
 EXTRA_www_SOURCES = xtra.c
+www_LDADD = @extra_stuff@
 magic:
        @echo $(DEP_FILES)
 END
@@ -26,12 +23,7 @@ END
 : > www.c
 : > xtra.c
 
+$ACLOCAL || exit 1
 $AUTOMAKE || exit 1
 
-# Make sure the Makefile.in can find the .-files it needs.
-mkdir .deps
-echo > .deps/.P
-echo > .deps/xtra.P
-echo > .deps/www.P
-
-$MAKE -s -f Makefile.in SHELL=/bin/sh srcdir=`pwd` magic | grep xtra
+grep '@am__include@ .*/xtra\.P' Makefile.in
diff --git a/tests/ext.test b/tests/ext.test
new file mode 100755
index 0000000..8b826bc
--- /dev/null
+++ b/tests/ext.test
@@ -0,0 +1,24 @@
+#! /bin/sh
+
+# Test to make sure extensions are set correctly for various languages.
+
+. $srcdir/defs || exit 1
+
+cat >> configure.in << 'END'
+AC_PROG_F77
+AC_SUBST(OBJC)
+END
+
+cat > Makefile.am << 'END'
+bin_PROGRAMS = foo
+foo_SOURCES = 1.f 2.for 3.f90 4.F 5.r 6.m
+END
+
+$ACLOCAL || exit 1
+$AUTOMAKE || exit 1
+
+for ext in f for f90 F r m
+do
+   grep "^$ext\.o:" Makefile.in && exit 1
+done
+exit 0
diff --git a/tests/extra.test b/tests/extra.test
index f79c99f..933a4b9 100755
--- a/tests/extra.test
+++ b/tests/extra.test
@@ -16,6 +16,7 @@ bin_PROGRAMS = @foo@
 EXTRA_PROGRAMS = zardoz
 END
 
+$ACLOCAL || exit 1
 $AUTOMAKE || exit 1
 
 grep "^zardoz" Makefile.in || exit 1
diff --git a/tests/extra4.test b/tests/extra4.test
index 40f57f9..b652fba 100755
--- a/tests/extra4.test
+++ b/tests/extra4.test
@@ -1,6 +1,6 @@
 #! /bin/sh
 
-# Check to make sure EXTRA_DATA cannot be specified.
+# Check to make sure EXTRA_DATA can be specified.
 
 . $srcdir/defs || exit 1
 
@@ -11,5 +11,4 @@ sysconf_DATA = @CODICIL@
 EXTRA_DATA = codicil.txt
 END
 
-$AUTOMAKE && exit 1
-exit 0
+$AUTOMAKE
diff --git a/tests/fo.test b/tests/fo.test
index 8571b2d..2b4b425 100755
--- a/tests/fo.test
+++ b/tests/fo.test
@@ -18,4 +18,4 @@ END
 
 $AUTOMAKE || exit 1
 
-fgrep doe.o Makefile.in
+fgrep 'doe.$(OBJEXT)' Makefile.in
diff --git a/tests/fortdep.test b/tests/fortdep.test
new file mode 100755
index 0000000..225a750
--- /dev/null
+++ b/tests/fortdep.test
@@ -0,0 +1,27 @@
+#! /bin/sh
+
+# Test to make sure dependency tracking doesn't interfere with Fortran.
+# For PR 75.
+
+. $srcdir/defs || exit 1
+
+cat > configure.in << 'END'
+AC_INIT(foo, 1.0, address@hidden)
+AM_INIT_AUTOMAKE(foo, 1.0)
+AC_CONFIG_SRCDIR(foo.f)
+AC_PROG_F77
+AC_OUTPUT(Makefile)
+END
+
+cat > Makefile.am << 'END'
+AUTOMAKE_OPTIONS=foreign
+bin_PROGRAMS=foo
+foo_SOURCES=foo.f
+END
+
+: > foo.f
+
+$AUTOMAKE || exit 1
+
+grep 'foo\.Po' Makefile.in && exit 1
+exit 0
diff --git a/tests/fpinst2.test b/tests/fpinst2.test
index ed814cb..781d8e2 100755
--- a/tests/fpinst2.test
+++ b/tests/fpinst2.test
@@ -6,9 +6,11 @@
 . $srcdir/defs || exit 1
 
 cat > configure.in << 'END'
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
 PACKAGE=nonesuch
 VERSION=nonesuch
 AC_ARG_PROGRAM
+AC_PROG_MAKE_SET
 AC_PROG_INSTALL
 AC_PROG_INSTALL
 AC_OUTPUT(Makefile)
diff --git a/tests/fpinstall.test b/tests/fpinstall.test
index d5ed8f4..703d6c6 100755
--- a/tests/fpinstall.test
+++ b/tests/fpinstall.test
@@ -6,9 +6,11 @@
 . $srcdir/defs || exit 1
 
 cat > configure.in << 'END'
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
 PACKAGE=nonesuch
 VERSION=nonesuch
 AC_ARG_PROGRAM
+AC_PROG_MAKE_SET
 AC_PROG_INSTALL
 AC_PROG_INSTALL
 AC_OUTPUT(Makefile)
diff --git a/tests/gcj.test b/tests/gcj.test
new file mode 100755
index 0000000..6d035e7
--- /dev/null
+++ b/tests/gcj.test
@@ -0,0 +1,20 @@
+#! /bin/sh
+
+# Test of compiled java.
+
+. $srcdir/defs || exit 1
+
+cat >> configure.in << 'END'
+_AM_DEPENDENCIES(GCJ)
+AC_SUBST(GCJ)
+END
+
+cat > Makefile.am << 'END'
+bin_PROGRAMS = convert
+convert_SOURCES = x/y/convert.java
+END
+
+$ACLOCAL || exit 1
+$AUTOMAKE || exit 1
+
+grep '^x/y/convert' Makefile.in
diff --git a/tests/gcj2.test b/tests/gcj2.test
new file mode 100755
index 0000000..3a4320f
--- /dev/null
+++ b/tests/gcj2.test
@@ -0,0 +1,18 @@
+#! /bin/sh
+
+# Make sure `..' invalid in subdir .o's.
+
+. $srcdir/defs || exit 1
+
+cat >> configure.in << 'END'
+_AM_DEPENDENCIES(GCJ)
+AC_SUBST(GCJ)
+END
+
+cat > Makefile.am << 'END'
+bin_PROGRAMS = convert
+convert_SOURCES = x/../convert.java
+END
+
+$AUTOMAKE && exit 1
+exit 0
diff --git a/tests/gcj3.test b/tests/gcj3.test
new file mode 100755
index 0000000..1782873
--- /dev/null
+++ b/tests/gcj3.test
@@ -0,0 +1,21 @@
+#! /bin/sh
+
+# Make sure dependency tracking works for java.
+
+. $srcdir/defs || exit 1
+
+cat >> configure.in << 'END'
+_AM_DEPENDENCIES(GCJ)
+AC_SUBST(GCJ)
+END
+
+cat > Makefile.am << 'END'
+bin_PROGRAMS = convert
+convert_SOURCES = x/y/convert.java
+END
+
+$ACLOCAL || exit 1
+$AUTOMAKE || exit 1
+
+num=`grep depcomp Makefile.in | wc -l`
+test $num -gt 1
diff --git a/tests/gnits.test b/tests/gnits.test
index e4243be..131d2ac 100755
--- a/tests/gnits.test
+++ b/tests/gnits.test
@@ -8,6 +8,7 @@ cat > configure.in << 'END'
 PACKAGE=nonesuch
 VERSION=3.5.3.2
 AC_ARG_PROGRAM
+AC_PROG_MAKE_SET
 AC_PROG_INSTALL
 AC_OUTPUT(Makefile)
 END
diff --git a/tests/header.test b/tests/header.test
new file mode 100755
index 0000000..9f50e29
--- /dev/null
+++ b/tests/header.test
@@ -0,0 +1,31 @@
+#! /bin/sh
+
+# Test for PR 68.
+
+. $srcdir/defs || exit 1
+
+cat >> configure.in << 'END'
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
+PACKAGE=nonesuch
+VERSION=nonesuch
+AC_SUBST(MY_HEADERS)
+AC_ARG_PROGRAM
+AC_PROG_INSTALL
+AC_PROG_MAKE_SET
+AC_PROG_CC
+AC_OUTPUT(Makefile)
+END
+
+cat > Makefile.am << 'END'
+bin_PROGRAMS = zoo
+zoo_SOURCES = joe.c
+END
+
+: > joe.c
+: > qq.h
+
+$ACLOCAL || exit 1
+$AUTOMAKE || exit 1
+
+grep 'address@hidden' Makefile.in && exit 1
+exit 0
diff --git a/tests/implicit.test b/tests/implicit.test
index 443a753..d2bb72f 100755
--- a/tests/implicit.test
+++ b/tests/implicit.test
@@ -13,6 +13,7 @@ cat > Makefile.am << 'END'
 noinst_PROGRAMS = libapp_1
 END
 
+$ACLOCAL || exit 1
 $AUTOMAKE || exit 1
 
-grep '^libapp_1_OBJECTS' Makefile.in | grep '\.o'
+grep '^libapp_1_OBJECTS' Makefile.in | fgrep '.$(OBJEXT)'
diff --git a/tests/insh.test b/tests/insh.test
index a0ef405..53e6acd 100755
--- a/tests/insh.test
+++ b/tests/insh.test
@@ -5,7 +5,7 @@
 
 . $srcdir/defs || exit 1
 
-rm mkinstalldirs
+rm -f mkinstalldirs
 
 : > Makefile.am
 
diff --git a/tests/insh2.test b/tests/insh2.test
index ae4ea2c..9f35a6c 100755
--- a/tests/insh2.test
+++ b/tests/insh2.test
@@ -12,4 +12,5 @@ END
 
 $AUTOMAKE || exit 1
 
-$MAKE -s -f Makefile.in SHELL=/bin/sh magic | grep install-sh
+fgrep -v @SET_MAKE@ Makefile.in > Makefile.sed
+$MAKE -s -f Makefile.sed SHELL=/bin/sh magic | grep install-sh
diff --git a/tests/install2.test b/tests/install2.test
new file mode 100755
index 0000000..1d5d608
--- /dev/null
+++ b/tests/install2.test
@@ -0,0 +1,39 @@
+#! /bin/sh
+
+# Test for bug in `make dist'
+# From Pavel Roskin.
+
+. $srcdir/defs || exit 1
+
+cat > configure.in << 'END'
+AC_INIT
+dnl Prevent automake from looking in .. and ../..
+AC_CONFIG_AUX_DIR(.)
+AM_INIT_AUTOMAKE(foo, 0.1)
+AC_OUTPUT(Makefile)
+END
+
+cat > Makefile.am << 'END'
+SUBDIRS = .
+END
+
+# Fail gracefully if no autoconf.
+$needs_autoconf
+
+# Likewise for gzip.
+(gzip --version) > /dev/null 2>&1 || exit 77
+
+$ACLOCAL || exit 1
+$AUTOCONF || exit 1
+$AUTOMAKE -a || exit 1
+
+chmod 000 Makefile.am
+
+# On some systems (like DOS and Windows), files are always readable
+test -r Makefile.am && exit 77
+
+./configure || exit 1
+# `dist' should fail because we can't copy Makefile.am.
+$MAKE dist  && exit 1
+
+exit 0
diff --git a/tests/installsh.test b/tests/installsh.test
index a9589d1..e113023 100755
--- a/tests/installsh.test
+++ b/tests/installsh.test
@@ -7,7 +7,7 @@
 . $srcdir/defs || exit 1
 
 : > Makefile.am
-rm install-sh
+rm -f install-sh
 
 # Since the default path includes '../..', we must run this test in
 # yet another subdir.
@@ -17,7 +17,7 @@ cd frob
 
 # If srcdir is relative, we need to modify it.
 case "$srcdir" in
- /*)
+ [\\/]* | ?:[\\/]*)
     ;;
 
  *)
@@ -25,7 +25,7 @@ case "$srcdir" in
     ;;
 esac
 
-AUTOMAKE="../../../automake --amdir=$srcdir/.. --foreign"
+AUTOMAKE="$PERL ../../../automake --libdir=$srcdir/../lib --foreign"
 
 # Now we proceed with the test
 $AUTOMAKE --add-missing > output 2>&1 \
diff --git a/tests/instdata2.test b/tests/instdata2.test
new file mode 100755
index 0000000..569e6c1
--- /dev/null
+++ b/tests/instdata2.test
@@ -0,0 +1,75 @@
+#! /bin/sh
+
+# Test that installing under $exec_prefix is handled by install-exec.
+# Testing with headers for instance.
+
+. $srcdir/defs || exit 1
+
+cat >Makefile.am << 'EOF'
+# User directories.
+inclexecdir = $(exec_prefix)/include
+inclexec_HEADERS = my-config.h
+
+incldatadir = $(prefix)/include
+incldata_HEADERS = my-data.h
+
+## Standard directories: _DATA
+## Commented out are invalid combinations.
+##bin_DATA = data
+##sbin_DATA = data
+##libexec_DATA = data
+data_DATA = data
+sysconf_DATA = data
+localstate_DATA = data
+##lib_DATA = data
+##info_DATA = data
+##man_DATA = data
+##include_DATA = data
+##oldinclude_DATA = data
+pkgdata_DATA = data
+##pkglib_DATA = data
+##pkginclude_DATA = data
+
+## Standard directories: _SCRIPTS
+## Commented out are invalid combinations.
+bin_SCRIPTS = script
+sbin_SCRIPTS = script
+libexec_SCRIPTS = script
+##data_SCRIPTS = script
+##sysconf_SCRIPTS = script
+##localstate_SCRIPTS = script
+##lib_SCRIPTS = script
+##info_SCRIPTS = script
+##man_SCRIPTS = script
+##include_SCRIPTS = script
+##oldinclude_SCRIPTS = script
+pkgdata_SCRIPTS = script
+##pkglib_SCRIPTS = script
+##pkginclude_SCRIPTS = script
+EOF
+
+set -e
+$AUTOMAKE
+
+# install-SCRIPTS targets.
+sed -n '/^install-data-am/,/^  /p' Makefile.in > produced
+
+cat > expected <<'EOF'
+install-data-am: install-dataDATA install-incldataHEADERS \
+       install-pkgdataDATA install-pkgdataSCRIPTS
+EOF
+
+diff expected produced
+
+
+# install-exec targets.
+sed -n '/^install-exec-am/,/^  /p' Makefile.in > produced
+
+cat > expected <<'EOF'
+install-exec-am: install-binSCRIPTS install-inclexecHEADERS \
+       install-libexecSCRIPTS install-localstateDATA \
+EOF
+
+diff expected produced
+
+exit 0
diff --git a/tests/insthook.test b/tests/insthook.test
index e8d9b2a..82876bf 100755
--- a/tests/insthook.test
+++ b/tests/insthook.test
@@ -13,4 +13,5 @@ END
 $AUTOMAKE || exit 1
 
 test "`grep install-exec-hook Makefile.in | wc -l`" -gt 1 || exit 1
-grep -A2 '^install-exec-am:' Makefile.in | grep install-exec-hook
+lnum=`grep -n '^install-exec-am:' Makefile.in | awk -F: '{print $1}'`
+test x$lnum != x && tail +$lnum Makefile.in | head -3 | grep install-exec-hook
diff --git a/tests/instman2.test b/tests/instman2.test
new file mode 100755
index 0000000..fb44010
--- /dev/null
+++ b/tests/instman2.test
@@ -0,0 +1,16 @@
+#! /bin/sh
+
+# Test to make sure mkinstalldirs invocation correct in install-man
+# target.  Bug reported by Gordon Irlam <address@hidden>.
+
+. $srcdir/defs || exit 1
+
+cat > Makefile.am << 'EOF'
+man8_MANS = frob.8
+EOF
+
+: > frob.8
+
+$AUTOMAKE || exit 1
+
+grep '^install-man' Makefile.in
diff --git a/tests/interp.test b/tests/interp.test
index 08c847a..7e21ba1 100755
--- a/tests/interp.test
+++ b/tests/interp.test
@@ -14,6 +14,7 @@ s1 = z.c
 qqq_SOURCES = $(s1)
 END
 
+$ACLOCAL || exit 1
 $AUTOMAKE || exit 1
 
-grep 'z\.o' Makefile.in
+fgrep 'z.$(OBJEXT)' Makefile.in
diff --git a/tests/interp2.test b/tests/interp2.test
index 4404a9d..efaae4e 100755
--- a/tests/interp2.test
+++ b/tests/interp2.test
@@ -17,4 +17,5 @@ x_SOURCES = x.c
 x_LDADD = $(X_EXTRA_LIBS)
 END
 
+$ACLOCAL || exit 1
 $AUTOMAKE
diff --git a/tests/ldadd.test b/tests/ldadd.test
index 80aba9a..0334b2c 100755
--- a/tests/ldadd.test
+++ b/tests/ldadd.test
@@ -10,8 +10,9 @@ VERSION=nonesuch
 AC_PROG_CC
 AC_ARG_PROGRAM
 AC_PROG_INSTALL
-AM_PROG_LIBTOOL
+AC_PROG_LIBTOOL
 AC_OUTPUT(Makefile)
+AC_PROG_MAKE_SET
 LTLIBOBJS="$LTLIBOBJS q.o"
 LIBOBJS="$LIBOBJS q.o"
 AC_SUBST(LTLIBOBJS)
@@ -29,5 +30,6 @@ END
 : > config.sub
 : > q.c
 
+$ACLOCAL || exit 1
 $AUTOMAKE && exit 1
 exit 0
diff --git a/tests/ldflags.test b/tests/ldflags.test
new file mode 100755
index 0000000..21f5207
--- /dev/null
+++ b/tests/ldflags.test
@@ -0,0 +1,37 @@
+#! /bin/sh
+
+# Check for LDFLAGS in conditional.
+# PR 77.
+
+. $srcdir/defs || exit 1
+
+cat > configure.in << 'END'
+AM_INIT_AUTOMAKE(no, 0)
+AC_PROG_CC
+AC_ARG_PROGRAM
+AC_PROG_INSTALL
+AC_PROG_LIBTOOL
+AC_OUTPUT(Makefile)
+AC_PROG_MAKE_SET
+LTLIBOBJS="$LTLIBOBJS q.o"
+LIBOBJS="$LIBOBJS q.o"
+AC_SUBST(LTLIBOBJS)
+AM_CONDITIONAL(USE_SWIG, :)
+END
+
+cat > Makefile.am << 'END'
+if USE_SWIG
+lib_LTLIBRARIES = libtu.la
+libtu_la_SOURCES = foo.c
+libtu_la_LDFLAGS = -module
+endif
+END
+
+: > ltconfig
+: > ltmain.sh
+: > config.guess
+: > config.sub
+: > q.c
+
+$ACLOCAL || exit 1
+$AUTOMAKE
diff --git a/tests/lex.test b/tests/lex.test
index e9b565e..6fdfd23 100755
--- a/tests/lex.test
+++ b/tests/lex.test
@@ -1,10 +1,9 @@
 #! /bin/sh
 
-# Test to make sure that lex source generates correct target.
-
 . $srcdir/defs || exit 1
 
 cat >> configure.in << 'END'
+AC_INIT
 AC_PROG_CC
 AM_PROG_LEX
 END
@@ -17,6 +16,17 @@ END
 
 : > joe.l
 
+$ACLOCAL || exit 1
 $AUTOMAKE || exit 1
 
-grep '\$(LEX)' Makefile.in
+
+# Test to make sure that lex source generates correct target.
+
+fgrep '$(LEX)' Makefile.in || exit 1
+
+# Test to make sure that lex source generates correct clean rule.
+# From Ralf Corsepius.
+
+fgrep joel Makefile.in && exit 1
+
+exit 0
diff --git a/tests/lex2.test b/tests/lex2.test
index 021d1bf..34d45a9 100755
--- a/tests/lex2.test
+++ b/tests/lex2.test
@@ -18,5 +18,6 @@ END
 
 : > joe.l
 
-$AUTOMAKE 2> output || exit 1
+$ACLOCAL || exit 1
+$AUTOMAKE --Wno-error 2> output || exit 1
 test -n "`cat output`"
diff --git a/tests/lex3.test b/tests/lex3.test
new file mode 100755
index 0000000..2d652f4
--- /dev/null
+++ b/tests/lex3.test
@@ -0,0 +1,69 @@
+#! /bin/sh
+
+# Test associated with PR 19.
+# From Matthew D. Langston.
+
+. $srcdir/defs || exit 1
+
+# Fail gracefully if no autoconf.
+$needs_autoconf
+
+# Likewise for gcc.
+(gcc -v) > /dev/null 2>&1 || exit 77
+
+# Ignore user CFLAGS.
+CFLAGS=
+export CFLAGS
+
+# Likewise for gzip.
+(gzip --version) > /dev/null 2>&1 || exit 77
+
+cat > configure.in << 'END'
+AC_INIT
+dnl Prevent automake from looking in .. and ../..
+AC_CONFIG_AUX_DIR(.)
+AM_INIT_AUTOMAKE(am_lex_bug, 0.1.1)
+
+dnl Checks for programs.
+AC_PROG_CC
+AM_PROG_LEX
+AC_PROG_YACC
+AC_OUTPUT(Makefile)
+END
+
+cat > Makefile.am << 'END'
+AUTOMAKE_OPTIONS  = foreign
+LDADD             = @LEXLIB@
+
+noinst_PROGRAMS   = foo
+foo_SOURCES       = foo.l
+END
+
+cat > foo.l << 'END'
+%%
+"END"   return EOF;
+.
+%%
+int
+main ()
+{
+  while (yylex () != EOF)
+    ;
+
+  return 0;
+}
+END
+
+set -e
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE -a
+./configure
+$MAKE
+echo 'This is the END' | ./foo
+$MAKE distcheck
+
+# foo.c must be shipped.
+gunzip am_lex_bug-0.1.1.tar.gz
+tar tf am_lex_bug-0.1.1.tar | fgrep foo.c
diff --git a/tests/lex4.test b/tests/lex4.test
new file mode 100755
index 0000000..b40fc54
--- /dev/null
+++ b/tests/lex4.test
@@ -0,0 +1,24 @@
+#! /bin/sh
+
+# Test to make sure dependencies work with .ll files.
+# Test synthesized from PR automake/6.
+
+. $srcdir/defs || exit 1
+
+cat >> configure.in << 'END'
+AC_PROG_CC
+AC_PROG_CXX
+AM_PROG_LEX
+END
+
+cat > Makefile.am << 'END'
+bin_PROGRAMS = zoo
+zoo_SOURCES = joe.ll
+END
+
+: > joe.ll
+
+$ACLOCAL || exit 1
+$AUTOMAKE || exit 1
+
+fgrep joe.Po Makefile.in
diff --git a/tests/libobj.test b/tests/libobj.test
index 7918f86..2ec2a9e 100755
--- a/tests/libobj.test
+++ b/tests/libobj.test
@@ -7,9 +7,11 @@
 . $srcdir/defs || exit 1
 
 cat > configure.in << 'END'
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
 PACKAGE=nonesuch
 VERSION=nonesuch
 AC_PROG_CC
+AC_PROG_MAKE_SET
 AC_ARG_PROGRAM
 AC_PROG_INSTALL
 AC_PROG_RANLIB
@@ -26,4 +28,5 @@ END
 : > fsusage.c
 : > mountlist.c
 
+$ACLOCAL || exit 1
 $AUTOMAKE
diff --git a/tests/libobj10.test b/tests/libobj10.test
new file mode 100755
index 0000000..c576cfb
--- /dev/null
+++ b/tests/libobj10.test
@@ -0,0 +1,31 @@
+#! /bin/sh
+
+# Do not complain about the inexistence of a source for LIBOBJS if
+# it's in BUILT_SOURCES.  Reported by Erez Zadok
+
+. $srcdir/defs || exit 1
+
+cat > configure.in << 'END'
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
+PACKAGE=nonesuch
+VERSION=nonesuch
+AC_PROG_CC
+AC_ARG_PROGRAM
+AC_PROG_MAKE_SET
+AC_PROG_RANLIB
+AC_PROG_INSTALL
+LIBOBJS="$LIBOBJS foo.o"
+AC_OUTPUT(Makefile)
+END
+
+cat > Makefile.am << 'END'
+noinst_LIBRARIES = libfoo.a
+libfoo_a_LIBADD = @LIBOBJS@
+END
+
+$ACLOCAL || exit 1
+$AUTOMAKE && exit 1
+
+echo 'BUILT_SOURCES = foo.c' >> Makefile.am
+
+$AUTOMAKE || exit 1
diff --git a/tests/libobj2.test b/tests/libobj2.test
index fa9b889..6a185cb 100755
--- a/tests/libobj2.test
+++ b/tests/libobj2.test
@@ -6,9 +6,11 @@
 . $srcdir/defs || exit 1
 
 cat > configure.in << 'END'
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
 PACKAGE=nonesuch
 VERSION=nonesuch
 AC_PROG_CC
+AC_PROG_MAKE_SET
 AC_ARG_PROGRAM
 AC_PROG_INSTALL
 AC_PROG_RANLIB
@@ -26,6 +28,7 @@ END
 
 : > subdir/fsusage.c
 
+$ACLOCAL || exit 1
 $AUTOMAKE || exit 1
 
 grep 'fsusage\.c' subdir/Makefile.in
diff --git a/tests/libobj4.test b/tests/libobj4.test
index 226e509..c11ddd0 100755
--- a/tests/libobj4.test
+++ b/tests/libobj4.test
@@ -14,4 +14,5 @@ AC_PROG_CC
 AC_REPLACE_FUNCS(foo)
 END
 
+$ACLOCAL || exit 1
 $AUTOMAKE
diff --git a/tests/libobj5.test b/tests/libobj5.test
index 8ad45e9..9af320d 100755
--- a/tests/libobj5.test
+++ b/tests/libobj5.test
@@ -18,5 +18,6 @@ END
 
 : > foo.c
 
+$ACLOCAL || exit 1
 $AUTOMAKE || exit 1
 fgrep foo.c Makefile.in
diff --git a/tests/libobj6.test b/tests/libobj6.test
index 9094cf5..1dd1fa3 100755
--- a/tests/libobj6.test
+++ b/tests/libobj6.test
@@ -6,9 +6,11 @@
 . $srcdir/defs || exit 1
 
 cat > configure.in << 'END'
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
 PACKAGE=nonesuch
 VERSION=nonesuch
 AC_PROG_CC
+AC_PROG_MAKE_SET
 AC_ARG_PROGRAM
 AC_PROG_INSTALL
 AC_PROG_RANLIB
@@ -25,4 +27,5 @@ END
 : > fsusage.c
 : > mountlist.c
 
+$ACLOCAL || exit 1
 $AUTOMAKE
diff --git a/tests/libobj7.test b/tests/libobj7.test
index ed0d101..e931205 100755
--- a/tests/libobj7.test
+++ b/tests/libobj7.test
@@ -5,9 +5,11 @@
 . $srcdir/defs || exit 1
 
 cat > configure.in << 'END'
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
 PACKAGE=nonesuch
 VERSION=nonesuch
 AC_PROG_CC
+AC_PROG_MAKE_SET
 AC_ARG_PROGRAM
 AC_PROG_INSTALL
 AC_PROG_RANLIB
@@ -25,6 +27,7 @@ END
 : > dirname.c
 : > strsignal.c
 
+$ACLOCAL || exit 1
 $AUTOMAKE || exit 1
 
 sed -n -e ': again
diff --git a/tests/libobj8.test b/tests/libobj8.test
index a4b4090..ceca716 100755
--- a/tests/libobj8.test
+++ b/tests/libobj8.test
@@ -6,9 +6,11 @@
 . $srcdir/defs || exit 1
 
 cat > configure.in << 'END'
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
 PACKAGE=nonesuch
 VERSION=nonesuch
 AC_PROG_CC
+AC_PROG_MAKE_SET
 AC_ARG_PROGRAM
 AC_PROG_INSTALL
 AC_PROG_RANLIB
@@ -31,6 +33,7 @@ END
 : > ansi2knr.1
 : > ansi2knr.c
 
+$ACLOCAL || exit 1
 $AUTOMAKE || exit 1
 
 grep 'strsignal_.c:' Makefile.in
diff --git a/tests/libobj9.test b/tests/libobj9.test
new file mode 100755
index 0000000..fa9412f
--- /dev/null
+++ b/tests/libobj9.test
@@ -0,0 +1,31 @@
+#! /bin/sh
+
+# Test for report from Jim Meyering.
+# LIBOBJS must handle $ac_objext.
+
+. $srcdir/defs || exit 1
+
+cat > configure.in << 'END'
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
+PACKAGE=nonesuch
+VERSION=nonesuch
+AC_PROG_CC
+AC_PROG_MAKE_SET
+AC_ARG_PROGRAM
+AC_PROG_INSTALL
+AC_PROG_RANLIB
+AC_EXEEXT
+LIBOBJS="$LIBOBJS mountlist.$ac_objext"
+AC_OUTPUT(Makefile)
+END
+
+cat > Makefile.am << 'END'
+noinst_LIBRARIES = libtu.a
+libtu_a_SOURCES =
+libtu_a_LIBADD = @LIBOBJS@
+END
+
+: > mountlist.c
+
+$ACLOCAL || exit 1
+$AUTOMAKE || exit 1
diff --git a/tests/library.test b/tests/library.test
index baf6109..e631da5 100755
--- a/tests/library.test
+++ b/tests/library.test
@@ -17,4 +17,5 @@ lib_LIBRARIES = libfoo.a
 libfoo_a_DEPENDENCIES = libzot.a
 END
 
+$ACLOCAL || exit 1
 $AUTOMAKE
diff --git a/tests/libtool.test b/tests/libtool.test
new file mode 100755
index 0000000..03cc5b9
--- /dev/null
+++ b/tests/libtool.test
@@ -0,0 +1,24 @@
+#! /bin/sh
+
+# Make sure libtool is removed.
+# Report from Kevin Dalley
+
+. $srcdir/defs || exit 1
+
+cat >> configure.in << 'END'
+AC_LIBTOOL_DLOPEN
+AC_DISABLE_SHARED
+AC_PROG_LIBTOOL
+AC_SUBST(LIBTOOL_DEPS)
+END
+
+: > Makefile.am
+
+: > ltmain.sh
+: > config.guess
+: > config.sub
+
+$ACLOCAL || exit 1
+$AUTOMAKE || exit 1
+
+grep 'rm -f libtool' Makefile.in
diff --git a/tests/libtool2.test b/tests/libtool2.test
new file mode 100755
index 0000000..f02802c
--- /dev/null
+++ b/tests/libtool2.test
@@ -0,0 +1,41 @@
+#! /bin/sh
+
+# Make sure libtool clean targets exist.
+# Report from Eric Magnien.
+
+. $srcdir/defs || exit 1
+
+# This test requires libtoolize.
+libtoolize --version || exit 77
+
+cat > configure.in << 'END'
+AC_INIT
+AM_INIT_AUTOMAKE(mypackage,0.1)
+
+AC_PROG_CC
+AC_PROG_LIBTOOL
+
+AC_CONFIG_FILES([
+  sub/Makefile
+  Makefile
+])
+AC_OUTPUT
+END
+
+cat > Makefile.am << 'END'
+SUBDIR = subdir
+lib_LTLIBRARIES = libfoo.la
+libfoo_la_SOURCES = foo.c
+END
+
+mkdir sub
+cat > sub/Makefile.am << 'END'
+lib_LTLIBRARIES = libfoo.la
+libfoo_la_SOURCES = foo.c
+END
+
+$ACLOCAL || exit 1
+: > ltmain.sh
+$AUTOMAKE -a || exit 1
+
+grep 'rm -f .*\.lo' sub/Makefile.in
diff --git a/tests/link_c_cxx.test b/tests/link_c_cxx.test
index 8ff69a4..28ad8a5 100755
--- a/tests/link_c_cxx.test
+++ b/tests/link_c_cxx.test
@@ -18,6 +18,7 @@ END
 : > lava.c
 : > lamp.cxx
 
+$ACLOCAL || exit 1
 $AUTOMAKE || exit 1
 
 
diff --git a/tests/link_dist.test b/tests/link_dist.test
new file mode 100755
index 0000000..f085c9a
--- /dev/null
+++ b/tests/link_dist.test
@@ -0,0 +1,37 @@
+#! /bin/sh
+
+# Test to make sure the linker for a dist_*_SOURCES can override that for
+# *_SOURCES
+# Richard Boulton <address@hidden>
+
+. $srcdir/defs || exit 1
+
+cat >> configure.in << 'END'
+AC_PROG_CC
+AC_PROG_CXX
+END
+
+cat > Makefile.am << 'END'
+bin_PROGRAMS = lavalamp
+lavalamp_SOURCES = lava.c
+dist_lavalamp_SOURCES = lamp.cxx
+END
+
+: > lava.c
+: > lamp.cxx
+
+$ACLOCAL || exit 1
+$AUTOMAKE || exit 1
+
+
+# We should only see the C++ linker in the rules of `Makefile.in'.
+
+# Look for this macro not at the beginning of any line; that will have
+# to be good enough for now.
+grep '.\$(CXXLINK)' Makefile.in  || exit 1
+
+# We should not see these patterns:
+grep '.\$(FLINK)' Makefile.in && exit 1
+grep '.\$(LINK)'  Makefile.in && exit 1
+
+exit 0
diff --git a/tests/link_f_c.test b/tests/link_f_c.test
index 8dea51c..194dc5b 100755
--- a/tests/link_f_c.test
+++ b/tests/link_f_c.test
@@ -18,6 +18,7 @@ END
 : > lava.c
 : > lamp.f
 
+$ACLOCAL || exit 1
 $AUTOMAKE || exit 1
 
 
diff --git a/tests/link_f_c_cxx.test b/tests/link_f_c_cxx.test
index 8155576..743c8e3 100755
--- a/tests/link_f_c_cxx.test
+++ b/tests/link_f_c_cxx.test
@@ -20,6 +20,7 @@ END
 : > lamp.cxx
 : > lamp2.f
 
+$ACLOCAL || exit 1
 $AUTOMAKE || exit 1
 
 
diff --git a/tests/link_f_cxx.test b/tests/link_f_cxx.test
index c90b263..11e21c5 100755
--- a/tests/link_f_cxx.test
+++ b/tests/link_f_cxx.test
@@ -18,6 +18,7 @@ END
 : > lava.cxx
 : > lamp.f
 
+$ACLOCAL || exit 1
 $AUTOMAKE || exit 1
 
 
diff --git a/tests/listval.test b/tests/listval.test
new file mode 100755
index 0000000..824289c
--- /dev/null
+++ b/tests/listval.test
@@ -0,0 +1,27 @@
+#! /bin/sh
+
+# Test to make sure variable is expanded properly.
+# From Adam J. Richter.
+
+. $srcdir/defs || exit 1
+
+cat >> configure.in << 'END'
+AC_SUBST(LTLIBOBJS)
+AC_PROG_LIBTOOL
+END
+
+cat > Makefile.am << 'END'
+lib_LTLIBRARIES = libpanel_applet.la
+libpanel_applet_la_SOURCES = \
+       applet-widget.c
+libpanel_applet_la_LDFLAGS = -version-info 0:1:0 -rpath $(libdir)
+libpanel_applet_la_LIBADD = -lm
+END
+
+: > ltconfig
+: > ltmain.sh
+: > config.guess
+: > config.sub
+
+$ACLOCAL || exit 1
+$AUTOMAKE
diff --git a/tests/ltdeps.test b/tests/ltdeps.test
new file mode 100755
index 0000000..1a2ea93
--- /dev/null
+++ b/tests/ltdeps.test
@@ -0,0 +1,45 @@
+#! /bin/sh
+
+# Test to make sure libtool library dependencies are correct.
+# Report from Lars J. Aas.
+
+. $srcdir/defs || exit 1
+
+cat >> configure.in << 'END'
+AC_PROG_LIBTOOL
+AC_PROG_CXX
+AM_CONDITIONAL(HACKING_COMPACT_BUILD, whatever)
+END
+
+cat > Makefile.am << 'END'
+RegularSources = \
+        SbBSPTree.cpp \
+        SbBox2f.cpp \
+        SbBox2s.cpp
+
+LinkHackSources = \
+        all.cpp
+
+if HACKING_COMPACT_BUILD
+BuildSources = $(LinkHackSources)
+else
+BuildSources = $(RegularSources)
+endif
+
+noinst_LTLIBRARIES = libbase.la
+libbase_la_SOURCES = $(BuildSources)
+
+EXTRA_libbase_la_SOURCES = \
+        $(RegularSources) $(LinkHackSources)
+END
+
+: > ltconfig
+: > ltmain.sh
+: > config.guess
+: > config.sub
+
+$ACLOCAL || exit 1
+$AUTOMAKE || exit 1
+
+grep 'OBJECTS =$' Makefile.in && exit 1
+exit 0
diff --git a/tests/ltlibobjs.test b/tests/ltlibobjs.test
new file mode 100755
index 0000000..fed7ae2
--- /dev/null
+++ b/tests/ltlibobjs.test
@@ -0,0 +1,25 @@
+#! /bin/sh
+
+# Test to make sure LTLIBOBJS alone works ok.
+# Report from Vadim Zeitlin.
+
+. $srcdir/defs || exit 1
+
+cat >> configure.in << 'END'
+AC_SUBST(LTLIBOBJS)
+AC_PROG_LIBTOOL
+END
+
+cat > Makefile.am << 'END'
+lib_LTLIBRARIES = libtu.la
+libtu_la_SOURCES = foo.c
+libtu_la_LIBADD = @LTLIBOBJS@
+END
+
+: > ltconfig
+: > ltmain.sh
+: > config.guess
+: > config.sub
+
+$ACLOCAL || exit 1
+$AUTOMAKE
diff --git a/tests/make.test b/tests/make.test
new file mode 100755
index 0000000..23037f7
--- /dev/null
+++ b/tests/make.test
@@ -0,0 +1,47 @@
+#! /bin/sh
+
+# Test to make sure `make' check works.
+# From Ralf Corsepius.
+
+. $srcdir/defs || exit 1
+
+cat > configure.in << 'END'
+AC_INIT(Makefile.am)
+AM_INIT_AUTOMAKE(foo,0,no)
+AM_MAKE_INCLUDE
+AC_OUTPUT(Makefile)
+END
+
+: > Makefile.am
+
+$needs_autoconf
+$needs_gnu_make
+
+set -e
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE
+
+export ACLOCAL
+export AUTOCONF
+export AUTOMAKE
+
+# Do the test twice -- once with make and once with make -w.
+# This tests for a bug reported by Rainer Orth.
+
+save="$MAKE"
+for flag in '' -w; do
+   MAKE="$save $flag" ./configure
+
+   fgrep 'am__include = #' Makefile && exit 1
+
+   touch configure.in
+   $MAKE $flag
+
+   fgrep 'am__include = #' Makefile && exit 1
+
+   rm -f config.cache
+done
+
+exit 0
diff --git a/tests/makevars.test b/tests/makevars.test
new file mode 100755
index 0000000..323c843
--- /dev/null
+++ b/tests/makevars.test
@@ -0,0 +1,19 @@
+#! /bin/sh
+
+# Test to make sure that automake includes the needed variables,
+# but not too many.
+
+. $srcdir/defs || exit 1
+
+# Find the macros wanted by Automake.
+$ACLOCAL || exit 1
+
+# Create some dummy Makefile.in.
+: > Makefile.am
+
+$AUTOMAKE || exit 1
+
+# We are definitely not needing a compiler or preprocessor.
+egrep '^(CC|CPP|CXX|CXXCPP) =' Makefile.in && exit 1
+
+exit 0
diff --git a/tests/man.test b/tests/man.test
new file mode 100755
index 0000000..c6a6d81
--- /dev/null
+++ b/tests/man.test
@@ -0,0 +1,16 @@
+#! /bin/sh
+
+# Test to make sure `dist' prefix works with man pages.
+
+. $srcdir/defs || exit 1
+
+cat > Makefile.am << 'END'
+dist_man_MANS = foo.1
+nodist_man1_MANS = bar.man
+END
+
+: > foo.1
+: > bar.man
+
+$AUTOMAKE || exit 1
+grep '^MANS ' Makefile.in
diff --git a/tests/mclean.test b/tests/mclean.test
new file mode 100755
index 0000000..78b8794
--- /dev/null
+++ b/tests/mclean.test
@@ -0,0 +1,16 @@
+#! /bin/sh
+
+# Make sure MAINTAINERCLEANFILES works.
+# Report from Paul D. Smith.
+
+. $srcdir/defs || exit 1
+
+cat > Makefile.am << 'END'
+MAINTAINERCLEANFILES = foo
+END
+
+: > FOO
+
+$AUTOMAKE || exit 1
+
+grep 'rm -f .*MAINTAINERCLEANFILES' Makefile.in
diff --git a/tests/mdate3.test b/tests/mdate3.test
index 26618cb..8440c5a 100755
--- a/tests/mdate3.test
+++ b/tests/mdate3.test
@@ -25,6 +25,7 @@ mkdir foo
 mv install-sh foo
 mv missing foo
 mv mkinstalldirs foo
+mv depcomp foo
 
 $AUTOMAKE || exit 1
 
diff --git a/tests/mdate4.test b/tests/mdate4.test
new file mode 100755
index 0000000..d29aaab
--- /dev/null
+++ b/tests/mdate4.test
@@ -0,0 +1,33 @@
+#! /bin/sh
+
+# Test to make sure that mdate-sh is added to the right directory.
+# Report from Kevin Dalley
+
+. $srcdir/defs || exit 1
+
+cat > configure.in << 'END'
+AC_INIT
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
+AC_ARG_PROGRAM
+AC_PROG_INSTALL
+AC_PROG_MAKE_SET
+AC_OUTPUT(Makefile sub/Makefile)
+END
+
+cat > Makefile.am << 'END'
+SUBDIRS = sub
+END
+
+mkdir sub
+
+cat > sub/Makefile.am << 'END'
+info_TEXINFOS = textutils.texi
+END
+
+cat > sub/textutils.texi << 'END'
address@hidden version.texi
address@hidden textutils.info
+END
+
+$AUTOMAKE -a || exit 1
+test -f sub/mdate-sh
diff --git a/tests/nodep.test b/tests/nodep.test
new file mode 100755
index 0000000..11c7fd7
--- /dev/null
+++ b/tests/nodep.test
@@ -0,0 +1,26 @@
+#! /bin/sh
+
+# Test to make sure no-dependencies option does the right thing.
+# Bug report from Greg A. Woods.
+
+. $srcdir/defs || exit 1
+
+cat > Makefile.am << 'END'
+AUTOMAKE_OPTIONS = no-dependencies
+bin_PROGRAMS = zardoz
+zardoz_SOURCES = y.c
+END
+
+cat >> configure.in << 'END'
+AC_PROG_CC
+END
+
+mkdir x
+
+: > y.c
+
+$ACLOCAL || exit 1
+$AUTOMAKE || exit 1
+
+grep '%' Makefile.in && exit 1
+exit 0
diff --git a/tests/nodepcomp.test b/tests/nodepcomp.test
new file mode 100755
index 0000000..8f59c4b
--- /dev/null
+++ b/tests/nodepcomp.test
@@ -0,0 +1,11 @@
+#! /bin/sh
+
+# Test to make sure depcomp isn't always required.
+
+. $srcdir/defs || exit 1
+
+rm -f depcomp
+
+: > Makefile.am
+
+$AUTOMAKE
diff --git a/tests/nodist.test b/tests/nodist.test
new file mode 100755
index 0000000..08b8088
--- /dev/null
+++ b/tests/nodist.test
@@ -0,0 +1,28 @@
+#! /bin/sh
+
+# Test to make sure dist_*_SOURCES and nodist_*_SOURCES work.
+
+. $srcdir/defs || exit 1
+
+echo AC_PROG_CC >> configure.in
+
+cat > Makefile.am << 'END'
+bin_PROGRAMS = eyeball
+
+eyeball_SOURCES = a.c
+nodist_eyeball_SOURCES = b.c
+dist_eyeball_SOURCES = c.c
+END
+
+: > a.c
+: > b.c
+: > c.c
+
+$ACLOCAL || exit 1
+$AUTOMAKE || exit 1
+
+grep '^am_eyeball_OBJECTS' Makefile.in || exit 1
+grep '^DIST_SOURCES =' Makefile.in || exit 1
+grep '^DIST_SOURCES =.*nodist' Makefile.in && exit 1
+
+exit 0
diff --git a/tests/noinstdir.test b/tests/noinstdir.test
new file mode 100755
index 0000000..6c04edf
--- /dev/null
+++ b/tests/noinstdir.test
@@ -0,0 +1,31 @@
+#! /bin/sh
+
+# Test to make sure that noinst_* and check_* are not installed.
+# From Pavel Roskin.
+
+. $srcdir/defs || exit 1
+
+cat > Makefile.am << 'END'
+noinst_SCRIPTS = foo.sh
+noinst_DATA = foo.xpm
+noinst_LIBRARIES = libfoo.a
+noinst_PROGRAMS = foo
+noinst_HEADERS = foo.h
+check_SCRIPTS = bar.sh
+check_DATA = bar.xpm
+check_LIBRARIES = libbar.a
+check_PROGRAMS = bar
+check_HEADERS = bar.h
+END
+
+cat >> configure.in << 'END'
+AC_PROG_CC
+AC_PROG_RANLIB
+END
+
+$ACLOCAL || exit 1
+$AUTOMAKE || exit 1
+
+grep 'noinstdir' Makefile.in && exit 1
+grep 'checkdir' Makefile.in && exit 1
+exit 0
diff --git a/tests/nolink.test b/tests/nolink.test
new file mode 100755
index 0000000..ed13cfe
--- /dev/null
+++ b/tests/nolink.test
@@ -0,0 +1,28 @@
+#! /bin/sh
+
+# Make sure Automake does not emit a link rule for unknown languages.
+
+. $srcdir/defs || exit 1
+
+cat >> configure.in << 'END'
+AC_INIT
+AM_INIT_AUTOMAKE([meal],[123])
+AC_OUTPUT([Makefile])
+END
+
+cat > Makefile.am << 'END'
+AUTOMAKE_OPTIONS = no-exeext
+
+bin_PROGRAMS = meal
+meal_SOURCES = beans.veg beef.meat
+
+meal: beans.veg beef.meat
+       cat beans.veg beef.meat > meal
+END
+
+$ACLOCAL || exit 1
+$AUTOMAKE || exit 1
+
+grep '^meal.*:' Makefile.in | grep -v beef.meat && exit 1
+
+exit 0
diff --git a/tests/nostdinc.test b/tests/nostdinc.test
new file mode 100755
index 0000000..2faf1d2
--- /dev/null
+++ b/tests/nostdinc.test
@@ -0,0 +1,21 @@
+#! /bin/sh
+
+# Test to make sure nostdinc option works correctly.
+
+. $srcdir/defs || exit 1
+
+cat >> configure.in << 'END'
+AC_PROG_CC
+END
+
+cat > Makefile.am << 'END'
+AUTOMAKE_OPTIONS = nostdinc
+bin_PROGRAMS = foo
+foo_SOURCES = foo.c
+END
+
+$ACLOCAL || exit 1
+$AUTOMAKE || exit 1
+
+fgrep -e '-I.' Makefile.in && exit 1
+exit 0
diff --git a/tests/number.test b/tests/number.test
index d4af17e..3ab95db 100755
--- a/tests/number.test
+++ b/tests/number.test
@@ -13,6 +13,7 @@ cat > Makefile.am << 'END'
 bin_PROGRAMS = zardoz
 END
 
+$ACLOCAL || exit 1
 $AUTOMAKE || exit 1
 
 count=`grep -c '^zardoz_OBJECTS' Makefile.in`
diff --git a/tests/objc.test b/tests/objc.test
deleted file mode 100755
index 1b8b4db..0000000
--- a/tests/objc.test
+++ /dev/null
@@ -1,22 +0,0 @@
-#! /bin/sh
-
-# Test to make sure LINK defined for Objective C.
-
-. $srcdir/defs || exit 1
-
-echo 'AC_SUBST(OBJC)' >> configure.in
-
-cat > Makefile.am << 'END'
-bin_PROGRAMS = foo
-foo_SOURCES = foo.m
-
-SUFFIXES = .m
-.m.o:
-       whatever
-END
-
-: > foo.m
-
-$AUTOMAKE || exit 1
-
-grep '^LINK' Makefile.in
diff --git a/tests/obsolete2.test b/tests/obsolete2.test
new file mode 100755
index 0000000..efb9cd2
--- /dev/null
+++ b/tests/obsolete2.test
@@ -0,0 +1,13 @@
+#! /bin/sh
+
+# Test to make sure obsolete macros really are.
+
+. $srcdir/defs || exit 1
+
+echo AM_EXEEXT >> configure.in
+
+: > Makefile.am
+
+$AUTOMAKE 2> output && exit 1
+
+grep 'AC_EXEEXT' output
diff --git a/tests/output.test b/tests/output.test
index dfb609c..92e9dbb 100755
--- a/tests/output.test
+++ b/tests/output.test
@@ -5,9 +5,11 @@
 . $srcdir/defs || exit 1
 
 cat > configure.in << 'END'
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
 PACKAGE=nonesuch
 VERSION=nonesuch
 AC_ARG_PROGRAM
+AC_PROG_MAKE_SET
 AC_PROG_INSTALL
 AC_OUTPUT(Makefile frob/zardoz)
 END
diff --git a/tests/output2.test b/tests/output2.test
index 711de2d..0a22168 100755
--- a/tests/output2.test
+++ b/tests/output2.test
@@ -5,9 +5,11 @@
 . $srcdir/defs || exit 1
 
 cat > configure.in << 'END'
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
 PACKAGE=nonesuch
 VERSION=nonesuch
 AC_ARG_PROGRAM
+AC_PROG_MAKE_SET
 AC_PROG_INSTALL
 AC_OUTPUT(Makefile intl/intlh.inst po/Makefile.in misc/gettextize)
 END
diff --git a/tests/output3.test b/tests/output3.test
index 311fe03..fb2163b 100755
--- a/tests/output3.test
+++ b/tests/output3.test
@@ -5,9 +5,11 @@
 . $srcdir/defs || exit 1
 
 cat > configure.in << 'END'
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
 PACKAGE=nonesuch
 VERSION=nonesuch
 AC_ARG_PROGRAM
+AC_PROG_MAKE_SET
 AC_PROG_INSTALL
 AC_OUTPUT([Makefile
 tests/Makefile tests/defs],
diff --git a/tests/output4.test b/tests/output4.test
index 91e960f..e204676 100755
--- a/tests/output4.test
+++ b/tests/output4.test
@@ -5,9 +5,11 @@
 . $srcdir/defs || exit 1
 
 cat > configure.in << 'END'
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
 PACKAGE=nonesuch
 VERSION=nonesuch
 AC_ARG_PROGRAM
+AC_PROG_MAKE_SET
 AC_PROG_INSTALL
 AC_OUTPUT(tests/Makefile tests/defs)
 END
diff --git a/tests/output5.test b/tests/output5.test
index 8bfd99f..d490a3e 100755
--- a/tests/output5.test
+++ b/tests/output5.test
@@ -8,6 +8,7 @@ cat > configure.in << 'END'
 PACKAGE=nonesuch
 VERSION=nonesuch
 AC_ARG_PROGRAM
+AC_PROG_MAKE_SET
 AC_PROG_INSTALL
 AC_OUTPUT()
 END
diff --git a/tests/package.test b/tests/package.test
index f920d7e..a8f84e9 100755
--- a/tests/package.test
+++ b/tests/package.test
@@ -6,6 +6,7 @@
 
 cat > configure.in << 'END'
 AC_ARG_PROGRAM
+AC_PROG_MAKE_SET
 AC_PROG_INSTALL
 AC_OUTPUT(Makefile)
 END
diff --git a/tests/parse.test b/tests/parse.test
index fb7cec5..3e51294 100755
--- a/tests/parse.test
+++ b/tests/parse.test
@@ -5,9 +5,11 @@
 . $srcdir/defs || exit 1
 
 cat > configure.in << 'END'
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
 PACKAGE=nonesuch
 VERSION=nonesuch
 AC_PROG_CC
+AC_PROG_MAKE_SET
 AC_ARG_PROGRAM
 AC_PROG_INSTALL
 AC_PROG_RANLIB
@@ -21,6 +23,7 @@ zar.c\
 doz.c
 END
 
+$ACLOCAL || exit 1
 $AUTOMAKE || exit 1
 
 fgrep zar.cdoz Makefile.in && exit 1
diff --git a/tests/pluseq2.test b/tests/pluseq2.test
index 69b8b2d..9be0a5e 100755
--- a/tests/pluseq2.test
+++ b/tests/pluseq2.test
@@ -25,5 +25,5 @@ END
 : > dog
 
 $AUTOMAKE || exit 1
-fgrep '= zar doz' Makefile.in || exit 1
-fgrep '= dog' Makefile.in
+grep 'CHECK_TRUE.*zar doz' Makefile.in || exit 1
+grep 'CHECK_FALSE.*dog' Makefile.in
diff --git a/tests/pluseq3.test b/tests/pluseq3.test
index f6d935e..71d4ccf 100755
--- a/tests/pluseq3.test
+++ b/tests/pluseq3.test
@@ -25,6 +25,13 @@ END
 : > doz
 : > dog
 
-$AUTOMAKE || exit 1
-grep '= zar  *doz' Makefile.in || exit 1
-fgrep '= dog' Makefile.in
+set -e
+
+$AUTOMAKE
+
+grep 'address@hidden@data_DATA = zar \\$' Makefile.in
+grep 'address@hidden@ doz$' Makefile.in
+
+grep 'address@hidden@data_DATA = dog$' Makefile.in
+
+exit 0
diff --git a/tests/pluseq4.test b/tests/pluseq4.test
index 9d67013..5f8637f 100755
--- a/tests/pluseq4.test
+++ b/tests/pluseq4.test
@@ -13,5 +13,6 @@ END
 
 : > foo.c
 
+$ACLOCAL || exit 1
 $AUTOMAKE || exit 1
 fgrep '@CC@ -Dwhatever' Makefile.in
diff --git a/tests/pluseq6.test b/tests/pluseq6.test
new file mode 100755
index 0000000..cf4a36a
--- /dev/null
+++ b/tests/pluseq6.test
@@ -0,0 +1,19 @@
+#! /bin/sh
+
+# Test that `+=' works with standard header-vars.
+
+. $srcdir/defs || exit 1
+
+echo 'AC_SUBST(ZZZ)' >> configure.in
+
+# If you do this in a real Makefile.am, I will kill you.
+cat > Makefile.am << 'END'
+mandir += foo
+zq = zzz
+END
+
+$AUTOMAKE || exit 1
+fgrep '@mandir@ foo' Makefile.in || exit 1
+
+num=`grep '^mandir =' Makefile.in | wc -l`
+test $num -eq 1
diff --git a/tests/pluseq7.test b/tests/pluseq7.test
new file mode 100755
index 0000000..95d4b68
--- /dev/null
+++ b/tests/pluseq7.test
@@ -0,0 +1,23 @@
+#! /bin/sh
+
+# Test that `+=' fails when required.
+
+. $srcdir/defs || exit 1
+
+cat >> configure.in << 'END'
+AC_PROG_CC
+AC_PROG_RANLIB
+END
+
+# If you do this in a real Makefile.am, I will kill you.
+cat > Makefile.am << 'END'
+lib_LIBRARIES = libq.a
+libq_a_SOURCES = q.c
+AR += qq
+END
+
+: > q.c
+
+$ACLOCAL || exit 1
+$AUTOMAKE && exit 1
+exit 0
diff --git a/tests/pluseq8.test b/tests/pluseq8.test
new file mode 100755
index 0000000..bd974bb
--- /dev/null
+++ b/tests/pluseq8.test
@@ -0,0 +1,23 @@
+#! /bin/sh
+
+# Another `+=' test.  From Paul Berrevoets.
+
+. $srcdir/defs || exit 1
+
+cat > Makefile.am << 'END'
+VAR = \
+    one \
+    two
+VAR += three
+END
+
+$AUTOMAKE || exit 1
+
+sed -n -e '/^VAR =.*\\$/ {
+   :loop
+    p
+    n
+    /\\$/ b loop
+    p
+    n
+   }' Makefile.in | grep three
diff --git a/tests/ppf77.test b/tests/ppf77.test
new file mode 100755
index 0000000..7aca16d
--- /dev/null
+++ b/tests/ppf77.test
@@ -0,0 +1,20 @@
+#! /bin/sh
+
+# Test to make sure preprocessed F77 works.
+# Report from Jochen Kuepper.
+
+. $srcdir/defs || exit 1
+
+cat >> configure.in << 'END'
+AC_PROG_F77
+END
+
+cat > Makefile.am << 'END'
+bin_PROGRAMS = ppf
+ppf_SOURCES = foo.F q.r
+END
+
+: > foo.F
+: > q.r
+
+$AUTOMAKE
diff --git a/tests/pr2.test b/tests/pr2.test
new file mode 100755
index 0000000..85f1bb4
--- /dev/null
+++ b/tests/pr2.test
@@ -0,0 +1,26 @@
+#! /bin/sh
+
+# Test for bug reported in PR 2.
+
+. $srcdir/defs || exit 1
+
+cat > configure.in << 'END'
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
+PACKAGE=nonesuch
+VERSION=nonesuch
+AC_ARG_PROGRAM
+AC_PROG_MAKE_SET
+AC_PROG_INSTALL
+AC_OUTPUT(README.foo:templ/README.foo.in Makefile)
+END
+
+: > Makefile.am
+
+mkdir templ
+: > templ/README.foo.in
+
+$AUTOMAKE || exit 1
+
+# Look for mkinstalldirs invocation for the templ directory.
+# We use the `[^/]' to avoid matching `templ/README.foo.in'.
+egrep 'mkinstalldirs.*templ([^/]|$)' Makefile.in
diff --git a/tests/pr72.test b/tests/pr72.test
new file mode 100755
index 0000000..75d1dcd
--- /dev/null
+++ b/tests/pr72.test
@@ -0,0 +1,26 @@
+#! /bin/sh
+
+# Test for PR 72
+
+. $srcdir/defs || exit 1
+
+cat >> configure.in << 'END'
+AC_PROG_CC
+AC_PROG_LIBTOOL
+END
+
+cat > Makefile.am << 'END'
+lib_LTLIBRARIES = libviewer.la
+libviewer_la_SOURCES =
+libviewer_la_LIBADD = libphony.la
+END
+
+: > ltconfig
+: > ltmain.sh
+: > config.guess
+: > config.sub
+
+$ACLOCAL || exit 1
+$AUTOMAKE || exit 1
+
+grep '^LINK ' Makefile.in
diff --git a/tests/pr87.test b/tests/pr87.test
new file mode 100755
index 0000000..accf5e1
--- /dev/null
+++ b/tests/pr87.test
@@ -0,0 +1,62 @@
+#! /bin/sh
+
+# Test for PR automake/87.
+
+. $srcdir/defs || exit 1
+
+subdirs="foo bar"
+
+for i in $subdirs; do
+    mkdir $i
+    cat >$i/$i.c <<EOF
+int main() { return 0; }
+EOF
+    cat >$i/Makefile.am <<EOF
+bin_PROGRAMS = $i
+${i}_SOURCES = $i.c
+EOF
+done
+
+echo "SUBDIRS = $subdirs" > Makefile.am
+cat >configure.in <<EOF
+AC_INIT(`echo $subdirs | sed 's|\([a-z][a-z]*\).*|\1/\1.c|'`)
+AC_CONFIG_AUX_DIR(.)
+AM_INIT_AUTOMAKE(test_am, 1.0)
+AC_PROG_CC
+AC_OUTPUT(Makefile `echo $subdirs | sed 's|\([a-z][a-z]*\)|\1/Makefile|g'`)
+EOF
+
+# Fail gracefully if no autoconf.
+$needs_autoconf
+
+# Likewise for gcc.
+(gcc -v) > /dev/null 2>&1 || exit 77
+
+# Ignore user CFLAGS.
+CFLAGS=
+export CFLAGS
+
+touch README NEWS AUTHORS ChangeLog
+
+mkdir build
+
+# We use gcc and not gcc -traditional as the latter fails on some
+# Linux boxes (Red Hat 5.1 in particular).
+$ACLOCAL \
+   && $AUTOCONF \
+   && $AUTOMAKE -a || exit 1
+
+# Regression test for bug where `.c.o:' is followed by blank line.
+(while read line; do
+    if test "$line" = ".c.o:"; then
+       read next
+       if test -z "$next"; then
+         exit 1
+       fi
+       break
+    fi
+ done) < foo/Makefile.in || exit 1
+
+cd build \
+   && CC='gcc' ../configure \
+   && $MAKE distcheck || exit 1
diff --git a/tests/pr9.test b/tests/pr9.test
new file mode 100755
index 0000000..d143fc3
--- /dev/null
+++ b/tests/pr9.test
@@ -0,0 +1,37 @@
+#! /bin/sh
+
+# Test for bug in PR 9.
+
+. $srcdir/defs || exit 1
+
+cat > configure.in << 'END'
+AC_INIT(Makefile.am)
+AC_CONFIG_AUX_DIR(support)
+AM_INIT_AUTOMAKE(pr9, 0)
+AC_OUTPUT(Makefile)
+END
+
+: > Makefile.am
+
+mkdir support
+
+# Fail gracefully if no autoconf.
+$needs_autoconf
+
+# Likewise for gzip.
+(gzip --version) > /dev/null 2>&1 || exit 77
+
+# `distcheck' requires GNU make.
+$needs_gnu_make
+
+$ACLOCAL || exit 1
+
+$AUTOCONF || exit 1
+$AUTOMAKE -a -c || exit 1
+./configure || exit 1
+$MAKE || exit 1
+$MAKE distcheck || exit 1
+
+gunzip pr9-0.tar.gz || exit 1
+
+tar tf pr9-0.tar | fgrep support
diff --git a/tests/prefix.test b/tests/prefix.test
index f14208c..3761d2c 100755
--- a/tests/prefix.test
+++ b/tests/prefix.test
@@ -13,4 +13,5 @@ bnidir = $(prefix)/bni
 bni_PROGRAMS = zardoz
 EOF
 
+$ACLOCAL || exit 1
 $AUTOMAKE
diff --git a/tests/primary2.test b/tests/primary2.test
index 89f0bc6..305d514 100755
--- a/tests/primary2.test
+++ b/tests/primary2.test
@@ -11,5 +11,6 @@ bin_PROGRAMS = @programs@
 EXTRA_PROGRAMS = joe @more@
 END
 
+$ACLOCAL || exit 1
 $AUTOMAKE && exit 1
 exit 0
diff --git a/tests/python.test b/tests/python.test
new file mode 100755
index 0000000..b3b52b9
--- /dev/null
+++ b/tests/python.test
@@ -0,0 +1,15 @@
+#! /bin/sh
+
+# Test to make sure py_compile is defined.
+
+. $srcdir/defs || exit 1
+
+echo 'AM_PATH_PYTHON' >> configure.in
+
+cat > Makefile.am << 'END'
+python_PYTHON = foo.py
+END
+
+$AUTOMAKE -a || exit 1
+
+grep '^py_compile =' Makefile.in
diff --git a/tests/ranlib.test b/tests/ranlib.test
index d977a39..2da8172 100755
--- a/tests/ranlib.test
+++ b/tests/ranlib.test
@@ -17,4 +17,5 @@ END
 : > config.guess
 : > config.sub
 
+$ACLOCAL || exit 1
 $AUTOMAKE
diff --git a/tests/recurs.test b/tests/recurs.test
index 9816df1..39b1b9c 100755
--- a/tests/recurs.test
+++ b/tests/recurs.test
@@ -17,5 +17,6 @@ bin_PROGRAMS = $(foo)
 foo = $(bin_PROGRAMS)
 END
 
+$ACLOCAL || exit 1
 $AUTOMAKE && exit 1
 exit 0
diff --git a/tests/recurs2.test b/tests/recurs2.test
index 6611b83..5b07f19 100755
--- a/tests/recurs2.test
+++ b/tests/recurs2.test
@@ -20,4 +20,5 @@ END
 > chgrp.1
 > chgrp.x
 
-$AUTOMAKE
\ No newline at end of file
+$ACLOCAL || exit 1
+$AUTOMAKE
diff --git a/tests/remake.test b/tests/remake.test
index cf28765..941378a 100755
--- a/tests/remake.test
+++ b/tests/remake.test
@@ -5,9 +5,11 @@
 . $srcdir/defs || exit 1
 
 cat > configure.in << 'END'
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
 PACKAGE=nonesuch
 VERSION=nonesuch
 AC_ARG_PROGRAM
+AC_PROG_MAKE_SET
 AC_PROG_INSTALL
 AC_OUTPUT(sub/Makefile)
 END
diff --git a/tests/remake2.test b/tests/remake2.test
index b8b8044..f01b949 100755
--- a/tests/remake2.test
+++ b/tests/remake2.test
@@ -5,9 +5,11 @@
 . $srcdir/defs || exit 1
 
 cat > configure.in << 'END'
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
 PACKAGE=nonesuch
 VERSION=nonesuch
 AC_ARG_PROGRAM
+AC_PROG_MAKE_SET
 AC_PROG_INSTALL
 AC_OUTPUT(sub/Makefile)
 END
diff --git a/tests/remake3.test b/tests/remake3.test
new file mode 100755
index 0000000..fe1ce80
--- /dev/null
+++ b/tests/remake3.test
@@ -0,0 +1,24 @@
+#! /bin/sh
+
+# Make sure remaking rules work when there is no subdir Makefile.
+
+. $srcdir/defs || exit 1
+
+cat > configure.in << 'END'
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
+PACKAGE=nonesuch
+VERSION=nonesuch
+AC_ARG_PROGRAM
+AC_PROG_MAKE_SET
+AC_PROG_INSTALL
+AC_OUTPUT(Makefile sub/foo)
+END
+
+: > Makefile.am
+
+mkdir sub
+: > sub/foo.in
+
+$AUTOMAKE || exit 1
+
+grep '^sub/foo' Makefile.in
diff --git a/tests/scripts.test b/tests/scripts.test
index 6f7c15a..76cce15 100755
--- a/tests/scripts.test
+++ b/tests/scripts.test
@@ -6,8 +6,10 @@
 . $srcdir/defs || exit 1
 
 cat > configure.in << 'END'
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
 PACKAGE=nonesuch
 VERSION=nonesuch
+AC_PROG_MAKE_SET
 AC_ARG_PROGRAM
 AC_PROG_INSTALL
 AC_OUTPUT(Makefile)
diff --git a/tests/sinclude.test b/tests/sinclude.test
index 4ef1688..96dd30d 100755
--- a/tests/sinclude.test
+++ b/tests/sinclude.test
@@ -15,6 +15,6 @@ END
 
 : > Makefile.am
 
-$AUTOMAKE || exit 1
+$AUTOMAKE --Wno-error || exit 1
 
 grep MAGICALPIG Makefile.in
diff --git a/tests/sourcesub.test b/tests/sourcesub.test
new file mode 100755
index 0000000..7e83886
--- /dev/null
+++ b/tests/sourcesub.test
@@ -0,0 +1,19 @@
+#! /bin/sh
+
+# Test to make sure config sub in _SOURCES fails.
+
+. $srcdir/defs || exit 1
+
+cat >> configure.in << 'END'
+AC_PROG_CC
+END
+
+cat > Makefile.am << 'END'
+bin_PROGRAMS = x
+x_SOURCES = x.c @FOO@
+EXTRA_x_SOURCES = y.c
+END
+
+$ACLOCAL || exit 1
+$AUTOMAKE && exit 1
+exit 0
diff --git a/tests/space.test b/tests/space.test
new file mode 100755
index 0000000..def0654
--- /dev/null
+++ b/tests/space.test
@@ -0,0 +1,15 @@
+#! /bin/sh
+
+# Test leading space on macro assignment.
+
+. $srcdir/defs || exit 1
+
+echo AC_PROG_CC >> configure.in
+
+cat > Makefile.am << 'END'
+    bin_PROGRAMS = foo
+foo_SOURCES = foo.c
+END
+
+$ACLOCAL || exit 1
+$AUTOMAKE
diff --git a/tests/specflags.test b/tests/specflags.test
new file mode 100755
index 0000000..2e03e74
--- /dev/null
+++ b/tests/specflags.test
@@ -0,0 +1,35 @@
+#! /bin/sh
+
+# Test of flags specific to executable.
+
+. $srcdir/defs || exit 1
+
+cat >> configure.in << 'END'
+AC_PROG_CC
+END
+
+cat > Makefile.am << 'END'
+AUTOMAKE_OPTIONS = no-dependencies
+bin_PROGRAMS = foo
+foo_SOURCES = foo.c
+foo_CFLAGS = -DBAR
+END
+
+# Make sure `compile' is required.
+$ACLOCAL || exit 1
+$AUTOMAKE && exit 1
+
+: > compile
+
+$AUTOMAKE || exit 1
+
+# Look for $(COMPILE) -c in .c.o rule.
+grep 'COMPILE. [^-]' Makefile.in && exit 1
+
+# Look for foo-foo.o.
+grep '[^-]foo\.o' Makefile.in && exit 1
+
+# Regression test for missing space.
+fgrep ')-c' Makefile.in && exit 1
+
+exit 0
diff --git a/tests/specflags2.test b/tests/specflags2.test
new file mode 100755
index 0000000..2866404
--- /dev/null
+++ b/tests/specflags2.test
@@ -0,0 +1,40 @@
+#! /bin/sh
+
+# Test library-specific flags.
+
+. $srcdir/defs || exit 1
+
+cat >> configure.in << 'END'
+AC_PROG_CC
+AC_PROG_CXX
+AC_PROG_RANLIB
+END
+
+cat > Makefile.am << 'END'
+AUTOMAKE_OPTIONS = no-dependencies
+lib_LIBRARIES = libfoo.a
+libfoo_a_SOURCES = foo.c bar.cc
+libfoo_a_CFLAGS = -DBAR
+libfoo_a_CXXFLAGS = -DZOT
+END
+
+# Make sure `compile' is required.
+$ACLOCAL || exit 1
+$AUTOMAKE && exit 1
+
+: > compile
+
+$AUTOMAKE || exit 1
+
+# Look for $(COMPILE) -c in .c.o rule.
+grep 'COMPILE. [^-]' Makefile.in && exit 1
+
+# Look for libfoo_a-foo.o.
+grep foo Makefile.in || exit 1
+grep '[^-]foo\.o' Makefile.in && exit 1
+
+# Look for libfoo_a-bar.o.
+grep bar Makefile.in || exit 1
+grep '[^-]bar\.o' Makefile.in && exit 1
+
+exit 0
diff --git a/tests/specflags3.test b/tests/specflags3.test
new file mode 100755
index 0000000..f6cdd11
--- /dev/null
+++ b/tests/specflags3.test
@@ -0,0 +1,33 @@
+#! /bin/sh
+
+# Test exe-specific flags with dependency tracking.
+
+. $srcdir/defs || exit 1
+
+cat > configure.in << 'END'
+AC_INIT
+AM_INIT_AUTOMAKE(test, 0.1)
+AC_PROG_CC
+AC_OUTPUT(Makefile)
+END
+
+cat > Makefile.am << 'END'
+AUTOMAKE_OPTIONS = foreign
+bin_PROGRAMS = foo
+foo_SOURCES = foo.c
+foo_CFLAGS = -DFOO
+END
+
+: > compile
+
+$ACLOCAL || exit 1
+$AUTOMAKE || exit 1
+
+fgrep -e '-o foo-foo' Makefile.in || exit 1
+
+fgrep 'foo.o.o' Makefile.in                       && exit 1
+fgrep 'foo.$(OBJEXT).$(OBJEXT)' Makefile.in       && exit 1
+
+fgrep '$(foo_CFLAGS)' Makefile.in || exit 1
+
+exit 0
diff --git a/tests/specflags6.test b/tests/specflags6.test
new file mode 100755
index 0000000..8acb3bb
--- /dev/null
+++ b/tests/specflags6.test
@@ -0,0 +1,38 @@
+#! /bin/sh
+
+# Regression test for multiple rules being generated for each target when
+# conditionals are present.
+# From Richard Boulton
+
+. $srcdir/defs || exit 1
+
+cat >> configure.in << 'END'
+AC_PROG_CC
+AM_CONDITIONAL(BAR, true)
+END
+
+cat > Makefile.am << 'END'
+if BAR
+BAR_SRCS = bar.c
+endif
+
+bin_PROGRAMS = foo
+foo_CFLAGS = -DFOO
+foo_SOURCES = foo.c
+END
+
+: > compile
+
+$AUTOMAKE || exit 1
+
+uncondval=`fgrep 'foo-foo.o: foo.c' Makefile.in`
+
+cat >> Makefile.am << 'END'
+foo_SOURCES += $(BAR_SRCS)
+END
+
+$AUTOMAKE || exit 1
+
+condval=`fgrep 'foo-foo.o: foo.c' Makefile.in`
+
+test "x$uncondval" = "x$condval"
diff --git a/tests/spell2.test b/tests/spell2.test
index f5e4e79..e07240c 100755
--- a/tests/spell2.test
+++ b/tests/spell2.test
@@ -12,5 +12,6 @@ zardoz_SOURCES = x.c
 qardoz_LDADD = -ljoe
 END
 
+$ACLOCAL || exit 1
 $AUTOMAKE && exit 1
 exit 0
diff --git a/tests/stamph.test b/tests/stamph.test
index bf3b3f7..41019c3 100755
--- a/tests/stamph.test
+++ b/tests/stamph.test
@@ -8,6 +8,7 @@ cat > configure.in << 'END'
 PACKAGE=nonesuch
 VERSION=nonesuch
 AC_ARG_PROGRAM
+AC_PROG_MAKE_SET
 AC_PROG_INSTALL
 AC_OUTPUT(Makefile stamp-h)
 END
diff --git a/tests/stamph2.test b/tests/stamph2.test
new file mode 100755
index 0000000..79536f2
--- /dev/null
+++ b/tests/stamph2.test
@@ -0,0 +1,29 @@
+#! /bin/sh
+
+# Make sure stamp-h* files are created where we expect
+
+. $srcdir/defs || exit 1
+
+cat > configure.in << 'END'
+AC_INIT(Makefile.am)
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
+AM_CONFIG_HEADER(firstfile.h sdir/secondfile.h thirdfile.h)
+AC_OUTPUT(Makefile)
+END
+
+: > Makefile.am
+mkdir sdir
+: > firstfile.h.in
+: > sdir/secondfile.h.in
+: > thirdfile.h.in
+
+# Fail gracefully if no autoconf.
+$needs_autoconf
+
+$ACLOCAL || exit 1
+$AUTOCONF || exit 1
+$AUTOMAKE || exit 1
+./configure || exit 1
+
+(test -f stamp-h1 && test -f sdir/stamp-h2 && test -f stamp-h3) || exit 1
+exit 0
diff --git a/tests/stdlib.test b/tests/stdlib.test
index 5e8031a..e284bd6 100755
--- a/tests/stdlib.test
+++ b/tests/stdlib.test
@@ -13,6 +13,7 @@ cat > Makefile.am << 'END'
 noinst_LIBRARIES = foo
 END
 
+$ACLOCAL || exit 1
 $AUTOMAKE 2> output.log && exit 1
 # We're specifically testing for line-number information.
 # Well, when it is implemented.
diff --git a/tests/subdir.test b/tests/subdir.test
index a3fa485..22223bc 100755
--- a/tests/subdir.test
+++ b/tests/subdir.test
@@ -8,6 +8,7 @@
 mkdir zot
 
 cat > configure.in << 'END'
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
 PACKAGE=nonesuch
 VERSION=nonesuch
 AC_ARG_PROGRAM
diff --git a/tests/subdir2.test b/tests/subdir2.test
index 485cae7..b584881 100755
--- a/tests/subdir2.test
+++ b/tests/subdir2.test
@@ -8,6 +8,7 @@ mkdir one
 mkdir one/two
 
 cat > configure.in << 'END'
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
 PACKAGE=nonesuch
 VERSION=nonesuch
 AC_ARG_PROGRAM
diff --git a/tests/subdir3.test b/tests/subdir3.test
new file mode 100755
index 0000000..c69cad8
--- /dev/null
+++ b/tests/subdir3.test
@@ -0,0 +1,25 @@
+#! /bin/sh
+
+# Test to make sure subdir source file generates explicit dependency.
+
+. $srcdir/defs || exit 1
+
+cat > Makefile.am << 'END'
+bin_PROGRAMS = zardoz widdershins
+zardoz_SOURCES = y.c x/z.c
+widdershins_SOURCES = x/z.c
+END
+
+cat >> configure.in << 'END'
+AC_PROG_CC
+END
+
+mkdir x
+
+: > y.c
+: > x/z.c
+
+$ACLOCAL || exit 1
+$AUTOMAKE || exit 1
+
+grep '^z\.o: x/z\.c$' Makefile.in
diff --git a/tests/subdir4.test b/tests/subdir4.test
new file mode 100755
index 0000000..893e078
--- /dev/null
+++ b/tests/subdir4.test
@@ -0,0 +1,58 @@
+#! /bin/sh
+
+# Make sure a top-level depcomp file is found when
+# AC_CONFIG_AUX_DIR is not specified.
+
+. $srcdir/defs || exit 1
+
+mkdir lib src
+
+cat > configure.in << 'END'
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
+PACKAGE=nonesuch
+VERSION=nonesuch
+AC_ARG_PROGRAM
+AC_PROG_MAKE_SET
+AC_PROG_INSTALL
+AC_PROG_RANLIB
+AC_PROG_CC
+AC_OUTPUT(Makefile lib/Makefile src/Makefile)
+END
+
+# Files required because we are using `--gnu'.
+: > INSTALL
+: > NEWS
+: > README
+: > COPYING
+: > AUTHORS
+: > ChangeLog
+
+cat > Makefile.am << 'END'
+SUBDIRS = lib src
+END
+
+cat > lib/Makefile.am << 'END'
+pkgdata_DATA =
+noinst_LIBRARIES = libfoo.a
+libfoo_a_SOURCES = foo.c
+END
+
+cat > lib/foo.c << 'END'
+int foo () {}
+END
+
+cat > src/Makefile.am << 'END'
+pkgdata_DATA =
+END
+
+$ACLOCAL || exit 1
+$AUTOMAKE --gnu || exit 1
+
+# Make sure that depcomp is *not* included in the definition
+# of DIST_COMMON in lib/Makefile.in.  If you change this test
+# so that more files are included in lib's DIST_COMMON definition,
+# then you must handle the case in which depcomp is listed on a
+# continued line.
+grep '^DIST_COMMON.*depcomp' lib/Makefile.in && exit 1
+
+exit 0
diff --git a/tests/subdirbuiltsources.test b/tests/subdirbuiltsources.test
new file mode 100755
index 0000000..264d5b2
--- /dev/null
+++ b/tests/subdirbuiltsources.test
@@ -0,0 +1,62 @@
+#! /bin/sh
+
+set -e
+# Make sure when using SUBDIR that all BUILT_SOURCES are built.
+# A bug occurred where subdirs do not have all-recursive or
+# all-recursive-am which depended on BUILT_SOURCES.
+
+. $srcdir/defs || exit 1
+
+mkdir lib
+
+cat > configure.in << 'END'
+AC_INIT
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
+AC_ARG_PROGRAM
+AC_PROG_MAKE_SET
+AC_PROG_INSTALL
+AC_PROG_RANLIB
+AC_PROG_CC
+AC_OUTPUT(Makefile lib/Makefile)
+END
+
+# Files required because we are using `--gnu'.
+: > INSTALL
+: > NEWS
+: > README
+: > COPYING
+: > AUTHORS
+: > ChangeLog
+
+cat > Makefile.am << 'END'
+SUBDIRS = lib
+END
+
+cat > lib/Makefile.am << 'END'
+pkgdata_DATA =
+noinst_LIBRARIES = libfoo.a
+libfoo_a_SOURCES = foo.c
+BUILT_SOURCES=foo.h
+foo.h: 
+       echo \#define FOO_DEFINE 1 >$@
+END
+
+cat > lib/foo.c << 'END'
+#include <foo.h>
+int foo () { return !FOO_DEFINE;}
+END
+
+
+$ACLOCAL
+
+$AUTOCONF
+
+$AUTOMAKE --include-deps --copy --force-missing --add-missing --gnu
+
+./configure
+
+# Remove the comment to get a successful test.
+# $MAKE -C lib foo.h
+$MAKE
+
+exit 0
diff --git a/tests/subdircond.test b/tests/subdircond.test
new file mode 100755
index 0000000..25bb5e8
--- /dev/null
+++ b/tests/subdircond.test
@@ -0,0 +1,24 @@
+#! /bin/sh
+
+# It is ok to have a conditional SUBDIRS when using gettext.
+
+. $srcdir/defs || exit 1
+
+cat >> configure.in << 'END'
+AM_GNU_GETTEXT
+AM_CONDITIONAL(MAUDE, true)
+ALL_LINGUAS=
+AC_SUBST(ALL_LINGUAS)
+END
+
+mkdir po intl
+
+cat > Makefile.am << 'END'
+if MAUDE
+SUBDIRS = po intl
+else
+SUBDIRS =
+endif
+END
+
+$AUTOMAKE
diff --git a/tests/subobj.test b/tests/subobj.test
new file mode 100755
index 0000000..f9245b8
--- /dev/null
+++ b/tests/subobj.test
@@ -0,0 +1,27 @@
+#! /bin/sh
+
+# Test of subdir objects with C.
+
+. $srcdir/defs || exit 1
+
+cat >> configure.in << 'END'
+AM_PROG_CC_C_O
+AC_PROG_CC
+END
+
+cat > Makefile.am << 'END'
+AUTOMAKE_OPTIONS = subdir-objects
+bin_PROGRAMS = wish
+wish_SOURCES = generic/a.c generic/b.c
+END
+
+: > compile
+
+$ACLOCAL || exit 1
+$AUTOMAKE || exit 1
+
+fgrep 'generic/a.$(OBJEXT)' Makefile.in || exit 1
+grep '[^/]a\.\$(OBJEXT)' Makefile.in && exit 1
+
+# Opportunistically test for a different bug.
+grep '^generic/b.\$(OBJEXT):.*dirstamp' Makefile.in
diff --git a/tests/subobj2.test b/tests/subobj2.test
new file mode 100755
index 0000000..2d46f2f
--- /dev/null
+++ b/tests/subobj2.test
@@ -0,0 +1,24 @@
+#! /bin/sh
+
+# Test of subdir objects with C++.
+
+. $srcdir/defs || exit 1
+
+cat >> configure.in << 'END'
+AC_PROG_CXX
+END
+
+cat > Makefile.am << 'END'
+AUTOMAKE_OPTIONS = subdir-objects
+bin_PROGRAMS = wish
+wish_SOURCES = generic/a.cc generic/b.cxx
+END
+
+: > compile
+
+$ACLOCAL || exit 1
+$AUTOMAKE || exit 1
+
+fgrep 'generic/a.$(OBJEXT)' Makefile.in || exit 1
+grep '[^/]a\.\$(OBJEXT)' Makefile.in && exit 1
+fgrep -e '-c -o' Makefile.in
diff --git a/tests/subobj3.test b/tests/subobj3.test
new file mode 100755
index 0000000..5113e8b
--- /dev/null
+++ b/tests/subobj3.test
@@ -0,0 +1,52 @@
+#! /bin/sh
+
+# Test of subdir objects with C++.
+
+. $srcdir/defs || exit 1
+
+cat > configure.in << 'END'
+AC_INIT(sub/hello.c)
+AM_INIT_AUTOMAKE(hello,0.23)
+dnl Prevent automake from looking in .. and ../..
+AC_CONFIG_AUX_DIR(.)
+AC_PROG_CC
+AM_PROG_CC_C_O
+AM_C_PROTOTYPES
+AC_OUTPUT(Makefile)
+END
+
+cat > Makefile.am << 'END'
+AUTOMAKE_OPTIONS = subdir-objects
+bin_PROGRAMS = hello
+hello_SOURCES = sub/hello.c
+END
+
+mkdir sub
+cat > sub/hello.c << 'END'
+#include <stdio.h>
+int
+main (int argc, char *argv[])
+{
+   printf ("yeah, yeah\n");
+   return 0;
+}
+END
+
+# Fail gracefully if no autoconf.
+$needs_autoconf
+
+# Likewise for gcc.
+(gcc -v) > /dev/null 2>&1 || exit 77
+
+# Ignore user CFLAGS.
+CFLAGS=
+export CFLAGS
+
+# We use gcc and not gcc -traditional as the latter fails on some
+# Linux boxes (Red Hat 5.1 in particular).
+$ACLOCAL \
+   && $AUTOCONF \
+   && $AUTOMAKE -a \
+   && CC='gcc' ./configure \
+   && $MAKE ANSI2KNR=./ansi2knr U=_ \
+   && ./hello
diff --git a/tests/subobj4.test b/tests/subobj4.test
new file mode 100755
index 0000000..452d25d
--- /dev/null
+++ b/tests/subobj4.test
@@ -0,0 +1,41 @@
+#! /bin/sh
+
+# Make sure `../foo/foo.cpp' generates a rule.
+# Report from Dave Brolley.
+
+. $srcdir/defs || exit 1
+
+cat >> configure.in << 'END'
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
+PACKAGE=nonesuch
+VERSION=nonesuch
+AC_ARG_PROGRAM
+AC_PROG_INSTALL
+AC_PROG_MAKE_SET
+AM_PROG_CC_C_O
+AC_PROG_CC
+AC_PROG_CXX
+AC_OUTPUT(Makefile d1/Makefile d2/Makefile)
+END
+
+mkdir d1 d2
+
+cat > Makefile.am << 'END'
+SUBDIRS = d1 d2
+END
+
+cat > d1/Makefile.am << 'END'
+bin_PROGRAMS = z
+z_SOURCES = ../d2/z.c
+END
+
+cat > d2/Makefile.am << 'END'
+END
+
+: > compile
+: > d2/z.c
+
+$ACLOCAL || exit 1
+$AUTOMAKE || exit 1
+
+grep 'CC.*z' d1/Makefile.in
diff --git a/tests/subobj5.test b/tests/subobj5.test
new file mode 100755
index 0000000..e2303a3
--- /dev/null
+++ b/tests/subobj5.test
@@ -0,0 +1,33 @@
+#! /bin/sh
+
+# Test of subdir make dist rules.
+# From Robert Collins
+
+. $srcdir/defs || exit 1
+
+cat > configure.in << 'END'
+AC_INIT(generic/a.c)
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
+AM_PROG_CC_C_O
+AC_PROG_CC
+AC_OUTPUT(Makefile generic/Makefile)
+END
+
+cat > Makefile.am << 'END'
+bin_PROGRAMS = wish
+wish_SOURCES = generic/a.c
+END
+
+mkdir generic
+: > generic/a.c
+: > generic/Makefile.am
+
+set -e
+
+$needs_autoconf
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE --include-deps --copy --add-missing
+./configure
+$MAKE dist
diff --git a/tests/subobj6.test b/tests/subobj6.test
new file mode 100755
index 0000000..1044d80
--- /dev/null
+++ b/tests/subobj6.test
@@ -0,0 +1,75 @@
+#! /bin/sh
+
+# Test of subdir make distclean rules.
+# From Robert Collins
+
+. $srcdir/defs || exit 1
+
+cat > configure.in << 'END'
+AC_INIT(f)
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
+AM_PROG_CC_C_O
+AC_PROG_CC
+AC_OUTPUT(Makefile)
+END
+
+cat > Makefile.am << 'END'
+AUTOMAKE_OPTIONS = subdir-objects
+bin_PROGRAMS = wish
+wish_SOURCES = generic/a.c
+END
+
+# The ac-init file.
+: > f
+
+mkdir generic
+cat > generic/a.c << 'END'
+#include <stdio.h>
+int main ()
+{
+   printf ("maude!\n");
+   return 0;
+}
+END
+
+set -e
+
+$needs_autoconf
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE --include-deps --copy --add-missing
+
+mkdir build
+cd build
+
+../configure
+$MAKE
+
+$MAKE mostlyclean
+test -f generic/a.o && exit 1
+
+$MAKE distclean
+test -f generic/.dirstamp && exit 1
+
+cd ..
+
+# Now test without the subdir.
+cat > Makefile.am << 'END'
+AUTOMAKE_OPTIONS = subdir-objects
+bin_PROGRAMS = wish
+wish_SOURCES = a.c
+END
+
+mv generic/a.c a.c
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE --include-deps --copy --add-missing
+
+mkdir build2
+cd build2
+
+../configure
+$MAKE
+$MAKE mostlyclean
diff --git a/tests/subobj7.test b/tests/subobj7.test
new file mode 100755
index 0000000..c5388fb
--- /dev/null
+++ b/tests/subobj7.test
@@ -0,0 +1,25 @@
+#! /bin/sh
+
+# Test to make sure AM_CFLAGS appears in subdir compilation rule.
+# Report from Steve M. Robbins.
+
+. $srcdir/defs || exit 1
+
+cat > configure.in << 'END'
+AC_INIT(f)
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
+AM_PROG_CC_C_O
+AC_PROG_CC
+AC_OUTPUT(Makefile)
+END
+
+cat > Makefile.am << 'END'
+bin_PROGRAMS = wish
+wish_SOURCES = foo.c generic/a.c
+END
+
+$ACLOCAL || exit 1
+$AUTOMAKE || exit 1
+
+grep wish_CFLAGS Makefile.in && exit 1
+exit 0
diff --git a/tests/subobj8.test b/tests/subobj8.test
new file mode 100755
index 0000000..9b9bfd1
--- /dev/null
+++ b/tests/subobj8.test
@@ -0,0 +1,30 @@
+#! /bin/sh
+
+# Make sure `compile' is included when subdir-objects is used in a subdir.
+
+. $srcdir/defs || exit 1
+
+cat > configure.in << 'END'
+AC_INIT(Makefile.am)
+AC_CONFIG_AUX_DIR(tools)
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
+AC_PROG_CC
+AM_PROG_CC_C_O
+AC_OUTPUT(Makefile foo/Makefile)
+END
+
+mkdir tools foo foo/bar
+
+cat > Makefile.am << 'END'
+SUBDIRS = foo
+END
+
+cat > foo/Makefile.am << 'EOF'
+AUTOMAKE_OPTIONS = subdir-objects
+bin_PROGRAMS = mumble
+mumble_SOURCES = bar/a.c
+EOF
+
+$ACLOCAL || exit 1
+$AUTOMAKE --add-missing || exit 1
+test -f tools/compile || exit 1
diff --git a/tests/substref.test b/tests/substref.test
new file mode 100755
index 0000000..1c022f9
--- /dev/null
+++ b/tests/substref.test
@@ -0,0 +1,50 @@
+#! /bin/sh
+
+# Test for bug in variable substitution references when left hand pattern is
+# null.
+# Report from Richard Boulton
+
+. $srcdir/defs || exit 1
+
+cat > configure.in << 'END'
+AC_INIT(hello.c)
+AM_INIT_AUTOMAKE(hello,0.23)
+AC_PROG_CC
+AC_OUTPUT(Makefile)
+END
+
+cat > hello.c << 'END'
+END
+
+cat > Makefile.am << 'END'
+
+var1 = dlmain
+
+var2 = $(var1:=.)
+
+helldl_SOURCES = $(var2:=c)
+
+echorule:
+       @echo $(helldl_SOURCES) $(helldl_OBJECTS)
+
+bin_PROGRAMS = helldl
+END
+
+$needs_autoconf
+(gcc -v) > /dev/null 2>&1 || exit 77
+
+# Ignore user CFLAGS.
+CFLAGS=
+export CFLAGS
+
+set -e
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE -a
+
+CC='gcc' ./configure
+
+val=`$MAKE -s echorule`;
+echo $val
+test "x$val" = "xdlmain.c dlmain.o"
diff --git a/tests/substtarg.test b/tests/substtarg.test
new file mode 100755
index 0000000..ded0284
--- /dev/null
+++ b/tests/substtarg.test
@@ -0,0 +1,34 @@
+#! /bin/sh
+
+# Test that substitutions in variables work.
+# From Lars J. Aas.
+
+. $srcdir/defs || exit 1
+
+cat > configure.in << 'END'
+AC_INIT(fakelib.c)
+AM_INIT_AUTOMAKE(fakelib,0.0)
+AC_PROG_CC
+RANLIB=:
+AC_SUBST(RANLIB)
+SUBST=hei
+AC_SUBST(SUBST)
+AC_OUTPUT(Makefile)
+END
+
+cat > Makefile.am << 'END'
+noinst_LIBRARIES = address@hidden@.a
+
address@hidden@_a_SOURCES = abra.c kadabra.c
+
+# then we override the target rule:
address@hidden@.a: Makefile $(address@hidden@_a_OBJECTS) 
$(address@hidden@_a_DEPENDENCIES)
+       @echo here we do some custom stuff, instead of invoking the linker
+END
+
+set -e
+
+$ACLOCAL
+$AUTOMAKE
+num=`grep 'address@hidden@.a:' Makefile.in | wc -l`
+test $num -eq 1
diff --git a/tests/suffix.test b/tests/suffix.test
new file mode 100755
index 0000000..74f0e2b
--- /dev/null
+++ b/tests/suffix.test
@@ -0,0 +1,21 @@
+#! /bin/sh
+
+# Make sure a suffix rule for C compilation is produced.
+
+. $srcdir/defs || exit 1
+
+cat >> configure.in << 'END'
+AC_PROG_CC
+END
+
+cat > Makefile.am << 'END'
+noinst_PROGRAMS = foo
+END
+
+$ACLOCAL || exit 1
+$AUTOMAKE -i || exit 1
+
+grep '^\.c\.o' Makefile.in > /dev/null || exit 1
+
+$AUTOMAKE || exit 1
+grep '^\.c\.o' Makefile.in > /dev/null || exit 1
diff --git a/tests/suffix2.test b/tests/suffix2.test
new file mode 100755
index 0000000..4348a8a
--- /dev/null
+++ b/tests/suffix2.test
@@ -0,0 +1,36 @@
+#! /bin/sh
+
+# Test to make sure .c.o rule is only included once.
+
+. $srcdir/defs || exit 1
+
+cat >> configure.in << 'END'
+AC_PROG_CC
+AC_PROG_LIBTOOL
+END
+
+cat > Makefile.am << 'END'
+AUTOMAKE_OPTIONS = no-dependencies
+lib_LTLIBRARIES = libltdl.la
+libltdl_la_SOURCES = ltdl.c ltdl.h
+END
+
+: > ltdl.c
+: > ltdl.h
+
+# Create all the files created libtoolize so we don't run libtoolize.
+# We don't want the user to need libtool to run this test.
+: > ltconfig
+: > ltmain.sh
+: > config.guess
+: > config.sub
+
+set -e
+
+$ACLOCAL || exit 1
+$AUTOMAKE -a
+
+grep -c '^\.c\.o:' Makefile.in   | grep '^1$'
+grep -c '^\.c\.obj:' Makefile.in | grep '^1$'
+
+exit 0
diff --git a/tests/suffix3.test b/tests/suffix3.test
new file mode 100755
index 0000000..cb2370a
--- /dev/null
+++ b/tests/suffix3.test
@@ -0,0 +1,23 @@
+#! /bin/sh
+
+# Test to make sure that suffix rules chain.
+
+. $srcdir/defs || exit 1
+
+cat >> configure.in << 'END'
+AC_PROG_CXX
+END
+
+cat > Makefile.am << 'END'
+SUFFIXES = .zoo
+.zoo.cc:
+       convert-zoo whatever
+bin_PROGRAMS = foo
+foo_SOURCES = foo.zoo
+END
+
+$ACLOCAL || exit 1
+$AUTOMAKE --Wno-error || exit 1
+
+fgrep foo.cc Makefile.in && exit 1
+exit 0
diff --git a/tests/symlink.test b/tests/symlink.test
index f2f2949..7893513 100755
--- a/tests/symlink.test
+++ b/tests/symlink.test
@@ -5,13 +5,13 @@
 
 . $srcdir/defs || exit 1
 
-rm install-sh
-rm mkinstalldirs
+rm -f install-sh
+rm -f mkinstalldirs
 
 : > Makefile.am
 
 cat >> configure.in << 'END'
-AC_CONFIG_AUX_DIR(aux)
+AC_CONFIG_AUX_DIR(sub)
 END
 
 $AUTOMAKE --add-missing && exit 1
diff --git a/tests/symlink2.test b/tests/symlink2.test
new file mode 100755
index 0000000..a83d957
--- /dev/null
+++ b/tests/symlink2.test
@@ -0,0 +1,13 @@
+#! /bin/sh
+
+# Test to make sure that `automake -a' redirects dangling symlinks.
+
+. $srcdir/defs || exit 1
+
+rm -f install-sh
+rm -f mkinstalldirs
+ln -s Zardoz mkinstalldirs
+
+: > Makefile.am
+
+$AUTOMAKE --add-missing
diff --git a/tests/symlink3.test b/tests/symlink3.test
new file mode 100755
index 0000000..40d7ebc
--- /dev/null
+++ b/tests/symlink3.test
@@ -0,0 +1,18 @@
+#! /bin/sh
+
+# Test to make sure that `automake --force-missing' works.
+
+. $srcdir/defs || exit 1
+
+rm -f install-sh
+rm -f mkinstalldirs
+
+echo zot > zot
+echo zot > mkinstalldirs
+
+: > Makefile.am
+
+$AUTOMAKE --add-missing --force-missing || exit 1
+
+grep zot mkinstalldirs && exit 1
+exit 0
diff --git a/tests/tagsub.test b/tests/tagsub.test
index 54be5a8..987165d 100755
--- a/tests/tagsub.test
+++ b/tests/tagsub.test
@@ -18,6 +18,7 @@ END
 : > sub/iguana.h
 
 cat > configure.in << 'END'
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
 PACKAGE=nonesuch
 VERSION=nonesuch
 AC_ARG_PROGRAM
diff --git a/tests/target-cflags.test b/tests/target-cflags.test
new file mode 100755
index 0000000..06643b8
--- /dev/null
+++ b/tests/target-cflags.test
@@ -0,0 +1,65 @@
+#! /bin/sh
+
+# Test to make sure target specific CFLAGS work
+# Assar Westerlund <address@hidden>
+
+. $srcdir/defs || exit 1
+
+cat > configure.in << 'END'
+AC_INIT(foo.c)
+AM_INIT_AUTOMAKE(target-cflags,0.0)
+AC_PROG_CC
+AC_OUTPUT(Makefile)
+END
+
+cat > Makefile.am << 'END'
+AUTOMAKE_OPTIONS = foreign no-dependencies
+
+bin_PROGRAMS = foo bar
+foo_CFLAGS   = -DFOO
+END
+
+cat > foo.c << 'END'
+#include <stdio.h>
+#ifdef FOO
+int main(void) {
+  return 0;
+}
+#endif
+END
+
+cat > bar.c << 'END'
+#ifndef FOO
+int main(void)
+{
+  return 0;
+}
+#endif
+END
+
+# Fail gracefully if no autoconf.
+$needs_autoconf
+
+# Likewise for gcc.
+(gcc -v) > /dev/null 2>&1 || exit 77
+
+$needs_gnu_make
+
+set -e
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE -a
+mkdir obj
+
+cd obj
+../configure
+$MAKE
+./foo
+./bar
+cd ..
+
+./configure
+$MAKE
+./foo
+./bar
diff --git a/tests/target.test b/tests/target.test
index 532c2e6..5586239 100755
--- a/tests/target.test
+++ b/tests/target.test
@@ -15,5 +15,6 @@ END
 
 echo > consud.c
 
+$ACLOCAL || exit 1
 $AUTOMAKE && exit 1
 exit 0
diff --git a/tests/texinfo.test b/tests/texinfo.test
index 1421867..77b1538 100755
--- a/tests/texinfo.test
+++ b/tests/texinfo.test
@@ -16,4 +16,5 @@ echo '@setfilename textutils.info' > textutils.texi
 
 $AUTOMAKE || exit 1
 
-$MAKE -s -f Makefile.in SHELL=/bin/sh magic | grep 'texinfo\.tex'
+fgrep -v @SET_MAKE@ Makefile.in > Makefile.sed
+$MAKE -s -f Makefile.sed SHELL=/bin/sh magic | grep 'texinfo\.tex'
diff --git a/tests/texinfo10.test b/tests/texinfo10.test
new file mode 100755
index 0000000..f93edbc
--- /dev/null
+++ b/tests/texinfo10.test
@@ -0,0 +1,25 @@
+#! /bin/sh
+
+# Make sure dvi target recurses into subdir.
+# Reported by Pavel Roskin
+
+. $srcdir/defs || exit 1
+
+cat > Makefile.am << 'END'
+SUBDIRS = sub
+END
+
+mkdir sub
+cat > sub/Makefile.am << 'END'
+info_TEXINFOS = maude.texi
+END
+
+echo '@setfilename maude.info' > sub/maude.texi
+: > sub/texinfo.tex
+
+$AUTOMAKE || exit 1
+
+grep dvi-recursive Makefile.in
+grep '[^-]info-recursive' Makefile.in
+grep '[^n]install-info-recursive' Makefile.in
+grep uninstall-info-recursive Makefile.in
diff --git a/tests/texinfo8.test b/tests/texinfo8.test
new file mode 100755
index 0000000..60aff2b
--- /dev/null
+++ b/tests/texinfo8.test
@@ -0,0 +1,40 @@
+#! /bin/sh
+
+# Test to make sure texinfo.tex is correctly installed and disted by
+# -a when we're using AC_CONFIG_AUX_DIR.  Bug report by by Per
+# Cederqvist.
+
+. $srcdir/defs || exit 1
+
+cat > configure.in << 'END'
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
+PACKAGE=nonesuch
+VERSION=nonesuch
+AC_ARG_PROGRAM
+AC_PROG_MAKE_SET
+AC_PROG_INSTALL
+AC_OUTPUT(Makefile sub/Makefile)
+AC_CONFIG_AUX_DIR(sub)
+END
+
+cat > Makefile.am << 'END'
+info_TEXINFOS = textutils.texi
+END
+
+echo '@setfilename textutils.info' > textutils.texi
+
+test -d sub || mkdir sub
+
+cat > sub/Makefile.am << 'END'
+magic:
+       @echo $(DISTFILES)
+END
+
+$AUTOMAKE -a || exit 1
+
+fgrep -v @SET_MAKE@ sub/Makefile.in > sub/Makefile.sed
+test -f sub/texinfo.tex &&
+$MAKE -s -f sub/Makefile.sed SHELL=/bin/sh magic | grep 'texinfo\.tex'
+stat=$?
+
+exit $stat
diff --git a/tests/texinfo9.test b/tests/texinfo9.test
new file mode 100755
index 0000000..5ae8c06
--- /dev/null
+++ b/tests/texinfo9.test
@@ -0,0 +1,20 @@
+#! /bin/sh
+
+# Make sure we only create dist-info target once.
+# This is just an example -- basically for many targets in texinfos.am
+# we only want them to appear once.
+
+. $srcdir/defs || exit 1
+
+cat > Makefile.am << 'END'
+info_TEXINFOS = maude.texi liver.txi heart.texinfo
+END
+
+echo '@setfilename maude.info' > maude.texi
+echo '@setfilename liver.info' > liver.txi
+echo '@setfilename heart.info' > heart.texinfo
+: > texinfo.tex
+
+$AUTOMAKE || exit 1
+
+test `grep '^dist-info:' Makefile.in | wc -l` -eq 1
diff --git a/tests/vars.test b/tests/vars.test
new file mode 100755
index 0000000..2f71a49
--- /dev/null
+++ b/tests/vars.test
@@ -0,0 +1,15 @@
+#! /bin/sh
+
+# Test various variable definitions that include an '=' sign
+# From Raja R Harinath
+
+. $srcdir/defs || exit 1
+
+cat > Makefile.am << 'END'
+MY_FLAGS_1=-DABC=345
+MY_FLAGS_2= -DABC=345
+MY_FLAGS_3 =-DABC=345
+MY_FLAGS_4 = -DABC=345
+END
+
+$AUTOMAKE
diff --git a/tests/vartar.test b/tests/vartar.test
new file mode 100755
index 0000000..578dbd0
--- /dev/null
+++ b/tests/vartar.test
@@ -0,0 +1,24 @@
+#! /bin/sh
+
+# Targets and macros are two different name spaces.
+
+. $srcdir/defs || exit 1
+
+cat > Makefile.am << 'END'
+install = install
+install:
+       $(install) install
+END
+
+$AUTOMAKE || exit 1
+
+grep '^install = install$' Makefile.in || exit 1
+
+cat > target.expected <<'EOF'
+install:
+       $(install) install
+EOF
+sed -n '/^install:/,/^ /p' Makefile.in > target.value
+diff target.expected target.value || exit 1
+
+exit 0
diff --git a/tests/version4.test b/tests/version4.test
new file mode 100755
index 0000000..9744b59
--- /dev/null
+++ b/tests/version4.test
@@ -0,0 +1,11 @@
+#! /bin/sh
+
+# Test to make sure we are compatible with the 1.4-p1 series.
+
+. $srcdir/defs || exit 1
+
+cat > Makefile.am << 'END'
+AUTOMAKE_OPTIONS = 1.4-p3
+END
+
+$AUTOMAKE
diff --git a/tests/vtexi.test b/tests/vtexi.test
index 09524eb..afe5f8d 100755
--- a/tests/vtexi.test
+++ b/tests/vtexi.test
@@ -1,12 +1,5 @@
 #!/bin/sh
 
-# Test for bug reported by Jim Meyering:
-# When I ran automake-0.29 on textutils,
-# I noticed that doc/Makefile.in had
-#   textutils.info: textutils.texi
-# instead of
-#   textutils.info: textutils.texi version.texi
-
 . $srcdir/defs || exit 1
 
 cat > Makefile.am << 'END'
@@ -22,6 +15,34 @@ END
 : > mdate-sh
 : > texinfo.tex
 
-$AUTOMAKE || exit 1
+set -e
+
+$AUTOMAKE
+
+# Test for bug reported by Jim Meyering:
+# When I ran automake-0.29 on textutils,
+# I noticed that doc/Makefile.in had
+#   textutils.info: textutils.texi
+# instead of
+#   textutils.info: textutils.texi version.texi
+
+grep '^textutils\.info: textutils\.texi .*version\.texi$' Makefile.in
+
+
+# Test for bug reported by Lars Hecking:
+# When running the first version of configure.ac aware automake,
+# @CONFIGURE_AC@ was not properly substitued.
+
+egrep '^\$\(srcdir\)/stamp-vti:.*textutils\.texi( .*)?$' Makefile.in
+egrep '^\$\(srcdir\)/stamp-vti:.*\$\(top_srcdir\)/configure\.in( .*)?$' 
Makefile.in
+
+
+# Check that the path to mdate-sh is correct.  Over escaping of `$'
+# etc. once led to `\$\(srcdir\)/mdate-sh'.
+
+# Filter out '$(srcdir)/mdate-sh'; output occurrences of `SOMETHING/mdate-sh'
+sed -n 's,\$(srcdir)/mdate-sh,,g;s,.* \([^ ]*/mdate-sh\) .*,\1,gp' Makefile.in|
+# There must remain nothing.
+ grep . && exit 1
 
-grep '^textutils\.info: textutils\.texi version\.texi$' Makefile.in
+exit 0
diff --git a/tests/werror.test b/tests/werror.test
new file mode 100755
index 0000000..23ce2ae
--- /dev/null
+++ b/tests/werror.test
@@ -0,0 +1,11 @@
+#! /bin/sh
+
+# Test to make sure --Werror and --add-missing work together.
+
+. $srcdir/defs || exit 1
+
+: > Makefile.am
+
+rm -f install-sh depcomp missing mkinstalldirs
+
+$AUTOMAKE --Werror --add-missing
diff --git a/tests/xsource.test b/tests/xsource.test
index 07b1953..1ed5ca9 100755
--- a/tests/xsource.test
+++ b/tests/xsource.test
@@ -1,12 +1,13 @@
 #! /bin/sh
 
-# Test to make sure source in another directory correctly fails.
+# Test to make sure multiple source files with the same object
+# file causes error.
 
 . $srcdir/defs || exit 1
 
 cat > Makefile.am << 'END'
 bin_PROGRAMS = zardoz
-zardoz_SOURCES = z.c x/y.c
+zardoz_SOURCES = z.c x/z.c
 END
 
 cat >> configure.in << 'END'
@@ -16,7 +17,8 @@ END
 mkdir x
 
 : > z.c
-: > x/y.c
+: > x/z.c
 
+$ACLOCAL || exit 1
 $AUTOMAKE && exit 1
 exit 0
diff --git a/tests/yacc.test b/tests/yacc.test
index 3dd0749..33f74ee 100755
--- a/tests/yacc.test
+++ b/tests/yacc.test
@@ -15,6 +15,7 @@ bin_PROGRAMS = zardoz
 zardoz_SOURCES = zardoz.y
 END
 
+$ACLOCAL || exit 1
 $AUTOMAKE || exit 1
 
 grep 'zardoz.c' Makefile.in
diff --git a/tests/yacc2.test b/tests/yacc2.test
new file mode 100755
index 0000000..8bbb1cc
--- /dev/null
+++ b/tests/yacc2.test
@@ -0,0 +1,70 @@
+#! /bin/sh
+
+# Test to make sure intermediate .h file is not generated nor removed
+# if (AM_)?YFLAGS do not contain -d.  Requested by Jim Meyering.
+
+. $srcdir/defs || exit 1
+
+cat >> configure.in << 'END'
+AC_PROG_CC
+AC_PROG_YACC
+END
+
+cat > Makefile.am <<'END'
+bin_PROGRAMS = zardoz
+zardoz_SOURCES = zardoz.y
+END
+
+# Don't redefine several times the same variable.
+cp Makefile.am Makefile.src
+
+
+
+
+$ACLOCAL || exit 1
+$AUTOMAKE || exit 1
+
+# If zardoz.h IS mentioned, fail
+grep 'zardoz.h' Makefile.in > /dev/null && exit 1
+
+
+
+cp Makefile.src Makefile.am
+echo 'AM_YFLAGS = -d' >> Makefile.am
+
+$AUTOMAKE || exit 1
+
+# If zardoz.h is NOT mentioned, fail
+grep 'zardoz.h' Makefile.in > /dev/null || exit 1
+
+
+
+cp Makefile.src Makefile.am
+echo 'AM_YFLAGS = ' >> Makefile.am
+
+$AUTOMAKE || exit 1
+
+# If zardoz.h IS mentioned, fail
+grep 'zardoz.h' Makefile.in > /dev/null && exit 1
+
+
+
+cp Makefile.src Makefile.am
+echo 'YFLAGS = -d' >> Makefile.am
+
+$AUTOMAKE || exit 1
+
+# If zardoz.h is NOT mentioned, fail
+grep 'zardoz.h' Makefile.in > /dev/null || exit 1
+
+
+
+cp Makefile.src Makefile.am
+echo 'YFLAGS = ' >> Makefile.am
+
+$AUTOMAKE || exit 1
+
+# If zardoz.h IS mentioned, fail
+grep 'zardoz.h' Makefile.in > /dev/null && exit 1
+
+exit 0
diff --git a/tests/yacc3.test b/tests/yacc3.test
new file mode 100755
index 0000000..dbd61ec
--- /dev/null
+++ b/tests/yacc3.test
@@ -0,0 +1,37 @@
+#! /bin/sh
+
+# Ensure that generated .h file is distributed iff we have -d in
+# (AM_)?YFLAGS.
+
+. $srcdir/defs || exit 1
+
+cat >> configure.in << 'END'
+AC_PROG_CC
+AC_PROG_YACC
+END
+
+cat > Makefile.am <<'END'
+AUTOMAKE_OPTIONS = no-dependencies
+bin_PROGRAMS = zardoz
+zardoz_SOURCES = zardoz.y
+magic:
+       @echo $(DIST_COMMON)
+END
+
+$ACLOCAL || exit 1
+$AUTOMAKE || exit 1
+
+fgrep -v @SET_MAKE@ Makefile.in > Makefile.sed
+# It should not be disted here
+grep 'zardoz.h' Makefile.in && exit 1
+
+cp Makefile.am Save
+# Test all available flags to make sure header is distributed with
+# `-d'.
+for flag in YFLAGS AM_YFLAGS zardoz_YFLAGS; do
+   cp Save Makefile.am
+   echo "$flag = -d" >> Makefile.am
+
+   $AUTOMAKE || exit 1
+   grep 'zardoz.h' Makefile.in || exit 1
+done
diff --git a/tests/yacc4.test b/tests/yacc4.test
new file mode 100755
index 0000000..1c9345e
--- /dev/null
+++ b/tests/yacc4.test
@@ -0,0 +1,77 @@
+#! /bin/sh
+
+# Some simple tests of ylwrap functionality.
+
+. $srcdir/defs || exit 1
+
+# Fail gracefully if no autoconf.
+$needs_autoconf
+# Likewise for some other tools.
+(gcc -v) > /dev/null 2>&1 || exit 77
+(bison -V) > /dev/null 2>&1 || exit 77
+
+cat > configure.in << 'END'
+AC_INIT
+AC_CONFIG_AUX_DIR([.])
+AM_INIT_AUTOMAKE(foo, 0.1)
+PACKAGE=foo
+VERSION=0.1
+AC_PROG_CC
+AC_PROG_YACC
+AC_OUTPUT(Makefile)
+END
+
+cat > Makefile.am << 'END'
+bin_PROGRAMS = foo bar
+foo_SOURCES = parse.y foo.c
+bar_SOURCES = bar.y foo.c
+END
+
+# First parser.
+cat > parse.y << 'END'
+%{
+int yylex () {return 0;}
+void yyerror (char *s) {}
+%}
+%%
+foobar : 'f' 'o' 'o' 'b' 'a' 'r' {};
+END
+
+# Second parser.
+cat > bar.y << 'END'
+%{
+int yylex () {return 0;}
+void yyerror (char *s) {}
+%}
+%%
+fubar : 'f' 'o' 'o' 'b' 'a' 'r' {};
+END
+
+cat > foo.c << 'END'
+int main () { return 0; }
+END
+
+# We are not checking Autoconf, so we pick $YACC for it.
+YACC="bison -y"
+export YACC
+
+$YACC --version || exit 77
+
+set -e
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE -a
+
+test -f ylwrap
+
+mkdir sub
+cd sub
+
+../configure
+$MAKE
+
+grep '^#.*/sub/\.\./' bar.c && exit 1
+grep '^#.*/sub/\.\./' parse.c && exit 1
+
+exit 0
diff --git a/tests/yacc5.test b/tests/yacc5.test
new file mode 100755
index 0000000..f0a7aaf
--- /dev/null
+++ b/tests/yacc5.test
@@ -0,0 +1,70 @@
+#! /bin/sh
+
+# Test of yacc functionality, derived from GNU binutils
+# by Tim Van Holder.
+
+. $srcdir/defs || exit 1
+
+cat > configure.in << 'END'
+AC_INIT
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
+AC_ARG_PROGRAM
+AC_PROG_INSTALL
+AC_PROG_MAKE_SET
+AC_PROG_CC
+AM_PROG_CC_C_O
+AC_PROG_YACC
+AC_OUTPUT(Makefile)
+END
+
+cat > Makefile.am << 'END'
+bin_PROGRAMS = maude
+maude_SOURCES = sub/maude.y
+END
+
+mkdir sub
+
+: > sub/maude.y
+
+$ACLOCAL || exit 1
+$AUTOMAKE -a || exit 1
+
+grep '^maude\.c:' Makefile.in || exit 1
+
+
+## Try again with subdir-objects.
+
+cat > Makefile.am << 'END'
+AUTOMAKE_OPTIONS = subdir-objects
+bin_PROGRAMS = maude
+maude_SOURCES = sub/maude.y
+END
+
+$ACLOCAL || exit 1
+$AUTOMAKE -a || exit 1
+
+grep '^sub/maude\.c:' Makefile.in || exit 1
+
+
+## Try again with per-exe flags.
+
+cat > Makefile.am << 'END'
+bin_PROGRAMS = maude
+maude_SOURCES = sub/maude.y
+## A particularly trickey case.
+maude_YFLAGS = -d
+END
+
+$ACLOCAL || exit 1
+$AUTOMAKE -a || exit 1
+
+# Rule should use maude_YFLAGS.
+grep 'AM_YFLAGS.*maude' Makefile.in && exit 1
+
+# Silly regression.
+grep 'maudec' Makefile.in && exit 1
+
+# Make sure the .o file is required.
+grep '^am_maude_OBJECTS.*maude' Makefile.in || exit 1
+
+exit 0
diff --git a/tests/yacc6.test b/tests/yacc6.test
new file mode 100755
index 0000000..3f2434c
--- /dev/null
+++ b/tests/yacc6.test
@@ -0,0 +1,37 @@
+#! /bin/sh
+
+# Test to make sure ylwrap put in right location.
+# Report from Tim Van Holder.
+
+. $srcdir/defs || exit 1
+
+cat > configure.in << 'END'
+AC_INIT
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
+AC_ARG_PROGRAM
+AC_PROG_INSTALL
+AC_PROG_MAKE_SET
+AC_PROG_CC
+AC_PROG_YACC
+AC_OUTPUT(Makefile sub/Makefile)
+END
+
+cat > Makefile.am << 'END'
+SUBDIRS = sub
+END
+
+mkdir sub
+
+cat > sub/Makefile.am << 'END'
+bin_PROGRAMS = foo
+foo_SOURCES = foo.y bar.y
+END
+
+: > sub/foo.y
+: > sub/bar.y
+
+$ACLOCAL || exit 1
+$AUTOMAKE -a || exit 1
+test -f ylwrap || exit 1
+fgrep '(srcdir)/ylwrap' sub/Makefile.in && exit 1
+exit 0
diff --git a/tests/yacc7.test b/tests/yacc7.test
new file mode 100755
index 0000000..ebd877e
--- /dev/null
+++ b/tests/yacc7.test
@@ -0,0 +1,42 @@
+#! /bin/sh
+
+# Test to make sure dependencies are generated correctly for .h files.
+# Report from Richard Boulton.
+
+. $srcdir/defs || exit 1
+
+$needs_gnu_make
+$needs_autoconf
+
+cat > configure.in << 'END'
+AC_INIT
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
+AC_PROG_INSTALL
+AC_PROG_MAKE_SET
+AC_PROG_CC
+AC_PROG_YACC
+AC_OUTPUT(Makefile)
+END
+
+cat > Makefile.am << 'END'
+bin_PROGRAMS = foo
+foo_SOURCES = foo.y
+AM_YFLAGS = -d
+END
+
+cat > foo.y << 'END'
+%%
+WORD: "up";
+%%
+END
+
+$ACLOCAL || exit 1
+$AUTOMAKE -a || exit 1
+$AUTOCONF || exit 1
+./configure || exit 1
+
+$MAKE foo.h || exit 1
+
+test -f foo.h || exit 1
+
+exit 0
diff --git a/tests/yaccpp.test b/tests/yaccpp.test
index c61c169..9ee5b2d 100755
--- a/tests/yaccpp.test
+++ b/tests/yaccpp.test
@@ -14,6 +14,7 @@ bin_PROGRAMS = zardoz
 zardoz_SOURCES = zardoz.yy
 END
 
+$ACLOCAL || exit 1
 $AUTOMAKE || exit 1
 
 grep zardoz.cc Makefile.in
diff --git a/tests/yaccvpath.test b/tests/yaccvpath.test
new file mode 100755
index 0000000..04041fe
--- /dev/null
+++ b/tests/yaccvpath.test
@@ -0,0 +1,101 @@
+#! /bin/sh
+
+# This test checks that dependent files are updated before including
+# in the distribution. `parse.c' depends on `parce.y'. The later is
+# updated so that `parse.c' should be rebuild. Then we are running
+# `make' and `make distdir' and check whether the version of `parse.c'
+# to be distributed is up to date.
+
+. $srcdir/defs || exit 1
+
+# Fail gracefully if no autoconf.
+$needs_autoconf
+# Likewise for some other tools.
+(gcc -v) > /dev/null 2>&1 || exit 77
+(bison -V) > /dev/null 2>&1 || exit 77
+
+cat > configure.in << 'END'
+AC_INIT
+AC_CONFIG_AUX_DIR([.])
+AM_INIT_AUTOMAKE(foo, 0.1)
+PACKAGE=foo
+VERSION=0.1
+AC_PROG_CC
+AC_PROG_YACC
+AC_OUTPUT(Makefile)
+END
+
+cat > Makefile.am << 'END'
+bin_PROGRAMS = foo
+foo_SOURCES = parse.y foo.c
+END
+
+# Original parser, with `foobar'
+cat > parse.y << 'END'
+%{
+int yylex () {return 0;}
+void yyerror (char *s) {}
+%}
+%%
+foobar : 'f' 'o' 'o' 'b' 'a' 'r' {};
+END
+
+cat > foo.c << 'END'
+int main () { return 0; }
+END
+
+# We are not checking Autoconf, so we pick $YACC for it.
+YACC="bison -y"
+export YACC
+
+set -e
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE -a
+
+$YACC parse.y
+mv y.tab.c parse.c
+
+mkdir sub
+cd sub
+../configure
+
+# A delay is needed to make sure that the new parse.y is indeed newer
+# than parse.c, i.e. the they don't have the same timestamp.
+sleep 2
+
+# New parser, with `fubar'
+cat > ../parse.y << 'END'
+%{
+int yylex () {return 0;}
+void yyerror (char *s) {}
+%}
+%%
+fubar : 'f' 'o' 'o' 'b' 'a' 'r' {};
+END
+
+$MAKE
+$MAKE distdir
+grep fubar foo-0.1/parse.c
+
+#
+# Now check to make sure that `make dist' will rebuild the parser.
+#
+
+# A delay is needed to make sure that the new parse.y is indeed newer
+# than parse.c, i.e. the they don't have the same timestamp.
+sleep 2
+
+# New parser, with `maude'
+cat > ../parse.y << 'END'
+%{
+int yylex () {return 0;}
+void yyerror (char *s) {}
+%}
+%%
+maude : 'm' 'a' 'u' 'd' 'e' {};
+END
+
+$MAKE distdir
+grep maude foo-0.1/parse.c
diff --git a/texi-vers.am b/texi-vers.am
deleted file mode 100644
index a2580e5..0000000
--- a/texi-vers.am
+++ /dev/null
@@ -1,45 +0,0 @@
-## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996, 1998, 1999 Free Software Foundation, Inc.
-
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2, or (at your option)
-## any later version.
-
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-## 02111-1307, USA.
-$(srcdir)/@VTEXI@: @address@hidden@VTI@
-       @:
-
-## Depend on configure.in so that version number updates cause a
-## rebuild.
-$(srcdir)/address@hidden@: @TEXI@ $(top_srcdir)/configure.in
-       @echo "@set UPDATED `$(SHELL) @address@hidden 
$(srcdir)/@address@hidden" > @address@hidden
-       @echo "@set EDITION $(VERSION)" >> @address@hidden
-       @echo "@set VERSION $(VERSION)" >> @address@hidden
-## Use cp and rm here because some older "mv"s can't move across
-## filesystems.  Furthermore, GNU "mv" in the AmigaDOS environment
-## can't handle this.
-       @cmp -s @address@hidden $(srcdir)/@VTEXI@ \
-         || (echo "Updating $(srcdir)/@VTEXI@"; \
-             cp @address@hidden $(srcdir)/@VTEXI@)
-       address@hidden -f @address@hidden
-       @cp $(srcdir)/@VTEXI@ $@
-
address@hidden@:
-       -rm -f @address@hidden
-
address@hidden@:
-
address@hidden@:
-
address@hidden@:
-       address@hidden@rm -f $(srcdir)/address@hidden@ $(srcdir)/@VTEXI@
-
diff --git a/texinfo.tex b/texinfo.tex
deleted file mode 100644
index aa52853..0000000
--- a/texinfo.tex
+++ /dev/null
@@ -1,5484 +0,0 @@
-% texinfo.tex -- TeX macros to handle Texinfo files.
-%
-% Load plain if necessary, i.e., if running under initex.
-\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
-%
-\def\texinfoversion{1999-01-05}%
-%
-% Copyright (C) 1985, 86, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98
-% Free Software Foundation, Inc.
-%
-% This texinfo.tex file is free software; you can redistribute it and/or
-% modify it under the terms of the GNU General Public License as
-% published by the Free Software Foundation; either version 2, or (at
-% your option) any later version.
-%
-% This texinfo.tex file is distributed in the hope that it will be
-% useful, but WITHOUT ANY WARRANTY; without even the implied warranty
-% of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-% General Public License for more details.
-%
-% You should have received a copy of the GNU General Public License
-% along with this texinfo.tex file; see the file COPYING.  If not, write
-% to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-% Boston, MA 02111-1307, USA.
-%
-% In other words, you are welcome to use, share and improve this program.
-% You are forbidden to forbid anyone else to use, share and improve
-% what you give them.   Help stamp out software-hoarding!
-%
-% Please try the latest version of texinfo.tex before submitting bug
-% reports; you can get the latest version from:
-%   ftp://ftp.gnu.org/pub/gnu/texinfo.tex
-%   /home/gd/gnu/doc/texinfo.tex on the GNU machines.
-%   (and all GNU mirrors, see http://www.gnu.org/order/ftp.html)
-%   ftp://tug.org/tex/texinfo.tex
-%   ftp://ctan.org/macros/texinfo/texinfo.tex
-%   (and all CTAN mirrors, finger address@hidden for a list).
-% The texinfo.tex in the texinfo distribution itself could well be out
-% of date, so if that's what you're using, please check.
-% 
-% Send bug reports to address@hidden
-% Please include a precise test case in each bug report,
-% including a complete document with which we can reproduce the problem.
-% 
-% To process a Texinfo manual with TeX, it's most reliable to use the
-% texi2dvi shell script that comes with the distribution.  For simple
-% manuals, however, you can get away with:
-%   tex foo.texi
-%   texindex foo.??
-%   tex foo.texi
-%   tex foo.texi
-%   dvips foo.dvi -o # or whatever, to process the dvi file.
-% The extra runs of TeX get the cross-reference information correct.
-% Sometimes one run after texindex suffices, and sometimes you need more
-% than two; texi2dvi does it as many times as necessary.
-
-\message{Loading texinfo [version \texinfoversion]:}
-
-% If in a .fmt file, print the version number
-% and turn on active characters that we couldn't do earlier because
-% they might have appeared in the input file name.
-\everyjob{\message{[Texinfo version \texinfoversion]}%
-  \catcode`+=\active \catcode`\_=\active}
-
-% Save some parts of plain tex whose names we will redefine.
-
-\let\ptexb=\b
-\let\ptexbullet=\bullet
-\let\ptexc=\c
-\let\ptexcomma=\,
-\let\ptexdot=\.
-\let\ptexdots=\dots
-\let\ptexend=\end
-\let\ptexequiv=\equiv
-\let\ptexexclam=\!
-\let\ptexi=\i
-\let\ptexlbrace=\{
-\let\ptexrbrace=\}
-\let\ptexstar=\*
-\let\ptext=\t
-
-% We never want plain's outer \+ definition in Texinfo.
-% For @tex, we can use \tabalign.
-\let\+ = \relax
-
-
-\message{Basics,}
-\chardef\other=12
-
-% If this character appears in an error message or help string, it
-% starts a new line in the output.
-\newlinechar = `^^J
-
-% Set up fixed words for English if not already set.
-\ifx\putwordAppendix\undefined \gdef\putwordAppendix{Appendix}\fi
-\ifx\putwordChapter\undefined  \gdef\putwordChapter{Chapter}\fi
-\ifx\putwordfile\undefined     \gdef\putwordfile{file}\fi
-\ifx\putwordInfo\undefined     \gdef\putwordInfo{Info}\fi
-\ifx\putwordMethodon\undefined \gdef\putwordMethodon{Method on}\fi
-\ifx\putwordon\undefined       \gdef\putwordon{on}\fi
-\ifx\putwordpage\undefined     \gdef\putwordpage{page}\fi
-\ifx\putwordsection\undefined  \gdef\putwordsection{section}\fi
-\ifx\putwordSection\undefined  \gdef\putwordSection{Section}\fi
-\ifx\putwordsee\undefined      \gdef\putwordsee{see}\fi
-\ifx\putwordSee\undefined      \gdef\putwordSee{See}\fi
-\ifx\putwordShortContents\undefined  \gdef\putwordShortContents{Short 
Contents}\fi
-\ifx\putwordTableofContents\undefined\gdef\putwordTableofContents{Table of 
Contents}\fi
-
-% Ignore a token.
-%
-\def\gobble#1{}
-
-\hyphenation{ap-pen-dix}
-\hyphenation{mini-buf-fer mini-buf-fers}
-\hyphenation{eshell}
-\hyphenation{white-space}
-
-% Margin to add to right of even pages, to left of odd pages.
-\newdimen \bindingoffset
-\newdimen \normaloffset
-\newdimen\pagewidth \newdimen\pageheight
-
-% Sometimes it is convenient to have everything in the transcript file
-% and nothing on the terminal.  We don't just call \tracingall here,
-% since that produces some useless output on the terminal.
-%
-\def\gloggingall{\begingroup \globaldefs = 1 \loggingall \endgroup}%
-\ifx\eTeXversion\undefined
-\def\loggingall{\tracingcommands2 \tracingstats2
-   \tracingpages1 \tracingoutput1 \tracinglostchars1
-   \tracingmacros2 \tracingparagraphs1 \tracingrestores1
-   \showboxbreadth\maxdimen\showboxdepth\maxdimen
-}%
-\else
-\def\loggingall{\tracingcommands3 \tracingstats2
-   \tracingpages1 \tracingoutput1 \tracinglostchars1
-   \tracingmacros2 \tracingparagraphs1 \tracingrestores1
-   \tracingscantokens1 \tracingassigns1 \tracingifs1
-   \tracinggroups1 \tracingnesting2
-   \showboxbreadth\maxdimen\showboxdepth\maxdimen
-}%
-\fi
-
-% For @cropmarks command.
-% Do @cropmarks to get crop marks.
-% 
-\newif\ifcropmarks
-\let\cropmarks = \cropmarkstrue
-%
-% Dimensions to add cropmarks at corners.
-% Added by P. A. MacKay, 12 Nov. 1986
-%
-\newdimen\outerhsize \newdimen\outervsize % set by the paper size routines
-\newdimen\cornerlong  \cornerlong=1pc
-\newdimen\cornerthick \cornerthick=.3pt
-\newdimen\topandbottommargin \topandbottommargin=.75in
-
-% Main output routine.
-\chardef\PAGE = 255
-\output = {\onepageout{\pagecontents\PAGE}}
-
-\newbox\headlinebox
-\newbox\footlinebox
-
-% \onepageout takes a vbox as an argument.  Note that \pagecontents
-% does insertions, but you have to call it yourself.
-\def\onepageout#1{%
-  \ifcropmarks \hoffset=0pt \else \hoffset=\normaloffset \fi
-  %
-  \ifodd\pageno  \advance\hoffset by \bindingoffset
-  \else \advance\hoffset by -\bindingoffset\fi
-  %
-  % Do this outside of the \shipout so @code etc. will be expanded in
-  % the headline as they should be, not taken literally (outputting ''code).
-  \setbox\headlinebox = \vbox{\let\hsize=\pagewidth \makeheadline}%
-  \setbox\footlinebox = \vbox{\let\hsize=\pagewidth \makefootline}%
-  %
-  {%
-    % Have to do this stuff outside the \shipout because we want it to
-    % take effect in \write's, yet the group defined by the \vbox ends
-    % before the \shipout runs.
-    %
-    \escapechar = `\\     % use backslash in output files.
-    \indexdummies         % don't expand commands in the output.
-    \normalturnoffactive  % \ in index entries must not stay \, e.g., if
-                   % the page break happens to be in the middle of an example.
-    \shipout\vbox{%
-      \ifcropmarks \vbox to \outervsize\bgroup
-        \hsize = \outerhsize
-        \vskip-\topandbottommargin
-        \vtop to0pt{%
-          \line{\ewtop\hfil\ewtop}%
-          \nointerlineskip
-          \line{%
-            \vbox{\moveleft\cornerthick\nstop}%
-            \hfill
-            \vbox{\moveright\cornerthick\nstop}%
-          }%
-          \vss}%
-        \vskip\topandbottommargin
-        \line\bgroup
-          \hfil % center the page within the outer (page) hsize.
-          \ifodd\pageno\hskip\bindingoffset\fi
-          \vbox\bgroup
-      \fi
-      %
-      \unvbox\headlinebox
-      \pagebody{#1}%
-      \ifdim\ht\footlinebox > 0pt
-        % Only leave this space if the footline is nonempty.
-        % (We lessened \vsize for it in \oddfootingxxx.)
-        % The \baselineskip=24pt in plain's \makefootline has no effect.
-        \vskip 2\baselineskip
-        \unvbox\footlinebox
-      \fi
-      %
-      \ifcropmarks
-          \egroup % end of \vbox\bgroup
-        \hfil\egroup % end of (centering) \line\bgroup
-        \vskip\topandbottommargin plus1fill minus1fill
-        \boxmaxdepth = \cornerthick
-        \vbox to0pt{\vss
-          \line{%
-            \vbox{\moveleft\cornerthick\nsbot}%
-            \hfill
-            \vbox{\moveright\cornerthick\nsbot}%
-          }%
-          \nointerlineskip
-          \line{\ewbot\hfil\ewbot}%
-        }%
-      \egroup % \vbox from first cropmarks clause
-      \fi
-    }% end of \shipout\vbox
-  }% end of group with \turnoffactive
-  \advancepageno
-  \ifnum\outputpenalty>-20000 \else\dosupereject\fi
-}
-
-\newinsert\margin \dimen\margin=\maxdimen
-
-\def\pagebody#1{\vbox to\pageheight{\boxmaxdepth=\maxdepth #1}}
-{\catcode`\@ =11
-\gdef\pagecontents#1{\ifvoid\topins\else\unvbox\topins\fi
-% marginal hacks, address@hidden (Juha Takala)
-\ifvoid\margin\else % marginal info is present
-  \rlap{\kern\hsize\vbox address@hidden \vss}}\fi
address@hidden \unvbox#1
-\ifvoid\footins\else\vskip\skip\footins\footnoterule \unvbox\footins\fi
address@hidden \kern-\dimen@ \vfil \fi}
-}
-
-% Here are the rules for the cropmarks.  Note that they are
-% offset so that the space between them is truly \outerhsize or \outervsize
-% (P. A. MacKay, 12 November, 1986)
-%
-\def\ewtop{\vrule height\cornerthick depth0pt width\cornerlong}
-\def\nstop{\vbox
-  {\hrule height\cornerthick depth\cornerlong width\cornerthick}}
-\def\ewbot{\vrule height0pt depth\cornerthick width\cornerlong}
-\def\nsbot{\vbox
-  {\hrule height\cornerlong depth\cornerthick width\cornerthick}}
-
-% Parse an argument, then pass it to #1.  The argument is the rest of
-% the input line (except we remove a trailing comment).  #1 should be a
-% macro which expects an ordinary undelimited TeX argument.
-%
-\def\parsearg#1{%
-  \let\next = #1%
-  \begingroup
-    \obeylines
-    \futurelet\temp\parseargx
-}
-
-% If the next token is an obeyed space (from an @example environment or
-% the like), remove it and recurse.  Otherwise, we're done.
-\def\parseargx{%
-  % \obeyedspace is defined far below, after the definition of \sepspaces.
-  \ifx\obeyedspace\temp
-    \expandafter\parseargdiscardspace
-  \else
-    \expandafter\parseargline
-  \fi
-}
-
-% Remove a single space (as the delimiter token to the macro call).
-{\obeyspaces %
- \gdef\parseargdiscardspace {\futurelet\temp\parseargx}}
-
-{\obeylines %
-  \gdef\parseargline#1^^M{%
-    \endgroup % End of the group started in \parsearg.
-    %
-    % First remove any @c comment, then any @comment.
-    % Result of each macro is put in \toks0.
-    \argremovec #1\c\relax %
-    \expandafter\argremovecomment \the\toks0 \comment\relax %
-    %
-    % Call the caller's macro, saved as \next in \parsearg.
-    \expandafter\next\expandafter{\the\toks0}%
-  }%
-}
-
-% Since all \c{,omment} does is throw away the argument, we can let TeX
-% do that for us.  The \relax here is matched by the \relax in the call
-% in \parseargline; it could be more or less anything, its purpose is
-% just to delimit the argument to the \c.
-\def\argremovec#1\c#2\relax{\toks0 = {#1}}
-\def\argremovecomment#1\comment#2\relax{\toks0 = {#1}}
-
-% \argremovec{,omment} might leave us with trailing spaces, though; e.g.,
-%    @end itemize  @c foo
-% will have two active spaces as part of the argument with the
-% `itemize'.  Here we remove all active spaces from #1, and assign the
-% result to \toks0.
-%
-% This loses if there are any *other* active characters besides spaces
-% in the argument -- _ ^ +, for example -- since they get expanded.
-% Fortunately, Texinfo does not define any such commands.  (If it ever
-% does, the catcode of the characters in questionwill have to be changed
-% here.)  But this means we cannot call \removeactivespaces as part of
-% \argremovec{,omment}, since @c uses \parsearg, and thus the argument
-% that \parsearg gets might well have any character at all in it.
-%
-\def\removeactivespaces#1{%
-  \begingroup
-    \ignoreactivespaces
-    \edef\temp{#1}%
-    \global\toks0 = \expandafter{\temp}%
-  \endgroup
-}
-
-% Change the active space to expand to nothing.
-%
-\begingroup
-  \obeyspaces
-  \gdef\ignoreactivespaces{\obeyspaces\let =\empty}
-\endgroup
-
-
-\def\flushcr{\ifx\par\lisppar \def\next##1{}\else \let\next=\relax \fi \next}
-
-%% These are used to keep @begin/@end levels from running away
-%% Call \inENV within environments (after a \begingroup)
-\newif\ifENV \ENVfalse \def\inENV{\ifENV\relax\else\ENVtrue\fi}
-\def\ENVcheck{%
-\ifENV\errmessage{Still within an environment; press RETURN to continue}
-\endgroup\fi} % This is not perfect, but it should reduce lossage
-
-% @begin foo  is the same as @foo, for now.
-\newhelp\EMsimple{Press RETURN to continue.}
-
-\outer\def\begin{\parsearg\beginxxx}
-
-\def\beginxxx #1{%
-\expandafter\ifx\csname #1\endcsname\relax
-{\errhelp=\EMsimple \errmessage{Undefined command @begin #1}}\else
-\csname #1\endcsname\fi}
-
-% @end foo executes the definition of \Efoo.
-%
-\def\end{\parsearg\endxxx}
-\def\endxxx #1{%
-  \removeactivespaces{#1}%
-  \edef\endthing{\the\toks0}%
-  %
-  \expandafter\ifx\csname E\endthing\endcsname\relax
-    \expandafter\ifx\csname \endthing\endcsname\relax
-      % There's no \foo, i.e., no ``environment'' foo.
-      \errhelp = \EMsimple
-      \errmessage{Undefined command address@hidden \endthing'}%
-    \else
-      \unmatchedenderror\endthing
-    \fi
-  \else
-    % Everything's ok; the right environment has been started.
-    \csname E\endthing\endcsname
-  \fi
-}
-
-% There is an environment #1, but it hasn't been started.  Give an error.
-%
-\def\unmatchedenderror#1{%
-  \errhelp = \EMsimple
-  \errmessage{This address@hidden #1' doesn't have a matching address@hidden'}%
-}
-
-% Define the control sequence \E#1 to give an unmatched @end error.
-%
-\def\defineunmatchedend#1{%
-  \expandafter\def\csname E#1\endcsname{\unmatchedenderror{#1}}%
-}
-
-
-% Single-spacing is done by various environments (specifically, in
-% \nonfillstart and \quotations).
-\newskip\singlespaceskip \singlespaceskip = 12.5pt
-\def\singlespace{%
-  % Why was this kern here?  It messes up equalizing space above and below
-  % environments.  --karl, 6may93
-  %{\advance \baselineskip by -\singlespaceskip
-  %\kern \baselineskip}%
-  \setleading \singlespaceskip
-}
-
-%% Simple single-character @ commands
-
-% @@ prints an @
-% Kludge this until the fonts are right (grr).
address@hidden
-
-% This is turned off because it was never documented
-% and you can use @w{...} around a quote to suppress ligatures.
-%% Define @` and @' to be the same as ` and '
-%% but suppressing ligatures.
-%\def\`{{`}}
-%\def\'{{'}}
-
-% Used to generate quoted braces.
-\def\mylbrace {{\tt\char123}}
-\def\myrbrace {{\tt\char125}}
-\let\{=\mylbrace
-\let\}=\myrbrace
-\begingroup
-  % Definitions to produce actual \{ & \} command in an index.
-  \catcode`\{ = 12 \catcode`\} = 12
-  \catcode`\[ = 1 \catcode`\] = 2
-  \catcode`\@ = 0 \catcode`\\ = 12
-  @address@hidden
-  @address@hidden
address@hidden
-
-% Accents: @, @dotaccent @ringaccent @ubaraccent @udotaccent
-% Others are defined by plain TeX: @` @' @" @^ @~ @= @v @H.
-\let\, = \c
-\let\dotaccent = \.
-\def\ringaccent#1{{\accent23 #1}}
-\let\tieaccent = \t
-\let\ubaraccent = \b
-\let\udotaccent = \d
-
-% Other special characters: @questiondown @exclamdown
-% Plain TeX defines: @AA @AE @O @OE @L (and lowercase versions) @ss.
-\def\questiondown{?`}
-\def\exclamdown{!`}
-
-% Dotless i and dotless j, used for accents.
-\def\imacro{i}
-\def\jmacro{j}
-\def\dotless#1{%
-  \def\temp{#1}%
-  \ifx\temp\imacro \ptexi
-  \else\ifx\temp\jmacro \j
-  \else address@hidden can be used only with i or j}%
-  \fi\fi
-}
-
-% Be sure we're in horizontal mode when doing a tie, since we make space
-% equivalent to this in @example-like environments. Otherwise, a space
-% at the beginning of a line will start with \penalty -- and
-% since \penalty is valid in vertical mode, we'd end up putting the
-% penalty on the vertical list instead of in the new paragraph.
-{\catcode`@ = 11
- % Avoid using address@hidden directly, because that causes trouble
- % if the definition is written into an index file.
- \global\let\tiepenalty = address@hidden
- \gdef\tie{\leavevmode\penalty\tiepenalty\ }
-}
-
-% @: forces normal size whitespace following.
-\def\:{\spacefactor=1000 }
-
-% @* forces a line break.
-\def\*{\hfil\break\hbox{}\ignorespaces}
-
-% @. is an end-of-sentence period.
-\def\.{.\spacefactor=3000 }
-
-% @! is an end-of-sentence bang.
-\def\!{!\spacefactor=3000 }
-
-% @? is an end-of-sentence query.
-\def\?{?\spacefactor=3000 }
-
-% @w prevents a word break.  Without the \leavevmode, @w at the
-% beginning of a paragraph, when TeX is still in vertical mode, would
-% produce a whole line of output instead of starting the paragraph.
-\def\w#1{\leavevmode\hbox{#1}}
-
-% @group ... @end group forces ... to be all on one page, by enclosing
-% it in a TeX vbox.  We use \vtop instead of \vbox to construct the box
-% to keep its height that of a normal line.  According to the rules for
-% \topskip (p.114 of the TeXbook), the glue inserted is
-% max (\topskip - \ht (first item), 0).  If that height is large,
-% therefore, no glue is inserted, and the space between the headline and
-% the text is small, which looks bad.
-%
-\def\group{\begingroup
-  \ifnum\catcode13=\active \else
-    \errhelp = \groupinvalidhelp
-    address@hidden invalid in context where filling is enabled}%
-  \fi
-  %
-  % The \vtop we start below produces a box with normal height and large
-  % depth; thus, TeX puts \baselineskip glue before it, and (when the
-  % next line of text is done) \lineskip glue after it.  (See p.82 of
-  % the TeXbook.)  Thus, space below is not quite equal to space
-  % above.  But it's pretty close.
-  \def\Egroup{%
-    \egroup           % End the \vtop.
-    \endgroup         % End the \group.
-  }%
-  %
-  \vtop\bgroup
-    % We have to put a strut on the last line in case the @group is in
-    % the midst of an example, rather than completely enclosing it.
-    % Otherwise, the interline space between the last line of the group
-    % and the first line afterwards is too small.  But we can't put the
-    % strut in \Egroup, since there it would be on a line by itself.
-    % Hence this just inserts a strut at the beginning of each line.
-    \everypar = {\strut}%
-    %
-    % Since we have a strut on every line, we don't need any of TeX's
-    % normal interline spacing.
-    \offinterlineskip
-    %
-    % OK, but now we have to do something about blank
-    % lines in the input in @example-like environments, which normally
-    % just turn into \lisppar, which will insert no space now that we've
-    % turned off the interline space.  Simplest is to make them be an
-    % empty paragraph.
-    \ifx\par\lisppar
-      \edef\par{\leavevmode \par}%
-      %
-      % Reset ^^M's definition to new definition of \par.
-      \obeylines
-    \fi
-    %
-    % Do @comment since we are called inside an environment such as
-    % @example, where each end-of-line in the input causes an
-    % end-of-line in the output.  We don't want the end-of-line after
-    % the address@hidden' to put extra space in the output.  Since @group
-    % should appear on a line by itself (according to the Texinfo
-    % manual), we don't worry about eating any user text.
-    \comment
-}
-%
-% TeX puts in an \escapechar (i.e., `@') at the beginning of the help
-% message, so this ends up printing address@hidden can only ...'.
-%
-\newhelp\groupinvalidhelp{%
-group can only be used in environments such as @example,^^J%
-where each line of input produces a line of output.}
-
-% @need space-in-mils
-% forces a page break if there is not space-in-mils remaining.
-
-\newdimen\mil  \mil=0.001in
-
-\def\need{\parsearg\needx}
-
-% Old definition--didn't work.
-%\def\needx #1{\par %
-%% This method tries to make TeX break the page naturally
-%% if the depth of the box does not fit.
-%{\baselineskip=0pt%
-%\vtop to #1\mil{\vfil}\kern -#1\mil\nobreak
-%\prevdepth=-1000pt
-%}}
-
-\def\needx#1{%
-  % Go into vertical mode, so we don't make a big box in the middle of a
-  % paragraph.
-  \par
-  %
-  % Don't add any leading before our big empty box, but allow a page
-  % break, since the best break might be right here.
-  \allowbreak
-  \nointerlineskip
-  \vtop to #1\mil{\vfil}%
-  %
-  % TeX does not even consider page breaks if a penalty added to the
-  % main vertical list is 10000 or more.  But in order to see if the
-  % empty box we just added fits on the page, we must make it consider
-  % page breaks.  On the other hand, we don't want to actually break the
-  % page after the empty box.  So we use a penalty of 9999.
-  %
-  % There is an extremely small chance that TeX will actually break the
-  % page at this \penalty, if there are no other feasible breakpoints in
-  % sight.  (If the user is using lots of big @group commands, which
-  % almost-but-not-quite fill up a page, TeX will have a hard time doing
-  % good page breaking, for example.)  However, I could not construct an
-  % example where a page broke at this \penalty; if it happens in a real
-  % document, then we can reconsider our strategy.
-  \penalty9999
-  %
-  % Back up by the size of the box, whether we did a page break or not.
-  \kern -#1\mil
-  %
-  % Do not allow a page break right after this kern.
-  \nobreak
-}
-
-% @br   forces paragraph break
-
-\let\br = \par
-
-% @dots{} output an ellipsis using the current font.
-% We do .5em per period so that it has the same spacing in a typewriter
-% font as three actual period characters.
-%
-\def\dots{%
-  \leavevmode
-  \hbox to 1.5em{%
-    \hskip 0pt plus 0.25fil minus 0.25fil
-    .\hss.\hss.%
-    \hskip 0pt plus 0.5fil minus 0.5fil
-  }%
-}
-
-% @enddots{} is an end-of-sentence ellipsis.
-% 
-\def\enddots{%
-  \leavevmode
-  \hbox to 2em{%
-    \hskip 0pt plus 0.25fil minus 0.25fil
-    .\hss.\hss.\hss.%
-    \hskip 0pt plus 0.5fil minus 0.5fil
-  }%
-  \spacefactor=3000
-}
-
-
-% @page    forces the start of a new page
-%
-\def\page{\par\vfill\supereject}
-
-% @exdent text....
-% outputs text on separate line in roman font, starting at standard page margin
-
-% This records the amount of indent in the innermost environment.
-% That's how much \exdent should take out.
-\newskip\exdentamount
-
-% This defn is used inside fill environments such as @defun.
-\def\exdent{\parsearg\exdentyyy}
-\def\exdentyyy #1{{\hfil\break\hbox{\kern -\exdentamount{\rm#1}}\hfil\break}}
-
-% This defn is used inside nofill environments such as @example.
-\def\nofillexdent{\parsearg\nofillexdentyyy}
-\def\nofillexdentyyy #1{{\advance \leftskip by -\exdentamount
-\leftline{\hskip\leftskip{\rm#1}}}}
-
-% @inmargin{TEXT} puts TEXT in the margin next to the current paragraph.
-
-\def\inmargin#1{%
-\strut\vadjust{\nobreak\kern-\strutdepth
-  \vtop to \strutdepth{\baselineskip\strutdepth\vss
-  \llap{\rightskip=\inmarginspacing \vbox{\noindent #1}}\null}}}
-\newskip\inmarginspacing \inmarginspacing=1cm
-\def\strutdepth{\dp\strutbox}
-
-%\hbox{{\rm#1}}\hfil\break}}
-
-% @include file    insert text of that file as input.
-% Allow normal characters that  we make active in the argument (a file name).
-\def\include{\begingroup
-  \catcode`\\=12
-  \catcode`~=12
-  \catcode`^=12
-  \catcode`_=12
-  \catcode`|=12
-  \catcode`<=12
-  \catcode`>=12
-  \catcode`+=12
-  \parsearg\includezzz}
-% Restore active chars for included file.
-\def\includezzz#1{\endgroup\begingroup
-  % Read the included file in a group so nested @include's work.
-  \def\thisfile{#1}%
-  \input\thisfile
-\endgroup}
-
-\def\thisfile{}
-
-% @center line   outputs that line, centered
-
-\def\center{\parsearg\centerzzz}
-\def\centerzzz #1{{\advance\hsize by -\leftskip
-\advance\hsize by -\rightskip
-\centerline{#1}}}
-
-% @sp n   outputs n lines of vertical space
-
-\def\sp{\parsearg\spxxx}
-\def\spxxx #1{\vskip #1\baselineskip}
-
-% @comment ...line which is ignored...
-% @c is the same as @comment
-% @ignore ... @end ignore  is another way to write a comment
-
-\def\comment{\begingroup \catcode`\^^M=\other%
address@hidden \catcode`\{=\other \catcode`\}=\other%
-\commentxxx}
-{\catcode`\^^M=\other \gdef\commentxxx#1^^M{\endgroup}}
-
-\let\c=\comment
-
-% @paragraphindent  is defined for the Info formatting commands only.
-\let\paragraphindent=\comment
-
-% Prevent errors for section commands.
-% Used in @ignore and in failing conditionals.
-\def\ignoresections{%
-\let\chapter=\relax
-\let\unnumbered=\relax
-\let\top=\relax
-\let\unnumberedsec=\relax
-\let\unnumberedsection=\relax
-\let\unnumberedsubsec=\relax
-\let\unnumberedsubsection=\relax
-\let\unnumberedsubsubsec=\relax
-\let\unnumberedsubsubsection=\relax
-\let\section=\relax
-\let\subsec=\relax
-\let\subsubsec=\relax
-\let\subsection=\relax
-\let\subsubsection=\relax
-\let\appendix=\relax
-\let\appendixsec=\relax
-\let\appendixsection=\relax
-\let\appendixsubsec=\relax
-\let\appendixsubsection=\relax
-\let\appendixsubsubsec=\relax
-\let\appendixsubsubsection=\relax
-\let\contents=\relax
-\let\smallbook=\relax
-\let\titlepage=\relax
-}
-
-% Used in nested conditionals, where we have to parse the Texinfo source
-% and so want to turn off most commands, in case they are used
-% incorrectly.
-%
-\def\ignoremorecommands{%
-  \let\defcodeindex = \relax
-  \let\defcv = \relax
-  \let\deffn = \relax
-  \let\deffnx = \relax
-  \let\defindex = \relax
-  \let\defivar = \relax
-  \let\defmac = \relax
-  \let\defmethod = \relax
-  \let\defop = \relax
-  \let\defopt = \relax
-  \let\defspec = \relax
-  \let\deftp = \relax
-  \let\deftypefn = \relax
-  \let\deftypefun = \relax
-  \let\deftypevar = \relax
-  \let\deftypevr = \relax
-  \let\defun = \relax
-  \let\defvar = \relax
-  \let\defvr = \relax
-  \let\ref = \relax
-  \let\xref = \relax
-  \let\printindex = \relax
-  \let\pxref = \relax
-  \let\settitle = \relax
-  \let\setchapternewpage = \relax
-  \let\setchapterstyle = \relax
-  \let\everyheading = \relax
-  \let\evenheading = \relax
-  \let\oddheading = \relax
-  \let\everyfooting = \relax
-  \let\evenfooting = \relax
-  \let\oddfooting = \relax
-  \let\headings = \relax
-  \let\include = \relax
-  \let\lowersections = \relax
-  \let\down = \relax
-  \let\raisesections = \relax
-  \let\up = \relax
-  \let\set = \relax
-  \let\clear = \relax
-  \let\item = \relax
-}
-
-% Ignore @ignore ... @end ignore.
-%
-\def\ignore{\doignore{ignore}}
-
-% Ignore @ifinfo, @ifhtml, @ifnottex, @html, @menu, and @direntry text.
-%
-\def\ifinfo{\doignore{ifinfo}}
-\def\ifhtml{\doignore{ifhtml}}
-\def\ifnottex{\doignore{ifnottex}}
-\def\html{\doignore{html}}
-\def\menu{\doignore{menu}}
-\def\direntry{\doignore{direntry}}
-
-% @dircategory CATEGORY  -- specify a category of the dir file
-% which this file should belong to.  Ignore this in TeX.
-\let\dircategory = \comment
-
-% Ignore text until a line address@hidden #1'.
-%
-\def\doignore#1{\begingroup
-  % Don't complain about control sequences we have declared \outer.
-  \ignoresections
-  %
-  % Define a command to swallow text until we reach address@hidden #1'.
-  % This @ is a catcode 12 token (that is the normal catcode of @ in
-  % this texinfo.tex file).  We change the catcode of @ below to match.
-  address@hidden #1{\enddoignore}%
-  %
-  % Make sure that spaces turn into tokens that match what \doignoretext wants.
-  \catcode32 = 10
-  %
-  % Ignore braces, too, so mismatched braces don't cause trouble.
-  \catcode`\{ = 9
-  \catcode`\} = 9
-  %
-  % We must not have @c interpreted as a control sequence.
-  \catcode`\@ = 12
-  %
-  % Make the letter c a comment character so that the rest of the line
-  % will be ignored. This way, the document can have (for example)
-  %   @c @end ifinfo
-  % and the @end ifinfo will be properly ignored.
-  % (We've just changed @ to catcode 12.)
-  \catcode`\c = 14
-  %
-  % And now expand that command.
-  \doignoretext
-}
-
-% What we do to finish off ignored text.
-%
-\def\enddoignore{\endgroup\ignorespaces}%
-
-\newif\ifwarnedobs\warnedobsfalse
-\def\obstexwarn{%
-  \ifwarnedobs\relax\else
-  % We need to warn folks that they may have trouble with TeX 3.0.
-  % This uses \immediate\write16 rather than \message to get newlines.
-    \immediate\write16{}
-    \immediate\write16{***WARNING*** for users of Unix TeX 3.0!}
-    \immediate\write16{This manual trips a bug in TeX version 3.0 (tex hangs).}
-    \immediate\write16{If you are running another version of TeX, relax.}
-    \immediate\write16{If you are running Unix TeX 3.0, kill this TeX process.}
-    \immediate\write16{  Then upgrade your TeX installation if you can.}
-    \immediate\write16{  (See ftp://ftp.gnu.org/pub/gnu/TeX.README.)}
-    \immediate\write16{If you are stuck with version 3.0, run the}
-    \immediate\write16{  script ``tex3patch'' from the Texinfo distribution}
-    \immediate\write16{  to use a workaround.}
-    \immediate\write16{}
-    \global\warnedobstrue
-    \fi
-}
-
-% **In TeX 3.0, setting text in \nullfont hangs tex.  For a
-% workaround (which requires the file ``dummy.tfm'' to be installed),
-% uncomment the following line:
-%%%%%\font\nullfont=dummy\let\obstexwarn=\relax
-
-% Ignore text, except that we keep track of conditional commands for
-% purposes of nesting, up to an address@hidden #1' command.
-%
-\def\nestedignore#1{%
-  \obstexwarn
-  % We must actually expand the ignored text to look for the @end
-  % command, so that nested ignore constructs work.  Thus, we put the
-  % text into a \vbox and then do nothing with the result.  To minimize
-  % the change of memory overflow, we follow the approach outlined on
-  % page 401 of the TeXbook: make the current font be a dummy font.
-  %
-  \setbox0 = \vbox\bgroup
-    % Don't complain about control sequences we have declared \outer.
-    \ignoresections
-    %
-    % Define address@hidden #1' to end the box, which will in turn undefine the
-    % @end command again.
-    \expandafter\def\csname E#1\endcsname{\egroup\ignorespaces}%
-    %
-    % We are going to be parsing Texinfo commands.  Most cause no
-    % trouble when they are used incorrectly, but some commands do
-    % complicated argument parsing or otherwise get confused, so we
-    % undefine them.
-    %
-    % We can't do anything about stray @-signs, unfortunately;
-    % they'll produce `undefined control sequence' errors.
-    \ignoremorecommands
-    %
-    % Set the current font to be \nullfont, a TeX primitive, and define
-    % all the font commands to also use \nullfont.  We don't use
-    % dummy.tfm, as suggested in the TeXbook, because not all sites
-    % might have that installed.  Therefore, math mode will still
-    % produce output, but that should be an extremely small amount of
-    % stuff compared to the main input.
-    %
-    \nullfont
-    \let\tenrm = \nullfont  \let\tenit = \nullfont  \let\tensl = \nullfont
-    \let\tenbf = \nullfont  \let\tentt = \nullfont  \let\smallcaps = \nullfont
-    \let\tensf = \nullfont
-    % Similarly for index fonts (mostly for their use in
-    % smallexample)
-    \let\indrm = \nullfont  \let\indit = \nullfont  \let\indsl = \nullfont
-    \let\indbf = \nullfont  \let\indtt = \nullfont  \let\indsc = \nullfont
-    \let\indsf = \nullfont
-    %
-    % Don't complain when characters are missing from the fonts.
-    \tracinglostchars = 0
-    %
-    % Don't bother to do space factor calculations.
-    \frenchspacing
-    %
-    % Don't report underfull hboxes.
-    \hbadness = 10000
-    %
-    % Do minimal line-breaking.
-    \pretolerance = 10000
-    %
-    % Do not execute instructions in @tex
-    \def\tex{\doignore{tex}}%
-    % Do not execute macro definitions.
-    % `c' is a comment character, so the word `macro' will get cut off.
-    \def\macro{\doignore{ma}}%
-}
-
-% @set VAR sets the variable VAR to an empty value.
-% @set VAR REST-OF-LINE sets VAR to the value REST-OF-LINE.
-%
-% Since we want to separate VAR from REST-OF-LINE (which might be
-% empty), we can't just use \parsearg; we have to insert a space of our
-% own to delimit the rest of the line, and then take it out again if we
-% didn't need it.  Make sure the catcode of space is correct to avoid
-% losing inside @example, for instance.
-%
-\def\set{\begingroup\catcode` =10
-  \catcode`\-=12 \catcode`\_=12 % Allow - and _ in VAR.
-  \parsearg\setxxx}
-\def\setxxx#1{\setyyy#1 \endsetyyy}
-\def\setyyy#1 #2\endsetyyy{%
-  \def\temp{#2}%
-  \ifx\temp\empty \global\expandafter\let\csname SET#1\endcsname = \empty
-  \else \setzzz{#1}#2\endsetzzz % Remove the trailing space \setxxx inserted.
-  \fi
-  \endgroup
-}
-% Can't use \xdef to pre-expand #2 and save some time, since \temp or
-% \next or other control sequences that we've defined might get us into
-% an infinite loop. Consider address@hidden foo @cite{bar}'.
-\def\setzzz#1#2 \endsetzzz{\expandafter\gdef\csname SET#1\endcsname{#2}}
-
-% @clear VAR clears (i.e., unsets) the variable VAR.
-%
-\def\clear{\parsearg\clearxxx}
-\def\clearxxx#1{\global\expandafter\let\csname SET#1\endcsname=\relax}
-
-% @value{foo} gets the text saved in variable foo.
-%
-{
-  \catcode`\_ = \active
-  %
-  % We might end up with active _ or - characters in the argument if
-  % we're called from @code, as @address@hidden  So \let any
-  % such active characters to their normal equivalents.
-  \gdef\value{\begingroup
-    \catcode`\-=12 \catcode`\_=12
-    \indexbreaks \let_\normalunderscore
-    \valuexxx}
-}
-\def\valuexxx#1{\expandablevalue{#1}\endgroup}
-
-% We have this subroutine so that we can handle at least some @value's
-% properly in indexes (we \let\value to this in \indexdummies).  Ones
-% whose names contain - or _ still won't work, but we can't do anything
-% about that.  The command has to be fully expandable, since the result
-% winds up in the index file.  This means that if the variable's value
-% contains other Texinfo commands, it's almost certain it will fail
-% (although perhaps we could fix that with sufficient work to do a
-% one-level expansion on the result, instead of complete).
-% 
-\def\expandablevalue#1{%
-  \expandafter\ifx\csname SET#1\endcsname\relax
-    {[No value for ``#1'']}%
-  \else
-    \csname SET#1\endcsname
-  \fi
-}
-
-% @ifset VAR ... @end ifset reads the `...' iff VAR has been defined
-% with @set.
-%
-\def\ifset{\parsearg\ifsetxxx}
-\def\ifsetxxx #1{%
-  \expandafter\ifx\csname SET#1\endcsname\relax
-    \expandafter\ifsetfail
-  \else
-    \expandafter\ifsetsucceed
-  \fi
-}
-\def\ifsetsucceed{\conditionalsucceed{ifset}}
-\def\ifsetfail{\nestedignore{ifset}}
-\defineunmatchedend{ifset}
-
-% @ifclear VAR ... @end ifclear reads the `...' iff VAR has never been
-% defined with @set, or has been undefined with @clear.
-%
-\def\ifclear{\parsearg\ifclearxxx}
-\def\ifclearxxx #1{%
-  \expandafter\ifx\csname SET#1\endcsname\relax
-    \expandafter\ifclearsucceed
-  \else
-    \expandafter\ifclearfail
-  \fi
-}
-\def\ifclearsucceed{\conditionalsucceed{ifclear}}
-\def\ifclearfail{\nestedignore{ifclear}}
-\defineunmatchedend{ifclear}
-
-% @iftex, @ifnothtml, @ifnotinfo always succeed; we read the text
-% following, through the first @end iftex (etc.).  Make address@hidden iftex'
-% (etc.) valid only after an @iftex.
-%
-\def\iftex{\conditionalsucceed{iftex}}
-\def\ifnothtml{\conditionalsucceed{ifnothtml}}
-\def\ifnotinfo{\conditionalsucceed{ifnotinfo}}
-\defineunmatchedend{iftex}
-\defineunmatchedend{ifnothtml}
-\defineunmatchedend{ifnotinfo}
-
-% We can't just want to start a group at @iftex (for example) and end it
-% at @end iftex, since then @set commands inside the conditional have no
-% effect (they'd get reverted at the end of the group).  So we must
-% define \Eiftex to redefine itself to be its previous value.  (We can't
-% just define it to fail again with an ``unmatched end'' error, since
-% the @ifset might be nested.)
-%
-\def\conditionalsucceed#1{%
-  \edef\temp{%
-    % Remember the current value of \E#1.
-    \let\nece{prevE#1} = \nece{E#1}%
-    %
-    % At the address@hidden #1', redefine \E#1 to be its previous value.
-    \def\nece{E#1}{\let\nece{E#1} = \nece{prevE#1}}%
-  }%
-  \temp
-}
-
-% We need to expand lots of \csname's, but we don't want to expand the
-% control sequences after we've constructed them.
-%
-\def\nece#1{\expandafter\noexpand\csname#1\endcsname}
-
-% @asis just yields its argument.  Used with @table, for example.
-%
-\def\asis#1{#1}
-
-% @math means output in math mode.
-% We don't use $'s directly in the definition of \math because control
-% sequences like \math are expanded when the toc file is written.  Then,
-% we read the toc file back, the $'s will be normal characters (as they
-% should be, according to the definition of Texinfo).  So we must use a
-% control sequence to switch into and out of math mode.
-%
-% This isn't quite enough for @math to work properly in indices, but it
-% seems unlikely it will ever be needed there.
-%
-\let\implicitmath = $
-\def\math#1{\implicitmath #1\implicitmath}
-
-% @bullet and @minus need the same treatment as @math, just above.
-\def\bullet{\implicitmath\ptexbullet\implicitmath}
-\def\minus{\implicitmath-\implicitmath}
-
-% @refill is a no-op.
-\let\refill=\relax
-
-% If working on a large document in chapters, it is convenient to
-% be able to disable indexing, cross-referencing, and contents, for test runs.
-% This is done with @novalidate (before @setfilename).
-%
-\newif\iflinks \linkstrue % by default we want the aux files.
-\let\novalidate = \linksfalse
-
-% @setfilename is done at the beginning of every texinfo file.
-% So open here the files we need to have open while reading the input.
-% This makes it possible to make a .fmt file for texinfo.
-\def\setfilename{%
-   \iflinks 
-     \readauxfile
-   \fi % \openindices needs to do some work in any case.
-   \openindices
-   \fixbackslash  % Turn off hack to swallow `\input texinfo'.
-   \global\let\setfilename=\comment % Ignore extra @setfilename cmds.
-   %
-   % If texinfo.cnf is present on the system, read it.
-   % Useful for site-wide @afourpaper, etc.
-   % Just to be on the safe side, close the input stream before the \input.
-   \openin 1 texinfo.cnf
-   \ifeof1 \let\temp=\relax \else \def\temp{\input texinfo.cnf }\fi
-   \closein1
-   \temp
-   %
-   \comment % Ignore the actual filename.
-}
-
-% Called from \setfilename.
-% 
-\def\openindices{%
-  \newindex{cp}%
-  \newcodeindex{fn}%
-  \newcodeindex{vr}%
-  \newcodeindex{tp}%
-  \newcodeindex{ky}%
-  \newcodeindex{pg}%
-}
-
-% @bye.
-\outer\def\bye{\pagealignmacro\tracingstats=1\ptexend}
-
-
-\message{fonts,}
-% Font-change commands.
-
-% Texinfo sort of supports the sans serif font style, which plain TeX does not.
-% So we set up a \sf analogous to plain's \rm, etc.
-\newfam\sffam
-\def\sf{\fam=\sffam \tensf}
-\let\li = \sf % Sometimes we call it \li, not \sf.
-
-% We don't need math for this one.
-\def\ttsl{\tenttsl}
-
-% Use Computer Modern fonts at \magstephalf (11pt).
-\newcount\mainmagstep
-\mainmagstep=\magstephalf
-
-% Set the font macro #1 to the font named #2, adding on the
-% specified font prefix (normally `cm').
-% #3 is the font's design size, #4 is a scale factor
-\def\setfont#1#2#3#4{\font#1=\fontprefix#2#3 scaled #4}
-
-% Use cm as the default font prefix.
-% To specify the font prefix, you must define \fontprefix
-% before you read in texinfo.tex.
-\ifx\fontprefix\undefined
-\def\fontprefix{cm}
-\fi
-% Support font families that don't use the same naming scheme as CM.
-\def\rmshape{r}
-\def\rmbshape{bx}               %where the normal face is bold
-\def\bfshape{b}
-\def\bxshape{bx}
-\def\ttshape{tt}
-\def\ttbshape{tt}
-\def\ttslshape{sltt}
-\def\itshape{ti}
-\def\itbshape{bxti}
-\def\slshape{sl}
-\def\slbshape{bxsl}
-\def\sfshape{ss}
-\def\sfbshape{ss}
-\def\scshape{csc}
-\def\scbshape{csc}
-
-\ifx\bigger\relax
-\let\mainmagstep=\magstep1
-\setfont\textrm\rmshape{12}{1000}
-\setfont\texttt\ttshape{12}{1000}
-\else
-\setfont\textrm\rmshape{10}{\mainmagstep}
-\setfont\texttt\ttshape{10}{\mainmagstep}
-\fi
-% Instead of cmb10, you many want to use cmbx10.
-% cmbx10 is a prettier font on its own, but cmb10
-% looks better when embedded in a line with cmr10.
-\setfont\textbf\bfshape{10}{\mainmagstep}
-\setfont\textit\itshape{10}{\mainmagstep}
-\setfont\textsl\slshape{10}{\mainmagstep}
-\setfont\textsf\sfshape{10}{\mainmagstep}
-\setfont\textsc\scshape{10}{\mainmagstep}
-\setfont\textttsl\ttslshape{10}{\mainmagstep}
-\font\texti=cmmi10 scaled \mainmagstep
-\font\textsy=cmsy10 scaled \mainmagstep
-
-% A few fonts for @defun, etc.
-\setfont\defbf\bxshape{10}{\magstep1} %was 1314
-\setfont\deftt\ttshape{10}{\magstep1}
-\def\df{\let\tentt=\deftt \let\tenbf = \defbf \bf}
-
-% Fonts for indices and small examples (9pt).
-% We actually use the slanted font rather than the italic,
-% because texinfo normally uses the slanted fonts for that.
-% Do not make many font distinctions in general in the index, since they
-% aren't very useful.
-\setfont\ninett\ttshape{9}{1000}
-\setfont\ninettsl\ttslshape{10}{900}
-\setfont\indrm\rmshape{9}{1000}
-\setfont\indit\itshape{9}{1000}
-\setfont\indsl\slshape{9}{1000}
-\let\indtt=\ninett
-\let\indttsl=\ninettsl
-\let\indsf=\indrm
-\let\indbf=\indrm
-\setfont\indsc\scshape{10}{900}
-\font\indi=cmmi9
-\font\indsy=cmsy9
-
-% Fonts for title page:
-\setfont\titlerm\rmbshape{12}{\magstep3}
-\setfont\titleit\itbshape{10}{\magstep4}
-\setfont\titlesl\slbshape{10}{\magstep4}
-\setfont\titlett\ttbshape{12}{\magstep3}
-\setfont\titlettsl\ttslshape{10}{\magstep4}
-\setfont\titlesf\sfbshape{17}{\magstep1}
-\let\titlebf=\titlerm
-\setfont\titlesc\scbshape{10}{\magstep4}
-\font\titlei=cmmi12 scaled \magstep3
-\font\titlesy=cmsy10 scaled \magstep4
-\def\authorrm{\secrm}
-
-% Chapter (and unnumbered) fonts (17.28pt).
-\setfont\chaprm\rmbshape{12}{\magstep2}
-\setfont\chapit\itbshape{10}{\magstep3}
-\setfont\chapsl\slbshape{10}{\magstep3}
-\setfont\chaptt\ttbshape{12}{\magstep2}
-\setfont\chapttsl\ttslshape{10}{\magstep3}
-\setfont\chapsf\sfbshape{17}{1000}
-\let\chapbf=\chaprm
-\setfont\chapsc\scbshape{10}{\magstep3}
-\font\chapi=cmmi12 scaled \magstep2
-\font\chapsy=cmsy10 scaled \magstep3
-
-% Section fonts (14.4pt).
-\setfont\secrm\rmbshape{12}{\magstep1}
-\setfont\secit\itbshape{10}{\magstep2}
-\setfont\secsl\slbshape{10}{\magstep2}
-\setfont\sectt\ttbshape{12}{\magstep1}
-\setfont\secttsl\ttslshape{10}{\magstep2}
-\setfont\secsf\sfbshape{12}{\magstep1}
-\let\secbf\secrm
-\setfont\secsc\scbshape{10}{\magstep2}
-\font\seci=cmmi12 scaled \magstep1
-\font\secsy=cmsy10 scaled \magstep2
-
-% \setfont\ssecrm\bxshape{10}{\magstep1}    % This size an font looked bad.
-% \setfont\ssecit\itshape{10}{\magstep1}    % The letters were too crowded.
-% \setfont\ssecsl\slshape{10}{\magstep1}
-% \setfont\ssectt\ttshape{10}{\magstep1}
-% \setfont\ssecsf\sfshape{10}{\magstep1}
-
-%\setfont\ssecrm\bfshape{10}{1315}      % Note the use of cmb rather than cmbx.
-%\setfont\ssecit\itshape{10}{1315}      % Also, the size is a little larger 
than
-%\setfont\ssecsl\slshape{10}{1315}      % being scaled magstep1.
-%\setfont\ssectt\ttshape{10}{1315}
-%\setfont\ssecsf\sfshape{10}{1315}
-
-%\let\ssecbf=\ssecrm
-
-% Subsection fonts (13.15pt).
-\setfont\ssecrm\rmbshape{12}{\magstephalf}
-\setfont\ssecit\itbshape{10}{1315}
-\setfont\ssecsl\slbshape{10}{1315}
-\setfont\ssectt\ttbshape{12}{\magstephalf}
-\setfont\ssecttsl\ttslshape{10}{1315}
-\setfont\ssecsf\sfbshape{12}{\magstephalf}
-\let\ssecbf\ssecrm
-\setfont\ssecsc\scbshape{10}{\magstep1}
-\font\sseci=cmmi12 scaled \magstephalf
-\font\ssecsy=cmsy10 scaled 1315
-% The smallcaps and symbol fonts should actually be scaled \magstep1.5,
-% but that is not a standard magnification.
-
-% In order for the font changes to affect most math symbols and letters,
-% we have to define the \textfont of the standard families.  Since
-% texinfo doesn't allow for producing subscripts and superscripts, we
-% don't bother to reset \scriptfont and \scriptscriptfont (which would
-% also require loading a lot more fonts).
-%
-\def\resetmathfonts{%
-  \textfont0 = \tenrm \textfont1 = \teni \textfont2 = \tensy
-  \textfont\itfam = \tenit \textfont\slfam = \tensl \textfont\bffam = \tenbf
-  \textfont\ttfam = \tentt \textfont\sffam = \tensf
-}
-
-
-% The font-changing commands redefine the meanings of \tenSTYLE, instead
-% of just \STYLE.  We do this so that font changes will continue to work
-% in math mode, where it is the current \fam that is relevant in most
-% cases, not the current font.  Plain TeX does \def\bf{\fam=\bffam
-% \tenbf}, for example.  By redefining \tenbf, we obviate the need to
-% redefine \bf itself.
-\def\textfonts{%
-  \let\tenrm=\textrm \let\tenit=\textit \let\tensl=\textsl
-  \let\tenbf=\textbf \let\tentt=\texttt \let\smallcaps=\textsc
-  \let\tensf=\textsf \let\teni=\texti \let\tensy=\textsy \let\tenttsl=\textttsl
-  \resetmathfonts}
-\def\titlefonts{%
-  \let\tenrm=\titlerm \let\tenit=\titleit \let\tensl=\titlesl
-  \let\tenbf=\titlebf \let\tentt=\titlett \let\smallcaps=\titlesc
-  \let\tensf=\titlesf \let\teni=\titlei \let\tensy=\titlesy
-  \let\tenttsl=\titlettsl
-  \resetmathfonts \setleading{25pt}}
-\def\titlefont#1{{\titlefonts\rm #1}}
-\def\chapfonts{%
-  \let\tenrm=\chaprm \let\tenit=\chapit \let\tensl=\chapsl
-  \let\tenbf=\chapbf \let\tentt=\chaptt \let\smallcaps=\chapsc
-  \let\tensf=\chapsf \let\teni=\chapi \let\tensy=\chapsy \let\tenttsl=\chapttsl
-  \resetmathfonts \setleading{19pt}}
-\def\secfonts{%
-  \let\tenrm=\secrm \let\tenit=\secit \let\tensl=\secsl
-  \let\tenbf=\secbf \let\tentt=\sectt \let\smallcaps=\secsc
-  \let\tensf=\secsf \let\teni=\seci \let\tensy=\secsy \let\tenttsl=\secttsl
-  \resetmathfonts \setleading{16pt}}
-\def\subsecfonts{%
-  \let\tenrm=\ssecrm \let\tenit=\ssecit \let\tensl=\ssecsl
-  \let\tenbf=\ssecbf \let\tentt=\ssectt \let\smallcaps=\ssecsc
-  \let\tensf=\ssecsf \let\teni=\sseci \let\tensy=\ssecsy \let\tenttsl=\ssecttsl
-  \resetmathfonts \setleading{15pt}}
-\let\subsubsecfonts = \subsecfonts % Maybe make sssec fonts scaled magstephalf?
-\def\indexfonts{%
-  \let\tenrm=\indrm \let\tenit=\indit \let\tensl=\indsl
-  \let\tenbf=\indbf \let\tentt=\indtt \let\smallcaps=\indsc
-  \let\tensf=\indsf \let\teni=\indi \let\tensy=\indsy \let\tenttsl=\indttsl
-  \resetmathfonts \setleading{12pt}}
-
-% Set up the default fonts, so we can use them for creating boxes.
-%
-\textfonts
-
-% Define these so they can be easily changed for other fonts.
-\def\angleleft{$\langle$}
-\def\angleright{$\rangle$}
-
-% Count depth in font-changes, for error checks
-\newcount\fontdepth \fontdepth=0
-
-% Fonts for short table of contents.
-\setfont\shortcontrm\rmshape{12}{1000}
-\setfont\shortcontbf\bxshape{12}{1000}
-\setfont\shortcontsl\slshape{12}{1000}
-
-%% Add scribe-like font environments, plus @l for inline lisp (usually sans
-%% serif) and @ii for TeX italic
-
-% \smartitalic{ARG} outputs arg in italics, followed by an italic correction
-% unless the following character is such as not to need one.
-\def\smartitalicx{\ifx\next,\else\ifx\next-\else\ifx\next.\else\/\fi\fi\fi}
-\def\smartslanted#1{{\sl #1}\futurelet\next\smartitalicx}
-\def\smartitalic#1{{\it #1}\futurelet\next\smartitalicx}
-
-\let\i=\smartitalic
-\let\var=\smartslanted
-\let\dfn=\smartslanted
-\let\emph=\smartitalic
-\let\cite=\smartslanted
-
-\def\b#1{{\bf #1}}
-\let\strong=\b
-
-% We can't just use \exhyphenpenalty, because that only has effect at
-% the end of a paragraph.  Restore normal hyphenation at the end of the
-% group within which \nohyphenation is presumably called.
-%
-\def\nohyphenation{\hyphenchar\font = -1  \aftergroup\restorehyphenation}
-\def\restorehyphenation{\hyphenchar\font = `- }
-
-\def\t#1{%
-  {\tt \rawbackslash \frenchspacing #1}%
-  \null
-}
-\let\ttfont=\t
-\def\samp#1{`\tclose{#1}'\null}
-\setfont\smallrm\rmshape{8}{1000}
-\font\smallsy=cmsy9
-\def\key#1{{\smallrm\textfont2=\smallsy \leavevmode\hbox{%
-  \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{%
-    \vbox{\hrule\kern-0.4pt
-     \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}%
-    \kern-0.4pt\hrule}%
-  \kern-.06em\raise0.4pt\hbox{\angleright}}}}
-% The old definition, with no lozenge:
-%\def\key #1{{\ttsl \nohyphenation \uppercase{#1}}\null}
-\def\ctrl #1{{\tt \rawbackslash \hat}#1}
-
-% @file, @option are the same as @samp.
-\let\file=\samp
-\let\option=\samp
-
-% @code is a modification of @t,
-% which makes spaces the same size as normal in the surrounding text.
-\def\tclose#1{%
-  {%
-    % Change normal interword space to be same as for the current font.
-    \spaceskip = \fontdimen2\font
-    %
-    % Switch to typewriter.
-    \tt
-    %
-    % But `\ ' produces the large typewriter interword space.
-    \def\ {{\spaceskip = 0pt{} }}%
-    %
-    % Turn off hyphenation.
-    \nohyphenation
-    %
-    \rawbackslash
-    \frenchspacing
-    #1%
-  }%
-  \null
-}
-
-% We *must* turn on hyphenation at `-' and `_' in \code.
-% Otherwise, it is too hard to avoid overfull hboxes
-% in the Emacs manual, the Library manual, etc.
-
-% Unfortunately, TeX uses one parameter (\hyphenchar) to control
-% both hyphenation at - and hyphenation within words.
-% We must therefore turn them both off (\tclose does that)
-% and arrange explicitly to hyphenate at a dash.
-%  -- rms.
-{
-  \catcode`\-=\active
-  \catcode`\_=\active
-  %
-  \global\def\code{\begingroup
-    \catcode`\-=\active \let-\codedash
-    \catcode`\_=\active \let_\codeunder
-    \codex
-  }
-  %
-  % If we end up with any active - characters when handling the index,
-  % just treat them as a normal -.
-  \global\def\indexbreaks{\catcode`\-=\active \let-\realdash}
-}
-
-\def\realdash{-}
-\def\codedash{-\discretionary{}{}{}}
-\def\codeunder{\ifusingtt{\normalunderscore\discretionary{}{}{}}{\_}}
-\def\codex #1{\tclose{#1}\endgroup}
-
-%\let\exp=\tclose  %Was temporary
-
-% @kbd is like @code, except that if the argument is just one @key command,
-% then @kbd has no effect.
-
-% @kbdinputstyle -- arg is `distinct' (@kbd uses slanted tty font always),
-%   `example' (@kbd uses ttsl only inside of @example and friends),
-%   or `code' (@kbd uses normal tty font always).
-\def\kbdinputstyle{\parsearg\kbdinputstylexxx}
-\def\kbdinputstylexxx#1{%
-  \def\arg{#1}%
-  \ifx\arg\worddistinct
-    \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl}%
-  \else\ifx\arg\wordexample
-    \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\tt}%
-  \else\ifx\arg\wordcode
-    \gdef\kbdexamplefont{\tt}\gdef\kbdfont{\tt}%
-  \fi\fi\fi
-}
-\def\worddistinct{distinct}
-\def\wordexample{example}
-\def\wordcode{code}
-
-% Default is kbdinputdistinct.  (Too much of a hassle to call the macro,
-% the catcodes are wrong for parsearg to work.)
-\gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl}
-
-\def\xkey{\key}
-\def\kbdfoo#1#2#3\par{\def\one{#1}\def\three{#3}\def\threex{??}%
-\ifx\one\xkey\ifx\threex\three \key{#2}%
-\else{\tclose{\kbdfont\look}}\fi
-\else{\tclose{\kbdfont\look}}\fi}
-
-% For @url, @env, @command quotes seem unnecessary, so use \code.
-\let\url=\code
-\let\env=\code
-\let\command=\code
-
-% @uref (abbreviation for `urlref') takes an optional second argument
-% specifying the text to display.  First (mandatory) arg is the url.
-% Perhaps eventually put in a hypertex \special here.
-% 
-\def\uref#1{\urefxxx #1,,\finish}
-\def\urefxxx#1,#2,#3\finish{%
-  \setbox0 = \hbox{\ignorespaces #2}%
-  \ifdim\wd0 > 0pt
-    \unhbox0\ (\code{#1})%
-  \else
-    \code{#1}%
-  \fi
-}
-
-% rms does not like the angle brackets --karl, 17may97.
-% So now @email is just like @uref.
-%\def\email#1{\angleleft{\tt #1}\angleright}
-\let\email=\uref
-
-% Check if we are currently using a typewriter font.  Since all the
-% Computer Modern typewriter fonts have zero interword stretch (and
-% shrink), and it is reasonable to expect all typewriter fonts to have
-% this property, we can check that font parameter.
-%
-\def\ifmonospace{\ifdim\fontdimen3\font=0pt }
-
-% Typeset a dimension, e.g., `in' or `pt'.  The only reason for the
-% argument is to make the input look right: @dmn{pt} instead of @dmn{}pt.
-%
-\def\dmn#1{\thinspace #1}
-
-\def\kbd#1{\def\look{#1}\expandafter\kbdfoo\look??\par}
-
-% @l was never documented to mean ``switch to the Lisp font'',
-% and it is not used as such in any manual I can find.  We need it for
-% Polish suppressed-l.  --karl, 22sep96.
-%\def\l#1{{\li #1}\null}
-
-% Explicit font changes: @r, @sc, undocumented @ii.
-\def\r#1{{\rm #1}}              % roman font
-\def\sc#1{{\smallcaps#1}}       % smallcaps font
-\def\ii#1{{\it #1}}             % italic font
-
-% @acronym downcases the argument and prints in smallcaps.
-\def\acronym#1{{\smallcaps \lowercase{#1}}}
-
-% @pounds{} is a sterling sign.
-\def\pounds{{\it\$}}
-
-
-\message{page headings,}
-
-\newskip\titlepagetopglue \titlepagetopglue = 1.5in
-\newskip\titlepagebottomglue \titlepagebottomglue = 2pc
-
-% First the title page.  Must do @settitle before @titlepage.
-\newif\ifseenauthor
-\newif\iffinishedtitlepage
-
-% Do an implicit @contents or @shortcontents after @end titlepage if the
-% user says @setcontentsaftertitlepage or @setshortcontentsaftertitlepage.
-% 
-\newif\ifsetcontentsaftertitlepage
- \let\setcontentsaftertitlepage = \setcontentsaftertitlepagetrue
-\newif\ifsetshortcontentsaftertitlepage
- \let\setshortcontentsaftertitlepage = \setshortcontentsaftertitlepagetrue
-
-\def\shorttitlepage{\parsearg\shorttitlepagezzz}
-\def\shorttitlepagezzz #1{\begingroup\hbox{}\vskip 1.5in \chaprm 
\centerline{#1}%
-        \endgroup\page\hbox{}\page}
-
-\def\titlepage{\begingroup \parindent=0pt \textfonts
-   \let\subtitlerm=\tenrm
-   \def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines}%
-   %
-   \def\authorfont{\authorrm \normalbaselineskip = 16pt \normalbaselines}%
-   %
-   % Leave some space at the very top of the page.
-   \vglue\titlepagetopglue
-   %
-   % Now you can print the title using @title.
-   \def\title{\parsearg\titlezzz}%
-   \def\titlezzz##1{\leftline{\titlefonts\rm ##1}
-                    % print a rule at the page bottom also.
-                    \finishedtitlepagefalse
-                    \vskip4pt \hrule height 4pt width \hsize \vskip4pt}%
-   % No rule at page bottom unless we print one at the top with @title.
-   \finishedtitlepagetrue
-   %
-   % Now you can put text using @subtitle.
-   \def\subtitle{\parsearg\subtitlezzz}%
-   \def\subtitlezzz##1{{\subtitlefont \rightline{##1}}}%
-   %
-   % @author should come last, but may come many times.
-   \def\author{\parsearg\authorzzz}%
-   \def\authorzzz##1{\ifseenauthor\else\vskip 0pt plus 1filll\seenauthortrue\fi
-      {\authorfont \leftline{##1}}}%
-   %
-   % Most title ``pages'' are actually two pages long, with space
-   % at the top of the second.  We don't want the ragged left on the second.
-   \let\oldpage = \page
-   \def\page{%
-      \iffinishedtitlepage\else
-         \finishtitlepage
-      \fi
-      \oldpage
-      \let\page = \oldpage
-      \hbox{}}%
-%   \def\page{\oldpage \hbox{}}
-}
-
-\def\Etitlepage{%
-   \iffinishedtitlepage\else
-      \finishtitlepage
-   \fi
-   % It is important to do the page break before ending the group,
-   % because the headline and footline are only empty inside the group.
-   % If we use the new definition of \page, we always get a blank page
-   % after the title page, which we certainly don't want.
-   \oldpage
-   \endgroup
-   %
-   % If they want short, they certainly want long too.
-   \ifsetshortcontentsaftertitlepage
-     \shortcontents
-     \contents
-     \global\let\shortcontents = \relax
-     \global\let\contents = \relax
-   \fi
-   %
-   \ifsetcontentsaftertitlepage
-     \contents
-     \global\let\contents = \relax
-     \global\let\shortcontents = \relax
-   \fi
-   %
-   \HEADINGSon
-}
-
-\def\finishtitlepage{%
-   \vskip4pt \hrule height 2pt width \hsize
-   \vskip\titlepagebottomglue
-   \finishedtitlepagetrue
-}
-
-%%% Set up page headings and footings.
-
-\let\thispage=\folio
-
-\newtoks\evenheadline    % headline on even pages
-\newtoks\oddheadline     % headline on odd pages
-\newtoks\evenfootline    % footline on even pages
-\newtoks\oddfootline     % footline on odd pages
-
-% Now make Tex use those variables
-\headline={{\textfonts\rm \ifodd\pageno \the\oddheadline
-                            \else \the\evenheadline \fi}}
-\footline={{\textfonts\rm \ifodd\pageno \the\oddfootline
-                            \else \the\evenfootline \fi}\HEADINGShook}
-\let\HEADINGShook=\relax
-
-% Commands to set those variables.
-% For example, this is what  @headings on  does
-% @evenheading @thistitle|@thispage|@thischapter
-% @oddheading @thischapter|@thispage|@thistitle
-% @evenfooting @thisfile||
-% @oddfooting ||@thisfile
-
-\def\evenheading{\parsearg\evenheadingxxx}
-\def\oddheading{\parsearg\oddheadingxxx}
-\def\everyheading{\parsearg\everyheadingxxx}
-
-\def\evenfooting{\parsearg\evenfootingxxx}
-\def\oddfooting{\parsearg\oddfootingxxx}
-\def\everyfooting{\parsearg\everyfootingxxx}
-
address@hidden %
-
-\gdef\evenheadingxxx #1{\evenheadingyyy #1@|@|@|@|\finish}
-\gdef\evenheadingyyy #1@|#2@|#3@|#4\finish{%
-\global\evenheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
-
-\gdef\oddheadingxxx #1{\oddheadingyyy #1@|@|@|@|\finish}
-\gdef\oddheadingyyy #1@|#2@|#3@|#4\finish{%
-\global\oddheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
-
-\gdef\everyheadingxxx#1{\oddheadingxxx{#1}\evenheadingxxx{#1}}%
-
-\gdef\evenfootingxxx #1{\evenfootingyyy #1@|@|@|@|\finish}
-\gdef\evenfootingyyy #1@|#2@|#3@|#4\finish{%
-\global\evenfootline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
-
-\gdef\oddfootingxxx #1{\oddfootingyyy #1@|@|@|@|\finish}
-\gdef\oddfootingyyy #1@|#2@|#3@|#4\finish{%
-  \global\oddfootline = {\rlap{\centerline{#2}}\line{#1\hfil#3}}%
-  %
-  % Leave some space for the footline.  Hopefully ok to assume
-  % @evenfooting will not be used by itself.
-  \global\advance\pageheight by -\baselineskip
-  \global\advance\vsize by -\baselineskip
-}
-
-\gdef\everyfootingxxx#1{\oddfootingxxx{#1}\evenfootingxxx{#1}}
-%
-}% unbind the catcode of @.
-
-% @headings double      turns headings on for double-sided printing.
-% @headings single      turns headings on for single-sided printing.
-% @headings off         turns them off.
-% @headings on          same as @headings double, retained for compatibility.
-% @headings after       turns on double-sided headings after this page.
-% @headings doubleafter turns on double-sided headings after this page.
-% @headings singleafter turns on single-sided headings after this page.
-% By default, they are off at the start of a document,
-% and turned `on' after @end titlepage.
-
-\def\headings #1 {\csname HEADINGS#1\endcsname}
-
-\def\HEADINGSoff{
-\global\evenheadline={\hfil} \global\evenfootline={\hfil}
-\global\oddheadline={\hfil} \global\oddfootline={\hfil}}
-\HEADINGSoff
-% When we turn headings on, set the page number to 1.
-% For double-sided printing, put current file name in lower left corner,
-% chapter name on inside top of right hand pages, document
-% title on inside top of left hand pages, and page numbers on outside top
-% edge of all pages.
-\def\HEADINGSdouble{
-\global\pageno=1
-\global\evenfootline={\hfil}
-\global\oddfootline={\hfil}
-\global\evenheadline={\line{\folio\hfil\thistitle}}
-\global\oddheadline={\line{\thischapter\hfil\folio}}
-\global\let\contentsalignmacro = \chapoddpage
-}
-\let\contentsalignmacro = \chappager
-
-% For single-sided printing, chapter title goes across top left of page,
-% page number on top right.
-\def\HEADINGSsingle{
-\global\pageno=1
-\global\evenfootline={\hfil}
-\global\oddfootline={\hfil}
-\global\evenheadline={\line{\thischapter\hfil\folio}}
-\global\oddheadline={\line{\thischapter\hfil\folio}}
-\global\let\contentsalignmacro = \chappager
-}
-\def\HEADINGSon{\HEADINGSdouble}
-
-\def\HEADINGSafter{\let\HEADINGShook=\HEADINGSdoublex}
-\let\HEADINGSdoubleafter=\HEADINGSafter
-\def\HEADINGSdoublex{%
-\global\evenfootline={\hfil}
-\global\oddfootline={\hfil}
-\global\evenheadline={\line{\folio\hfil\thistitle}}
-\global\oddheadline={\line{\thischapter\hfil\folio}}
-\global\let\contentsalignmacro = \chapoddpage
-}
-
-\def\HEADINGSsingleafter{\let\HEADINGShook=\HEADINGSsinglex}
-\def\HEADINGSsinglex{%
-\global\evenfootline={\hfil}
-\global\oddfootline={\hfil}
-\global\evenheadline={\line{\thischapter\hfil\folio}}
-\global\oddheadline={\line{\thischapter\hfil\folio}}
-\global\let\contentsalignmacro = \chappager
-}
-
-% Subroutines used in generating headings
-% Produces Day Month Year style of output.
-\def\today{\number\day\space
-\ifcase\month\or
-January\or February\or March\or April\or May\or June\or
-July\or August\or September\or October\or November\or December\fi
-\space\number\year}
-
-% Use this if you want the Month Day, Year style of output.
-%\def\today{\ifcase\month\or
-%January\or February\or March\or April\or May\or June\or
-%July\or August\or September\or October\or November\or December\fi
-%\space\number\day, \number\year}
-
-% @settitle line...  specifies the title of the document, for headings
-% It generates no output of its own
-
-\def\thistitle{No Title}
-\def\settitle{\parsearg\settitlezzz}
-\def\settitlezzz #1{\gdef\thistitle{#1}}
-
-
-\message{tables,}
-% Tables -- @table, @ftable, @vtable, @item(x), @kitem(x), @xitem(x).
-
-% default indentation of table text
-\newdimen\tableindent \tableindent=.8in
-% default indentation of @itemize and @enumerate text
-\newdimen\itemindent  \itemindent=.3in
-% margin between end of table item and start of table text.
-\newdimen\itemmargin  \itemmargin=.1in
-
-% used internally for \itemindent minus \itemmargin
-\newdimen\itemmax
-
-% Note @table, @vtable, and @vtable define @item, @itemx, etc., with
-% these defs.
-% They also define \itemindex
-% to index the item name in whatever manner is desired (perhaps none).
-
-\newif\ifitemxneedsnegativevskip
-
-\def\itemxpar{\par\ifitemxneedsnegativevskip\nobreak\vskip-\parskip\nobreak\fi}
-
-\def\internalBitem{\smallbreak \parsearg\itemzzz}
-\def\internalBitemx{\itemxpar \parsearg\itemzzz}
-
-\def\internalBxitem "#1"{\def\xitemsubtopix{#1} \smallbreak \parsearg\xitemzzz}
-\def\internalBxitemx "#1"{\def\xitemsubtopix{#1} \itemxpar \parsearg\xitemzzz}
-
-\def\internalBkitem{\smallbreak \parsearg\kitemzzz}
-\def\internalBkitemx{\itemxpar \parsearg\kitemzzz}
-
-\def\kitemzzz #1{\dosubind {kw}{\code{#1}}{for {\bf \lastfunction}}%
-                 \itemzzz {#1}}
-
-\def\xitemzzz #1{\dosubind {kw}{\code{#1}}{for {\bf \xitemsubtopic}}%
-                 \itemzzz {#1}}
-
-\def\itemzzz #1{\begingroup %
-  \advance\hsize by -\rightskip
-  \advance\hsize by -\tableindent
-  \setbox0=\hbox{\itemfont{#1}}%
-  \itemindex{#1}%
-  \nobreak % This prevents a break before @itemx.
-  %
-  % If the item text does not fit in the space we have, put it on a line
-  % by itself, and do not allow a page break either before or after that
-  % line.  We do not start a paragraph here because then if the next
-  % command is, e.g., @kindex, the whatsit would get put into the
-  % horizontal list on a line by itself, resulting in extra blank space.
-  \ifdim \wd0>\itemmax
-    %
-    % Make this a paragraph so we get the \parskip glue and wrapping,
-    % but leave it ragged-right.
-    \begingroup
-      \advance\leftskip by-\tableindent
-      \advance\hsize by\tableindent
-      \advance\rightskip by0pt plus1fil
-      \leavevmode\unhbox0\par
-    \endgroup
-    %
-    % We're going to be starting a paragraph, but we don't want the
-    % \parskip glue -- logically it's part of the @item we just started.
-    \nobreak \vskip-\parskip
-    %
-    % Stop a page break at the \parskip glue coming up.  Unfortunately
-    % we can't prevent a possible page break at the following
-    % \baselineskip glue.
-    \nobreak
-    \endgroup
-    \itemxneedsnegativevskipfalse
-  \else
-    % The item text fits into the space.  Start a paragraph, so that the
-    % following text (if any) will end up on the same line.  
-    \noindent
-    % Do this with kerns and \unhbox so that if there is a footnote in
-    % the item text, it can migrate to the main vertical list and
-    % eventually be printed.
-    \nobreak\kern-\tableindent
-    \dimen0 = \itemmax  \advance\dimen0 by \itemmargin \advance\dimen0 by -\wd0
-    \unhbox0
-    \nobreak\kern\dimen0
-    \endgroup
-    \itemxneedsnegativevskiptrue
-  \fi
-}
-
address@hidden while not in a table}}
address@hidden while not in a table}}
address@hidden while not in a table}}
address@hidden while not in a table}}
address@hidden while not in a table}}
address@hidden while not in a table}}
-
-% Contains a kludge to get @end[description] to work.
-\def\description{\tablez{\dontindex}{1}{}{}{}{}}
-
-% @table, @ftable, @vtable.
-\def\table{\begingroup\inENV\obeylines\obeyspaces\tablex}
-{\obeylines\obeyspaces%
-\gdef\tablex #1^^M{%
-\tabley\dontindex#1        \endtabley}}
-
-\def\ftable{\begingroup\inENV\obeylines\obeyspaces\ftablex}
-{\obeylines\obeyspaces%
-\gdef\ftablex #1^^M{%
-\tabley\fnitemindex#1        \endtabley
-\def\Eftable{\endgraf\afterenvbreak\endgroup}%
-\let\Etable=\relax}}
-
-\def\vtable{\begingroup\inENV\obeylines\obeyspaces\vtablex}
-{\obeylines\obeyspaces%
-\gdef\vtablex #1^^M{%
-\tabley\vritemindex#1        \endtabley
-\def\Evtable{\endgraf\afterenvbreak\endgroup}%
-\let\Etable=\relax}}
-
-\def\dontindex #1{}
-\def\fnitemindex #1{\doind {fn}{\code{#1}}}%
-\def\vritemindex #1{\doind {vr}{\code{#1}}}%
-
-{\obeyspaces %
-\gdef\tabley#1#2 #3 #4 #5 #6 #7\endtabley{\endgroup%
-\tablez{#1}{#2}{#3}{#4}{#5}{#6}}}
-
-\def\tablez #1#2#3#4#5#6{%
-\aboveenvbreak %
-\begingroup %
-\def\Edescription{\Etable}% Necessary kludge.
-\let\itemindex=#1%
-\ifnum 0#3>0 \advance \leftskip by #3\mil \fi %
-\ifnum 0#4>0 \tableindent=#4\mil \fi %
-\ifnum 0#5>0 \advance \rightskip by #5\mil \fi %
-\def\itemfont{#2}%
-\itemmax=\tableindent %
-\advance \itemmax by -\itemmargin %
-\advance \leftskip by \tableindent %
-\exdentamount=\tableindent
-\parindent = 0pt
-\parskip = \smallskipamount
-\ifdim \parskip=0pt \parskip=2pt \fi%
-\def\Etable{\endgraf\afterenvbreak\endgroup}%
-\let\item = \internalBitem %
-\let\itemx = \internalBitemx %
-\let\kitem = \internalBkitem %
-\let\kitemx = \internalBkitemx %
-\let\xitem = \internalBxitem %
-\let\xitemx = \internalBxitemx %
-}
-
-% This is the counter used by @enumerate, which is really @itemize
-
-\newcount \itemno
-
-\def\itemize{\parsearg\itemizezzz}
-
-\def\itemizezzz #1{%
-  \begingroup % ended by the @end itemize
-  \itemizey {#1}{\Eitemize}
-}
-
-\def\itemizey #1#2{%
-\aboveenvbreak %
-\itemmax=\itemindent %
-\advance \itemmax by -\itemmargin %
-\advance \leftskip by \itemindent %
-\exdentamount=\itemindent
-\parindent = 0pt %
-\parskip = \smallskipamount %
-\ifdim \parskip=0pt \parskip=2pt \fi%
-\def#2{\endgraf\afterenvbreak\endgroup}%
-\def\itemcontents{#1}%
-\let\item=\itemizeitem}
-
-% Set sfcode to normal for the chars that usually have another value.
-% These are `.?!:;,'
-\def\frenchspacing{\sfcode46=1000 \sfcode63=1000 \sfcode33=1000
-  \sfcode58=1000 \sfcode59=1000 \sfcode44=1000 }
-
-% \splitoff TOKENS\endmark defines \first to be the first token in
-% TOKENS, and \rest to be the remainder.
-%
-\def\splitoff#1#2\endmark{\def\first{#1}\def\rest{#2}}%
-
-% Allow an optional argument of an uppercase letter, lowercase letter,
-% or number, to specify the first label in the enumerated list.  No
-% argument is the same as `1'.
-%
-\def\enumerate{\parsearg\enumeratezzz}
-\def\enumeratezzz #1{\enumeratey #1  \endenumeratey}
-\def\enumeratey #1 #2\endenumeratey{%
-  \begingroup % ended by the @end enumerate
-  %
-  % If we were given no argument, pretend we were given `1'.
-  \def\thearg{#1}%
-  \ifx\thearg\empty \def\thearg{1}\fi
-  %
-  % Detect if the argument is a single token.  If so, it might be a
-  % letter.  Otherwise, the only valid thing it can be is a number.
-  % (We will always have one token, because of the test we just made.
-  % This is a good thing, since \splitoff doesn't work given nothing at
-  % all -- the first parameter is undelimited.)
-  \expandafter\splitoff\thearg\endmark
-  \ifx\rest\empty
-    % Only one token in the argument.  It could still be anything.
-    % A ``lowercase letter'' is one whose \lccode is nonzero.
-    % An ``uppercase letter'' is one whose \lccode is both nonzero, and
-    %   not equal to itself.
-    % Otherwise, we assume it's a number.
-    %
-    % We need the \relax at the end of the \ifnum lines to stop TeX from
-    % continuing to look for a <number>.
-    %
-    \ifnum\lccode\expandafter`\thearg=0\relax
-      \numericenumerate % a number (we hope)
-    \else
-      % It's a letter.
-      \ifnum\lccode\expandafter`\thearg=\expandafter`\thearg\relax
-        \lowercaseenumerate % lowercase letter
-      \else
-        \uppercaseenumerate % uppercase letter
-      \fi
-    \fi
-  \else
-    % Multiple tokens in the argument.  We hope it's a number.
-    \numericenumerate
-  \fi
-}
-
-% An @enumerate whose labels are integers.  The starting integer is
-% given in \thearg.
-%
-\def\numericenumerate{%
-  \itemno = \thearg
-  \startenumeration{\the\itemno}%
-}
-
-% The starting (lowercase) letter is in \thearg.
-\def\lowercaseenumerate{%
-  \itemno = \expandafter`\thearg
-  \startenumeration{%
-    % Be sure we're not beyond the end of the alphabet.
-    \ifnum\itemno=0
-      \errmessage{No more lowercase letters in @enumerate; get a bigger
-                  alphabet}%
-    \fi
-    \char\lccode\itemno
-  }%
-}
-
-% The starting (uppercase) letter is in \thearg.
-\def\uppercaseenumerate{%
-  \itemno = \expandafter`\thearg
-  \startenumeration{%
-    % Be sure we're not beyond the end of the alphabet.
-    \ifnum\itemno=0
-      \errmessage{No more uppercase letters in @enumerate; get a bigger
-                  alphabet}
-    \fi
-    \char\uccode\itemno
-  }%
-}
-
-% Call itemizey, adding a period to the first argument and supplying the
-% common last two arguments.  Also subtract one from the initial value in
-% \itemno, since @item increments \itemno.
-%
-\def\startenumeration#1{%
-  \advance\itemno by -1
-  \itemizey{#1.}\Eenumerate\flushcr
-}
-
-% @alphaenumerate and @capsenumerate are abbreviations for giving an arg
-% to @enumerate.
-%
-\def\alphaenumerate{\enumerate{a}}
-\def\capsenumerate{\enumerate{A}}
-\def\Ealphaenumerate{\Eenumerate}
-\def\Ecapsenumerate{\Eenumerate}
-
-% Definition of @item while inside @itemize.
-
-\def\itemizeitem{%
-\advance\itemno by 1
-{\let\par=\endgraf \smallbreak}%
-\ifhmode \errmessage{In hmode at itemizeitem}\fi
-{\parskip=0in \hskip 0pt
-\hbox to 0pt{\hss \itemcontents\hskip \itemmargin}%
-\vadjust{\penalty 1200}}%
-\flushcr}
-
-% @multitable macros
-% Amy Hendrickson, 8/18/94, 3/6/96
-%
-% @multitable ... @end multitable will make as many columns as desired.
-% Contents of each column will wrap at width given in preamble.  Width
-% can be specified either with sample text given in a template line,
-% or in percent of \hsize, the current width of text on page.
-
-% Table can continue over pages but will only break between lines.
-
-% To make preamble:
-%
-% Either define widths of columns in terms of percent of \hsize:
-%   @multitable @columnfractions .25 .3 .45
-%   @item ...
-%
-%   Numbers following @columnfractions are the percent of the total
-%   current hsize to be used for each column. You may use as many
-%   columns as desired.
-
-
-% Or use a template:
-%   @multitable {Column 1 template} {Column 2 template} {Column 3 template}
-%   @item ...
-%   using the widest term desired in each column.
-%
-% For those who want to use more than one line's worth of words in
-% the preamble, break the line within one argument and it
-% will parse correctly, i.e.,
-%
-%     @multitable {Column 1 template} {Column 2 template} {Column 3
-%      template}
-% Not:
-%     @multitable {Column 1 template} {Column 2 template}
-%      {Column 3 template}
-
-% Each new table line starts with @item, each subsequent new column
-% starts with @tab. Empty columns may be produced by supplying @tab's
-% with nothing between them for as many times as empty columns are needed,
-% ie, @address@hidden@tab will produce two empty columns.
-
-% @item, @tab, @multitable or @end multitable do not need to be on their
-% own lines, but it will not hurt if they are.
-
-% Sample multitable:
-
-%   @multitable {Column 1 template} {Column 2 template} {Column 3 template}
-%   @item first col stuff @tab second col stuff @tab third col
-%   @item
-%   first col stuff
-%   @tab
-%   second col stuff
-%   @tab
-%   third col
-%   @item first col stuff @tab second col stuff
-%   @tab Many paragraphs of text may be used in any column.
-%
-%         They will wrap at the width determined by the template.
-%   @address@hidden@tab This will be in third column.
-%   @end multitable
-
-% Default dimensions may be reset by user.
-% @multitableparskip is vertical space between paragraphs in table.
-% @multitableparindent is paragraph indent in table.
-% @multitablecolmargin is horizontal space to be left between columns.
-% @multitablelinespace is space to leave between table items, baseline
-%                                                            to baseline.
-%   0pt means it depends on current normal line spacing.
-%
-\newskip\multitableparskip
-\newskip\multitableparindent
-\newdimen\multitablecolspace
-\newskip\multitablelinespace
-\multitableparskip=0pt
-\multitableparindent=6pt
-\multitablecolspace=12pt
-\multitablelinespace=0pt
-
-% Macros used to set up halign preamble:
-% 
-\let\endsetuptable\relax
-\def\xendsetuptable{\endsetuptable}
-\let\columnfractions\relax
-\def\xcolumnfractions{\columnfractions}
-\newif\ifsetpercent
-
-% #1 is the part of the @columnfraction before the decimal point, which
-% is presumably either 0 or the empty string (but we don't check, we
-% just throw it away).  #2 is the decimal part, which we use as the
-% percent of \hsize for this column.
-\def\pickupwholefraction#1.#2 {%
-  \global\advance\colcount by 1
-  \expandafter\xdef\csname col\the\colcount\endcsname{.#2\hsize}%
-  \setuptable
-}
-
-\newcount\colcount
-\def\setuptable#1{%
-  \def\firstarg{#1}%
-  \ifx\firstarg\xendsetuptable
-    \let\go = \relax
-  \else
-    \ifx\firstarg\xcolumnfractions
-      \global\setpercenttrue
-    \else
-      \ifsetpercent
-         \let\go\pickupwholefraction
-      \else
-         \global\advance\colcount by 1
-         \setbox0=\hbox{#1\unskip }% Add a normal word space as a separator;
-                            % typically that is always in the input, anyway.
-         \expandafter\xdef\csname col\the\colcount\endcsname{\the\wd0}%
-      \fi
-    \fi
-    \ifx\go\pickupwholefraction
-      % Put the argument back for the \pickupwholefraction call, so
-      % we'll always have a period there to be parsed.
-      \def\go{\pickupwholefraction#1}%
-    \else
-      \let\go = \setuptable
-    \fi%
-  \fi
-  \go
-}
-
-% multitable syntax
-\def\tab{&\hskip1sp\relax} % 2/2/96
-                           % tiny skip here makes sure this column space is
-                           % maintained, even if it is never used.
-
-% @multitable ... @end multitable definitions:
-%
-\def\multitable{\parsearg\dotable}
-\def\dotable#1{\bgroup
-  \vskip\parskip
-  \let\item\crcr
-  \tolerance=9500
-  \hbadness=9500
-  \setmultitablespacing
-  \parskip=\multitableparskip
-  \parindent=\multitableparindent
-  \overfullrule=0pt
-  \global\colcount=0
-  \def\Emultitable{\global\setpercentfalse\cr\egroup\egroup}%
-  %
-  % To parse everything between @multitable and @item:
-  \setuptable#1 \endsetuptable
-  %
-  % \everycr will reset column counter, \colcount, at the end of
-  % each line. Every column entry will cause \colcount to advance by one.
-  % The table preamble
-  % looks at the current \colcount to find the correct column width.
-  \everycr{\noalign{%
-  %
-  % \filbreak%% keeps underfull box messages off when table breaks over pages.
-  % Maybe so, but it also creates really weird page breaks when the table
-  % breaks over pages. Wouldn't \vfil be better?  Wait until the problem
-  % manifests itself, so it can be fixed for real --karl.
-    \global\colcount=0\relax}}%
-  %
-  % This preamble sets up a generic column definition, which will
-  % be used as many times as user calls for columns.
-  % \vtop will set a single line and will also let text wrap and
-  % continue for many paragraphs if desired.
-  \halign\bgroup&\global\advance\colcount by 1\relax
-    \multistrut\vtop{\hsize=\expandafter\csname col\the\colcount\endcsname
-  %
-  % In order to keep entries from bumping into each other
-  % we will add a \leftskip of \multitablecolspace to all columns after
-  % the first one.
-  % 
-  % If a template has been used, we will add \multitablecolspace
-  % to the width of each template entry.
-  % 
-  % If the user has set preamble in terms of percent of \hsize we will
-  % use that dimension as the width of the column, and the \leftskip
-  % will keep entries from bumping into each other.  Table will start at
-  % left margin and final column will justify at right margin.
-  % 
-  % Make sure we don't inherit \rightskip from the outer environment.
-  \rightskip=0pt
-  \ifnum\colcount=1
-    % The first column will be indented with the surrounding text.
-    \advance\hsize by\leftskip
-  \else
-    \ifsetpercent \else
-      % If user has not set preamble in terms of percent of \hsize
-      % we will advance \hsize by \multitablecolspace.
-      \advance\hsize by \multitablecolspace
-    \fi
-   % In either case we will make \leftskip=\multitablecolspace:
-  \leftskip=\multitablecolspace
-  \fi
-  % Ignoring space at the beginning and end avoids an occasional spurious
-  % blank line, when TeX decides to break the line at the space before the
-  % box from the multistrut, so the strut ends up on a line by itself.
-  % For example:
-  % @multitable @columnfractions .11 .89
-  % @item @code{#}
-  % @tab Legal holiday which is valid in major parts of the whole country.
-  % Is automatically provided with highlighting sequences respectively marking
-  % characters.
-  \noindent\ignorespaces##\unskip\multistrut}\cr
-}
-
-\def\setmultitablespacing{% test to see if user has set \multitablelinespace.
-% If so, do nothing. If not, give it an appropriate dimension based on
-% current baselineskip.
-\ifdim\multitablelinespace=0pt
-%% strut to put in table in case some entry doesn't have descenders,
-%% to keep lines equally spaced
-\let\multistrut = \strut
-%% Test to see if parskip is larger than space between lines of
-%% table. If not, do nothing.
-%%        If so, set to same dimension as multitablelinespace.
-\else
-\gdef\multistrut{\vrule height\multitablelinespace depth\dp0
-width0pt\relax} \fi
-\ifdim\multitableparskip>\multitablelinespace
-\global\multitableparskip=\multitablelinespace
-\global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller
-                                      %% than skip between lines in the table.
-\fi%
-\ifdim\multitableparskip=0pt
-\global\multitableparskip=\multitablelinespace
-\global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller
-                                      %% than skip between lines in the table.
-\fi}
-
-
-\message{indexing,}
-% Index generation facilities
-
-% Define \newwrite to be identical to plain tex's \newwrite
-% except not \outer, so it can be used within \newindex.
address@hidden
address@hidden@@n}}
-
-% \newindex {foo} defines an index named foo.
-% It automatically defines \fooindex such that
-% \fooindex ...rest of line... puts an entry in the index foo.
-% It also defines \fooindfile to be the number of the output channel for
-% the file that accumulates this index.  The file's extension is foo.
-% The name of an index should be no more than 2 characters long
-% for the sake of vms.
-%
-\def\newindex#1{%
-  \iflinks
-    \expandafter\newwrite \csname#1indfile\endcsname
-    \openout \csname#1indfile\endcsname \jobname.#1 % Open the file
-  \fi
-  \expandafter\xdef\csname#1index\endcsname{%     % Define @#1index
-    \noexpand\doindex{#1}}
-}
-
-% @defindex foo  ==  \newindex{foo}
-
-\def\defindex{\parsearg\newindex}
-
-% Define @defcodeindex, like @defindex except put all entries in @code.
-
-\def\newcodeindex#1{%
-  \iflinks
-    \expandafter\newwrite \csname#1indfile\endcsname
-    \openout \csname#1indfile\endcsname \jobname.#1
-  \fi
-  \expandafter\xdef\csname#1index\endcsname{%
-    \noexpand\docodeindex{#1}}
-}
-
-\def\defcodeindex{\parsearg\newcodeindex}
-
-% @synindex foo bar    makes index foo feed into index bar.
-% Do this instead of @defindex foo if you don't want it as a separate index.
-% The \closeout helps reduce unnecessary open files; the limit on the
-% Acorn RISC OS is a mere 16 files.
-\def\synindex#1 #2 {%
-  
\expandafter\let\expandafter\synindexfoo\expandafter=\csname#2indfile\endcsname
-  \expandafter\closeout\csname#1indfile\endcsname
-  \expandafter\let\csname#1indfile\endcsname=\synindexfoo
-  \expandafter\xdef\csname#1index\endcsname{% define \xxxindex
-    \noexpand\doindex{#2}}%
-}
-
-% @syncodeindex foo bar   similar, but put all entries made for index foo
-% inside @code.
-\def\syncodeindex#1 #2 {%
-  
\expandafter\let\expandafter\synindexfoo\expandafter=\csname#2indfile\endcsname
-  \expandafter\closeout\csname#1indfile\endcsname
-  \expandafter\let\csname#1indfile\endcsname=\synindexfoo
-  \expandafter\xdef\csname#1index\endcsname{% define \xxxindex
-    \noexpand\docodeindex{#2}}%
-}
-
-% Define \doindex, the driver for all \fooindex macros.
-% Argument #1 is generated by the calling \fooindex macro,
-%  and it is "foo", the name of the index.
-
-% \doindex just uses \parsearg; it calls \doind for the actual work.
-% This is because \doind is more useful to call from other macros.
-
-% There is also \dosubind {index}{topic}{subtopic}
-% which makes an entry in a two-level index such as the operation index.
-
-\def\doindex#1{\edef\indexname{#1}\parsearg\singleindexer}
-\def\singleindexer #1{\doind{\indexname}{#1}}
-
-% like the previous two, but they put @code around the argument.
-\def\docodeindex#1{\edef\indexname{#1}\parsearg\singlecodeindexer}
-\def\singlecodeindexer #1{\doind{\indexname}{\code{#1}}}
-
-\def\indexdummies{%
-\def\ { }%
-% Take care of the plain tex accent commands.
-\def\"{\realbackslash "}%
-\def\`{\realbackslash `}%
-\def\'{\realbackslash '}%
-\def\^{\realbackslash ^}%
-\def\~{\realbackslash ~}%
-\def\={\realbackslash =}%
-\def\b{\realbackslash b}%
-\def\c{\realbackslash c}%
-\def\d{\realbackslash d}%
-\def\u{\realbackslash u}%
-\def\v{\realbackslash v}%
-\def\H{\realbackslash H}%
-% Take care of the plain tex special European modified letters.
-\def\oe{\realbackslash oe}%
-\def\ae{\realbackslash ae}%
-\def\aa{\realbackslash aa}%
-\def\OE{\realbackslash OE}%
-\def\AE{\realbackslash AE}%
-\def\AA{\realbackslash AA}%
-\def\o{\realbackslash o}%
-\def\O{\realbackslash O}%
-\def\l{\realbackslash l}%
-\def\L{\realbackslash L}%
-\def\ss{\realbackslash ss}%
-% Take care of texinfo commands likely to appear in an index entry.
-% (Must be a way to avoid doing expansion at all, and thus not have to
-% laboriously list every single command here.)
address@hidden@}% will be @@ when we switch to @ as escape char.
-% Need these in case \tex is in effect and \{ is a \delimiter again.
-% But can't use \lbracecmd and \rbracecmd because texindex assumes
-% braces and backslashes are used only as delimiters.
-\let\{ = \mylbrace
-\let\} = \myrbrace
-\def\_{{\realbackslash _}}%
-\def\w{\realbackslash w }%
-\def\bf{\realbackslash bf }%
-%\def\rm{\realbackslash rm }%
-\def\sl{\realbackslash sl }%
-\def\sf{\realbackslash sf}%
-\def\tt{\realbackslash tt}%
-\def\gtr{\realbackslash gtr}%
-\def\less{\realbackslash less}%
-\def\hat{\realbackslash hat}%
-\def\TeX{\realbackslash TeX}%
-\def\dots{\realbackslash dots }%
-\def\result{\realbackslash result}%
-\def\equiv{\realbackslash equiv}%
-\def\expansion{\realbackslash expansion}%
-\def\print{\realbackslash print}%
-\def\error{\realbackslash error}%
-\def\point{\realbackslash point}%
-\def\copyright{\realbackslash copyright}%
-\def\tclose##1{\realbackslash tclose {##1}}%
-\def\code##1{\realbackslash code {##1}}%
-\def\uref##1{\realbackslash uref {##1}}%
-\def\url##1{\realbackslash url {##1}}%
-\def\env##1{\realbackslash env {##1}}%
-\def\command##1{\realbackslash command {##1}}%
-\def\option##1{\realbackslash option {##1}}%
-\def\dotless##1{\realbackslash dotless {##1}}%
-\def\samp##1{\realbackslash samp {##1}}%
-\def\,##1{\realbackslash ,{##1}}%
-\def\t##1{\realbackslash t {##1}}%
-\def\r##1{\realbackslash r {##1}}%
-\def\i##1{\realbackslash i {##1}}%
-\def\b##1{\realbackslash b {##1}}%
-\def\sc##1{\realbackslash sc {##1}}%
-\def\cite##1{\realbackslash cite {##1}}%
-\def\key##1{\realbackslash key {##1}}%
-\def\file##1{\realbackslash file {##1}}%
-\def\var##1{\realbackslash var {##1}}%
-\def\kbd##1{\realbackslash kbd {##1}}%
-\def\dfn##1{\realbackslash dfn {##1}}%
-\def\emph##1{\realbackslash emph {##1}}%
-\def\acronym##1{\realbackslash acronym {##1}}%
-%
-% Handle some cases of @value -- where the variable name does not
-% contain - or _, and the value does not contain any
-% (non-fully-expandable) commands.
-\let\value = \expandablevalue
-%
-\unsepspaces
-}
-
-% If an index command is used in an @example environment, any spaces
-% therein should become regular spaces in the raw index file, not the
-% expansion of \tie (\\leavevmode \penalty address@hidden \ ).
-{\obeyspaces
- \gdef\unsepspaces{\obeyspaces\let =\space}}
-
-% \indexnofonts no-ops all font-change commands.
-% This is used when outputting the strings to sort the index by.
-\def\indexdummyfont#1{#1}
-\def\indexdummytex{TeX}
-\def\indexdummydots{...}
-
-\def\indexnofonts{%
-% Just ignore accents.
-\let\,=\indexdummyfont
-\let\"=\indexdummyfont
-\let\`=\indexdummyfont
-\let\'=\indexdummyfont
-\let\^=\indexdummyfont
-\let\~=\indexdummyfont
-\let\==\indexdummyfont
-\let\b=\indexdummyfont
-\let\c=\indexdummyfont
-\let\d=\indexdummyfont
-\let\u=\indexdummyfont
-\let\v=\indexdummyfont
-\let\H=\indexdummyfont
-\let\dotless=\indexdummyfont
-% Take care of the plain tex special European modified letters.
-\def\oe{oe}%
-\def\ae{ae}%
-\def\aa{aa}%
-\def\OE{OE}%
-\def\AE{AE}%
-\def\AA{AA}%
-\def\o{o}%
-\def\O{O}%
-\def\l{l}%
-\def\L{L}%
-\def\ss{ss}%
-\let\w=\indexdummyfont
-\let\t=\indexdummyfont
-\let\r=\indexdummyfont
-\let\i=\indexdummyfont
-\let\b=\indexdummyfont
-\let\emph=\indexdummyfont
-\let\strong=\indexdummyfont
-\let\cite=\indexdummyfont
-\let\sc=\indexdummyfont
-%Don't no-op \tt, since it isn't a user-level command
-% and is used in the definitions of the active chars like <, >, |...
-%\let\tt=\indexdummyfont
-\let\tclose=\indexdummyfont
-\let\code=\indexdummyfont
-\let\url=\indexdummyfont
-\let\uref=\indexdummyfont
-\let\env=\indexdummyfont
-\let\command=\indexdummyfont
-\let\option=\indexdummyfont
-\let\file=\indexdummyfont
-\let\samp=\indexdummyfont
-\let\kbd=\indexdummyfont
-\let\key=\indexdummyfont
-\let\var=\indexdummyfont
-\let\TeX=\indexdummytex
-\let\dots=\indexdummydots
address@hidden@}%
-}
-
-% To define \realbackslash, we must make \ not be an escape.
-% We must first make another character (@) an escape
-% so we do not become unable to do a definition.
-
address@hidden \catcode`\\=\other
- @address@hidden
-
-\let\indexbackslash=0  %overridden during \printindex.
-\let\SETmarginindex=\relax % put index entries in margin (undocumented)?
-
-% For \ifx comparisons.
-\def\emptymacro{\empty}
-
-% Most index entries go through here, but \dosubind is the general case.
-% 
-\def\doind#1#2{\dosubind{#1}{#2}\empty}
-
-% Workhorse for all \fooindexes.
-% #1 is name of index, #2 is stuff to put there, #3 is subentry --
-% \empty if called from \doind, as we usually are.  The main exception
-% is with defuns, which call us directly.
-% 
-\def\dosubind#1#2#3{%
-  % Put the index entry in the margin if desired.
-  \ifx\SETmarginindex\relax\else
-    \insert\margin{\hbox{\vrule height8pt depth3pt width0pt #2}}%
-  \fi
-  {%
-    \count255=\lastpenalty
-    {%
-      \indexdummies % Must do this here, since \bf, etc expand at this stage
-      \escapechar=`\\
-      {%
-        \let\folio = 0% We will expand all macros now EXCEPT \folio.
-        \def\rawbackslashxx{\indexbackslash}% \indexbackslash isn't defined now
-        % so it will be output as is; and it will print as backslash.
-        %
-        \def\thirdarg{#3}%
-        %
-        % If third arg is present, precede it with space in sort key.
-        \ifx\thirdarg\emptymacro
-          \let\subentry = \empty
-        \else
-          \def\subentry{ #3}%
-        \fi
-        %
-        % First process the index-string with all font commands turned off
-        % to get the string to sort by.
-        {\indexnofonts \xdef\indexsorttmp{#2\subentry}}%
-        %
-        % Now produce the complete index entry, with both the sort key and the
-        % original text, including any font commands.
-        \toks0 = {#2}%
-        \edef\temp{%
-          \write\csname#1indfile\endcsname{%
-            \realbackslash entry{\indexsorttmp}{\folio}{\the\toks0}}%
-        }%
-        %
-        % If third (subentry) arg is present, add it to the index string.
-        \ifx\thirdarg\emptymacro \else
-          \toks0 = {#3}%
-          \edef\temp{\temp{\the\toks0}}%
-        \fi
-        %
-        % If a skip is the last thing on the list now, preserve it
-        % by backing up by \lastskip, doing the \write, then inserting
-        % the skip again.  Otherwise, the whatsit generated by the
-        % \write will make \lastskip zero.  The result is that sequences
-        % like this:
-        % @end defun
-        % @tindex whatever
-        % @defun ...
-        % will have extra space inserted, because the \medbreak in the
-        % start of the @defun won't see the skip inserted by the @end of
-        % the previous defun.
-        % 
-        % But don't do any of this if we're not in vertical mode.  We
-        % don't want to do a \vskip and prematurely end a paragraph.
-        % 
-        % Avoid page breaks due to these extra skips, too.
-        % 
-        \iflinks
-          \ifvmode
-            \skip0 = \lastskip
-            \ifdim\lastskip = 0pt \else \nobreak\vskip-\lastskip \fi
-          \fi
-          %
-          \temp % do the write
-          %
-          % 
-          \ifvmode \ifdim\skip0 = 0pt \else \nobreak\vskip\skip0 \fi \fi
-        \fi
-      }%
-    }%
-    \penalty\count255
-  }%
-}
-
-% The index entry written in the file actually looks like
-%  \entry {sortstring}{page}{topic}
-% or
-%  \entry {sortstring}{page}{topic}{subtopic}
-% The texindex program reads in these files and writes files
-% containing these kinds of lines:
-%  \initial {c}
-%     before the first topic whose initial is c
-%  \entry {topic}{pagelist}
-%     for a topic that is used without subtopics
-%  \primary {topic}
-%     for the beginning of a topic that is used with subtopics
-%  \secondary {subtopic}{pagelist}
-%     for each subtopic.
-
-% Define the user-accessible indexing commands
-% @findex, @vindex, @kindex, @cindex.
-
-\def\findex {\fnindex}
-\def\kindex {\kyindex}
-\def\cindex {\cpindex}
-\def\vindex {\vrindex}
-\def\tindex {\tpindex}
-\def\pindex {\pgindex}
-
-\def\cindexsub {\begingroup\obeylines\cindexsub}
-{\obeylines %
-\gdef\cindexsub "#1" #2^^M{\endgroup %
-\dosubind{cp}{#2}{#1}}}
-
-% Define the macros used in formatting output of the sorted index material.
-
-% @printindex causes a particular index (the ??s file) to get printed.
-% It does not print any chapter heading (usually an @unnumbered).
-%
-\def\printindex{\parsearg\doprintindex}
-\def\doprintindex#1{\begingroup
-  \dobreak \chapheadingskip{10000}%
-  %
-  \indexfonts \rm
-  \tolerance = 9500
-  \indexbreaks
-  %
-  % See if the index file exists and is nonempty.
-  % Change catcode of @ here so that if the index file contains
-  % \initial address@hidden
-  % as its first line, TeX doesn't complain about mismatched braces
-  % (because it thinks @} is a control sequence).
-  \catcode`\@ = 11
-  \openin 1 \jobname.#1s
-  \ifeof 1
-    % \enddoublecolumns gets confused if there is no text in the index,
-    % and it loses the chapter title and the aux file entries for the
-    % index.  The easiest way to prevent this problem is to make sure
-    % there is some text.
-    (Index is nonexistent)
-  \else
-    %
-    % If the index file exists but is empty, then \openin leaves \ifeof
-    % false.  We have to make TeX try to read something from the file, so
-    % it can discover if there is anything in it.
-    \read 1 to \temp
-    \ifeof 1
-      (Index is empty)
-    \else
-      % Index files are almost Texinfo source, but we use \ as the escape
-      % character.  It would be better to use @, but that's too big a change
-      % to make right now.
-      \def\indexbackslash{\rawbackslashxx}%
-      \catcode`\\ = 0
-      \escapechar = `\\
-      \begindoublecolumns
-      \input \jobname.#1s
-      \enddoublecolumns
-    \fi
-  \fi
-  \closein 1
-\endgroup}
-
-% These macros are used by the sorted index file itself.
-% Change them to control the appearance of the index.
-
-\def\initial#1{{%
-  % Some minor font changes for the special characters.
-  \let\tentt=\sectt \let\tt=\sectt \let\sf=\sectt
-  %
-  % Remove any glue we may have, we'll be inserting our own.
-  \removelastskip
-  % 
-  % We like breaks before the index initials, so insert a bonus.
-  \penalty -300
-  %
-  % Typeset the initial.  Making this add up to a whole number of
-  % baselineskips increases the chance of the dots lining up from column
-  % to column.  It still won't often be perfect, because of the stretch
-  % we need before each entry, but it's better.
-  % 
-  % No shrink because it confuses \balancecolumns.
-  \vskip 1.67\baselineskip plus .5\baselineskip
-  \leftline{\secbf #1}%
-  \vskip .33\baselineskip plus .1\baselineskip
-  %
-  % Do our best not to break after the initial.
-  \nobreak
-}}
-
-% This typesets a paragraph consisting of #1, dot leaders, and then #2
-% flush to the right margin.  It is used for index and table of contents
-% entries.  The paragraph is indented by \leftskip.
-%
-\def\entry#1#2{\begingroup
-  %
-  % Start a new paragraph if necessary, so our assignments below can't
-  % affect previous text.
-  \par
-  %
-  % Do not fill out the last line with white space.
-  \parfillskip = 0in
-  %
-  % No extra space above this paragraph.
-  \parskip = 0in
-  %
-  % Do not prefer a separate line ending with a hyphen to fewer lines.
-  \finalhyphendemerits = 0
-  %
-  % \hangindent is only relevant when the entry text and page number
-  % don't both fit on one line.  In that case, bob suggests starting the
-  % dots pretty far over on the line.  Unfortunately, a large
-  % indentation looks wrong when the entry text itself is broken across
-  % lines.  So we use a small indentation and put up with long leaders.
-  %
-  % \hangafter is reset to 1 (which is the value we want) at the start
-  % of each paragraph, so we need not do anything with that.
-  \hangindent = 2em
-  %
-  % When the entry text needs to be broken, just fill out the first line
-  % with blank space.
-  \rightskip = 0pt plus1fil
-  %
-  % A bit of stretch before each entry for the benefit of balancing columns.
-  \vskip 0pt plus1pt
-  %
-  % Start a ``paragraph'' for the index entry so the line breaking
-  % parameters we've set above will have an effect.
-  \noindent
-  %
-  % Insert the text of the index entry.  TeX will do line-breaking on it.
-  #1%
-  % The following is kludged to not output a line of dots in the index if
-  % there are no page numbers.  The next person who breaks this will be
-  % cursed by a Unix daemon.
-  \def\tempa{{\rm }}%
-  \def\tempb{#2}%
-  \edef\tempc{\tempa}%
-  \edef\tempd{\tempb}%
-  \ifx\tempc\tempd\ \else%
-    %
-    % If we must, put the page number on a line of its own, and fill out
-    % this line with blank space.  (The \hfil is overwhelmed with the
-    % fill leaders glue in \indexdotfill if the page number does fit.)
-    \hfil\penalty50
-    \null\nobreak\indexdotfill % Have leaders before the page number.
-    %
-    % The `\ ' here is removed by the implicit \unskip that TeX does as
-    % part of (the primitive) \par.  Without it, a spurious underfull
-    % \hbox ensues.
-    \ #2% The page number ends the paragraph.
-  \fi%
-  \par
-\endgroup}
-
-% Like \dotfill except takes at least 1 em.
-\def\indexdotfill{\cleaders
-  \hbox{$\mathsurround=0pt \mkern1.5mu ${\it .}$ \mkern1.5mu$}\hskip 1em plus 
1fill}
-
-\def\primary #1{\line{#1\hfil}}
-
-\newskip\secondaryindent \secondaryindent=0.5cm
-
-\def\secondary #1#2{
-{\parfillskip=0in \parskip=0in
-\hangindent =1in \hangafter=1
-\noindent\hskip\secondaryindent\hbox{#1}\indexdotfill #2\par
-}}
-
-% Define two-column mode, which we use to typeset indexes.
-% Adapted from the TeXbook, page 416, which is to say,
-% the manmac.tex format used to print the TeXbook itself.
address@hidden
-
-\newbox\partialpage
-\newdimen\doublecolumnhsize
-
-\def\begindoublecolumns{\begingroup % ended by \enddoublecolumns
-  % Grab any single-column material above us.
-  \output = {\global\setbox\partialpage = \vbox{%
-    % 
-    % Here is a possibility not foreseen in manmac: if we accumulate a
-    % whole lot of material, we might end up calling this \output
-    % routine twice in a row (see the doublecol-lose test, which is
-    % essentially a couple of indexes with @setchapternewpage off).  In
-    % that case, we must prevent the second \partialpage from
-    % simply overwriting the first, causing us to lose the page.
-    % This will preserve it until a real output routine can ship it
-    % out.  Generally, \partialpage will be empty when this runs and
-    % this will be a no-op.
-    \unvbox\partialpage
-    %
-    % Unvbox the main output page.
-    \unvbox255
-    \kern-\topskip \kern\baselineskip
-  }}%
-  \eject % run that output routine to set \partialpage
-  %
-  % Use the double-column output routine for subsequent pages.
-  \output = {\doublecolumnout}%
-  %
-  % Change the page size parameters.  We could do this once outside this
-  % routine, in each of @smallbook, @afourpaper, and the default 8.5x11
-  % format, but then we repeat the same computation.  Repeating a couple
-  % of assignments once per index is clearly meaningless for the
-  % execution time, so we may as well do it in one place.
-  %
-  % First we halve the line length, less a little for the gutter between
-  % the columns.  We compute the gutter based on the line length, so it
-  % changes automatically with the paper format.  The magic constant
-  % below is chosen so that the gutter has the same value (well, +-<1pt)
-  % as it did when we hard-coded it.
-  %
-  % We put the result in a separate register, \doublecolumhsize, so we
-  % can restore it in \pagesofar, after \hsize itself has (potentially)
-  % been clobbered.
-  %
-  \doublecolumnhsize = \hsize
-    \advance\doublecolumnhsize by -.04154\hsize
-    \divide\doublecolumnhsize by 2
-  \hsize = \doublecolumnhsize
-  %
-  % Double the \vsize as well.  (We don't need a separate register here,
-  % since nobody clobbers \vsize.)
-  \advance\vsize by -\ht\partialpage
-  \vsize = 2\vsize
-}
-
-% The double-column output routine for all double-column pages except
-% the last.
-% 
-\def\doublecolumnout{%
-  \splittopskip=\topskip \splitmaxdepth=\maxdepth
-  % Get the available space for the double columns -- the normal
-  % (undoubled) page height minus any material left over from the
-  % previous page.
-  \dimen@ = \vsize
-  \divide\dimen@ by 2
-  %
-  % box0 will be the left-hand column, box2 the right.
-  \setbox0=\vsplit255 to\dimen@ \setbox2=\vsplit255 to\dimen@
-  \onepageout\pagesofar
-  \unvbox255
-  \penalty\outputpenalty
-}
-\def\pagesofar{%
-  % Re-output the contents of the output page -- any previous material,
-  % followed by the two boxes we just split, in box0 and box2.
-  \advance\vsize by \ht\partialpage
-  \unvbox\partialpage
-  %
-  \hsize = \doublecolumnhsize
-  \wd0=\hsize \wd2=\hsize
-  \hbox to\pagewidth{\box0\hfil\box2}%
-}
-\def\enddoublecolumns{%
-  \output = {%
-    % Split the last of the double-column material.  Leave it on the
-    % current page, no automatic page break.
-    \balancecolumns
-    %
-    % If we end up splitting too much material for the current page,
-    % though, there will be another page break right after this \output
-    % invocation ends.  Having called \balancecolumns once, we do not
-    % want to call it again.  Therefore, reset \output to its normal
-    % definition right away.  (We hope \balancecolumns will never be
-    % called on to balance too much material, but if it is, this makes
-    % the output somewhat more palatable.)
-    \global\output = {\onepageout{\pagecontents\PAGE}}%
-  }%
-  \eject
-  \endgroup % started in \begindoublecolumns
-  %
-  % \pagegoal was set to the doubled \vsize above, since we restarted
-  % the current page.  We're now back to normal single-column
-  % typesetting, so reset \pagegoal to the normal \vsize (after the
-  % \endgroup where \vsize got restored).
-  \pagegoal = \vsize
-}
-\def\balancecolumns{%
-  % Called at the end of the double column material.
-  \setbox0 = \vbox{\unvbox255}% like \box255 but more efficient, see p.120.
-  \dimen@ = \ht0
-  \advance\dimen@ by \topskip
-  \advance\dimen@ by-\baselineskip
-  \divide\dimen@ by 2 % target to split to
-  %debug\message{final 2-column material height=\the\ht0, address@hidden
-  \splittopskip = \topskip
-  % Loop until we get a decent breakpoint.
-  {%
-    \vbadness = 10000
-    \loop
-      \global\setbox3 = \copy0
-      \global\setbox1 = \vsplit3 to \dimen@
-    \ifdim\ht3>\dimen@
-      \global\advance\dimen@ by 1pt
-    \repeat
-  }%
-  %debug\message{split to \the\dimen@, column heights: \the\ht1, \the\ht3.}%
-  \setbox0=\vbox address@hidden
-  \setbox2=\vbox address@hidden
-  %
-  \pagesofar
-}
-\catcode`\@ = \other
-
-
-\message{sectioning,}
-% Define chapters, sections, etc.
-
-\newcount\chapno
-\newcount\secno        \secno=0
-\newcount\subsecno     \subsecno=0
-\newcount\subsubsecno  \subsubsecno=0
-
-% This counter is funny since it counts through charcodes of letters A, B, ...
-\newcount\appendixno  \appendixno = `\@
-\def\appendixletter{\char\the\appendixno}
-
-% Each @chapter defines this as the name of the chapter.
-% page headings and footings can use it.  @section does likewise.
-\def\thischapter{}
-\def\thissection{}
-
-\newcount\absseclevel % used to calculate proper heading level
-\newcount\secbase\secbase=0 % @raise/lowersections modify this count
-
-% @raisesections: treat @section as chapter, @subsection as section, etc.
-\def\raisesections{\global\advance\secbase by -1}
-\let\up=\raisesections % original BFox name
-
-% @lowersections: treat @chapter as section, @section as subsection, etc.
-\def\lowersections{\global\advance\secbase by 1}
-\let\down=\lowersections % original BFox name
-
-% Choose a numbered-heading macro
-% #1 is heading level if unmodified by @raisesections or @lowersections
-% #2 is text for heading
-\def\numhead#1#2{\absseclevel=\secbase\advance\absseclevel by #1
-\ifcase\absseclevel
-  \chapterzzz{#2}
-\or
-  \seczzz{#2}
-\or
-  \numberedsubseczzz{#2}
-\or
-  \numberedsubsubseczzz{#2}
-\else
-  \ifnum \absseclevel<0
-    \chapterzzz{#2}
-  \else
-    \numberedsubsubseczzz{#2}
-  \fi
-\fi
-}
-
-% like \numhead, but chooses appendix heading levels
-\def\apphead#1#2{\absseclevel=\secbase\advance\absseclevel by #1
-\ifcase\absseclevel
-  \appendixzzz{#2}
-\or
-  \appendixsectionzzz{#2}
-\or
-  \appendixsubseczzz{#2}
-\or
-  \appendixsubsubseczzz{#2}
-\else
-  \ifnum \absseclevel<0
-    \appendixzzz{#2}
-  \else
-    \appendixsubsubseczzz{#2}
-  \fi
-\fi
-}
-
-% like \numhead, but chooses numberless heading levels
-\def\unnmhead#1#2{\absseclevel=\secbase\advance\absseclevel by #1
-\ifcase\absseclevel
-  \unnumberedzzz{#2}
-\or
-  \unnumberedseczzz{#2}
-\or
-  \unnumberedsubseczzz{#2}
-\or
-  \unnumberedsubsubseczzz{#2}
-\else
-  \ifnum \absseclevel<0
-    \unnumberedzzz{#2}
-  \else
-    \unnumberedsubsubseczzz{#2}
-  \fi
-\fi
-}
-
-% @chapter, @appendix, @unnumbered.
-\def\thischaptername{No Chapter Title}
-\outer\def\chapter{\parsearg\chapteryyy}
-\def\chapteryyy #1{\numhead0{#1}} % normally numhead0 calls chapterzzz
-\def\chapterzzz #1{%
-\secno=0 \subsecno=0 \subsubsecno=0
-\global\advance \chapno by 1 \message{\putwordChapter\space \the\chapno}%
-\chapmacro {#1}{\the\chapno}%
-\gdef\thissection{#1}%
-\gdef\thischaptername{#1}%
-% We don't substitute the actual chapter name into \thischapter
-% because we don't want its macros evaluated now.
-\xdef\thischapter{\putwordChapter{} \the\chapno: \noexpand\thischaptername}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash chapentry{\the\toks0}%
-                                  {\the\chapno}}}%
-\temp
-\donoderef
-\global\let\section = \numberedsec
-\global\let\subsection = \numberedsubsec
-\global\let\subsubsection = \numberedsubsubsec
-}
-
-\outer\def\appendix{\parsearg\appendixyyy}
-\def\appendixyyy #1{\apphead0{#1}} % normally apphead0 calls appendixzzz
-\def\appendixzzz #1{%
-\secno=0 \subsecno=0 \subsubsecno=0
-\global\advance \appendixno by 1
-\message{\putwordAppendix\space \appendixletter}%
-\chapmacro {#1}{\putwordAppendix{} \appendixletter}%
-\gdef\thissection{#1}%
-\gdef\thischaptername{#1}%
-\xdef\thischapter{\putwordAppendix{} \appendixletter: 
\noexpand\thischaptername}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash chapentry{\the\toks0}%
-                       {\putwordAppendix{} \appendixletter}}}%
-\temp
-\appendixnoderef
-\global\let\section = \appendixsec
-\global\let\subsection = \appendixsubsec
-\global\let\subsubsection = \appendixsubsubsec
-}
-
-% @centerchap is like @unnumbered, but the heading is centered.
-\outer\def\centerchap{\parsearg\centerchapyyy}
-\def\centerchapyyy #1{{\let\unnumbchapmacro=\centerchapmacro 
\unnumberedyyy{#1}}}
-
-% @top is like @unnumbered.
-\outer\def\top{\parsearg\unnumberedyyy}
-
-\outer\def\unnumbered{\parsearg\unnumberedyyy}
-\def\unnumberedyyy #1{\unnmhead0{#1}} % normally unnmhead0 calls unnumberedzzz
-\def\unnumberedzzz #1{%
-\secno=0 \subsecno=0 \subsubsecno=0
-%
-% This used to be simply \message{#1}, but TeX fully expands the
-% argument to \message.  Therefore, if #1 contained @-commands, TeX
-% expanded them.  For example, in address@hidden The @cite{Book}', TeX
-% expanded @cite (which turns out to cause errors because \cite is meant
-% to be executed, not expanded).
-%
-% Anyway, we don't want the fully-expanded definition of @cite to appear
-% as a result of the \message, we just want address@hidden' itself.  We use
-% \the<toks register> to achieve this: TeX expands \the<toks> only once,
-% simply yielding the contents of <toks register>.  (We also do this for
-% the toc entries.)
-\toks0 = {#1}\message{(\the\toks0)}%
-%
-\unnumbchapmacro {#1}%
-\gdef\thischapter{#1}\gdef\thissection{#1}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash 
unnumbchapentry{\the\toks0}}}%
-\temp
-\unnumbnoderef
-\global\let\section = \unnumberedsec
-\global\let\subsection = \unnumberedsubsec
-\global\let\subsubsection = \unnumberedsubsubsec
-}
-
-% Sections.
-\outer\def\numberedsec{\parsearg\secyyy}
-\def\secyyy #1{\numhead1{#1}} % normally calls seczzz
-\def\seczzz #1{%
-\subsecno=0 \subsubsecno=0 \global\advance \secno by 1 %
-\gdef\thissection{#1}\secheading {#1}{\the\chapno}{\the\secno}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash secentry{\the\toks0}%
-                                  {\the\chapno}{\the\secno}}}%
-\temp
-\donoderef
-\nobreak
-}
-
-\outer\def\appendixsection{\parsearg\appendixsecyyy}
-\outer\def\appendixsec{\parsearg\appendixsecyyy}
-\def\appendixsecyyy #1{\apphead1{#1}} % normally calls appendixsectionzzz
-\def\appendixsectionzzz #1{%
-\subsecno=0 \subsubsecno=0 \global\advance \secno by 1 %
-\gdef\thissection{#1}\secheading {#1}{\appendixletter}{\the\secno}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash secentry{\the\toks0}%
-                                  {\appendixletter}{\the\secno}}}%
-\temp
-\appendixnoderef
-\nobreak
-}
-
-\outer\def\unnumberedsec{\parsearg\unnumberedsecyyy}
-\def\unnumberedsecyyy #1{\unnmhead1{#1}} % normally calls unnumberedseczzz
-\def\unnumberedseczzz #1{%
-\plainsecheading {#1}\gdef\thissection{#1}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash unnumbsecentry{\the\toks0}}}%
-\temp
-\unnumbnoderef
-\nobreak
-}
-
-% Subsections.
-\outer\def\numberedsubsec{\parsearg\numberedsubsecyyy}
-\def\numberedsubsecyyy #1{\numhead2{#1}} % normally calls numberedsubseczzz
-\def\numberedsubseczzz #1{%
-\gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 %
-\subsecheading {#1}{\the\chapno}{\the\secno}{\the\subsecno}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash subsecentry{\the\toks0}%
-                                    {\the\chapno}{\the\secno}{\the\subsecno}}}%
-\temp
-\donoderef
-\nobreak
-}
-
-\outer\def\appendixsubsec{\parsearg\appendixsubsecyyy}
-\def\appendixsubsecyyy #1{\apphead2{#1}} % normally calls appendixsubseczzz
-\def\appendixsubseczzz #1{%
-\gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 %
-\subsecheading {#1}{\appendixletter}{\the\secno}{\the\subsecno}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash subsecentry{\the\toks0}%
-                                {\appendixletter}{\the\secno}{\the\subsecno}}}%
-\temp
-\appendixnoderef
-\nobreak
-}
-
-\outer\def\unnumberedsubsec{\parsearg\unnumberedsubsecyyy}
-\def\unnumberedsubsecyyy #1{\unnmhead2{#1}} %normally calls unnumberedsubseczzz
-\def\unnumberedsubseczzz #1{%
-\plainsubsecheading {#1}\gdef\thissection{#1}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash unnumbsubsecentry%
-                                    {\the\toks0}}}%
-\temp
-\unnumbnoderef
-\nobreak
-}
-
-% Subsubsections.
-\outer\def\numberedsubsubsec{\parsearg\numberedsubsubsecyyy}
-\def\numberedsubsubsecyyy #1{\numhead3{#1}} % normally numberedsubsubseczzz
-\def\numberedsubsubseczzz #1{%
-\gdef\thissection{#1}\global\advance \subsubsecno by 1 %
-\subsubsecheading {#1}
-  {\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash subsubsecentry{\the\toks0}%
-  {\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}}}%
-\temp
-\donoderef
-\nobreak
-}
-
-\outer\def\appendixsubsubsec{\parsearg\appendixsubsubsecyyy}
-\def\appendixsubsubsecyyy #1{\apphead3{#1}} % normally appendixsubsubseczzz
-\def\appendixsubsubseczzz #1{%
-\gdef\thissection{#1}\global\advance \subsubsecno by 1 %
-\subsubsecheading {#1}
-  {\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash subsubsecentry{\the\toks0}%
-  {\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno}}}%
-\temp
-\appendixnoderef
-\nobreak
-}
-
-\outer\def\unnumberedsubsubsec{\parsearg\unnumberedsubsubsecyyy}
-\def\unnumberedsubsubsecyyy #1{\unnmhead3{#1}} %normally unnumberedsubsubseczzz
-\def\unnumberedsubsubseczzz #1{%
-\plainsubsubsecheading {#1}\gdef\thissection{#1}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash unnumbsubsubsecentry%
-                                    {\the\toks0}}}%
-\temp
-\unnumbnoderef
-\nobreak
-}
-
-% These are variants which are not "outer", so they can appear in @ifinfo.
-% Actually, they should now be obsolete; ordinary section commands should work.
-\def\infotop{\parsearg\unnumberedzzz}
-\def\infounnumbered{\parsearg\unnumberedzzz}
-\def\infounnumberedsec{\parsearg\unnumberedseczzz}
-\def\infounnumberedsubsec{\parsearg\unnumberedsubseczzz}
-\def\infounnumberedsubsubsec{\parsearg\unnumberedsubsubseczzz}
-
-\def\infoappendix{\parsearg\appendixzzz}
-\def\infoappendixsec{\parsearg\appendixseczzz}
-\def\infoappendixsubsec{\parsearg\appendixsubseczzz}
-\def\infoappendixsubsubsec{\parsearg\appendixsubsubseczzz}
-
-\def\infochapter{\parsearg\chapterzzz}
-\def\infosection{\parsearg\sectionzzz}
-\def\infosubsection{\parsearg\subsectionzzz}
-\def\infosubsubsection{\parsearg\subsubsectionzzz}
-
-% These macros control what the section commands do, according
-% to what kind of chapter we are in (ordinary, appendix, or unnumbered).
-% Define them by default for a numbered chapter.
-\global\let\section = \numberedsec
-\global\let\subsection = \numberedsubsec
-\global\let\subsubsection = \numberedsubsubsec
-
-% Define @majorheading, @heading and @subheading
-
-% NOTE on use of \vbox for chapter headings, section headings, and such:
-%       1) We use \vbox rather than the earlier \line to permit
-%          overlong headings to fold.
-%       2) \hyphenpenalty is set to 10000 because hyphenation in a
-%          heading is obnoxious; this forbids it.
-%       3) Likewise, headings look best if no \parindent is used, and
-%          if justification is not attempted.  Hence \raggedright.
-
-
-\def\majorheading{\parsearg\majorheadingzzz}
-\def\majorheadingzzz #1{%
-{\advance\chapheadingskip by 10pt \chapbreak }%
-{\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
-                  \parindent=0pt\raggedright
-                  \rm #1\hfill}}\bigskip \par\penalty 200}
-
-\def\chapheading{\parsearg\chapheadingzzz}
-\def\chapheadingzzz #1{\chapbreak %
-{\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
-                  \parindent=0pt\raggedright
-                  \rm #1\hfill}}\bigskip \par\penalty 200}
-
-% @heading, @subheading, @subsubheading.
-\def\heading{\parsearg\plainsecheading}
-\def\subheading{\parsearg\plainsubsecheading}
-\def\subsubheading{\parsearg\plainsubsubsecheading}
-
-% These macros generate a chapter, section, etc. heading only
-% (including whitespace, linebreaking, etc. around it),
-% given all the information in convenient, parsed form.
-
-%%% Args are the skip and penalty (usually negative)
-\def\dobreak#1#2{\par\ifdim\lastskip<#1\removelastskip\penalty#2\vskip#1\fi}
-
-\def\setchapterstyle #1 {\csname CHAPF#1\endcsname}
-
-%%% Define plain chapter starts, and page on/off switching for it
-% Parameter controlling skip before chapter headings (if needed)
-
-\newskip\chapheadingskip
-
-\def\chapbreak{\dobreak \chapheadingskip {-4000}}
-\def\chappager{\par\vfill\supereject}
-\def\chapoddpage{\chappager \ifodd\pageno \else \hbox to 0pt{} \chappager\fi}
-
-\def\setchapternewpage #1 {\csname CHAPPAG#1\endcsname}
-
-\def\CHAPPAGoff{%
-\global\let\contentsalignmacro = \chappager
-\global\let\pchapsepmacro=\chapbreak
-\global\let\pagealignmacro=\chappager}
-
-\def\CHAPPAGon{%
-\global\let\contentsalignmacro = \chappager
-\global\let\pchapsepmacro=\chappager
-\global\let\pagealignmacro=\chappager
-\global\def\HEADINGSon{\HEADINGSsingle}}
-
-\def\CHAPPAGodd{
-\global\let\contentsalignmacro = \chapoddpage
-\global\let\pchapsepmacro=\chapoddpage
-\global\let\pagealignmacro=\chapoddpage
-\global\def\HEADINGSon{\HEADINGSdouble}}
-
-\CHAPPAGon
-
-\def\CHAPFplain{
-\global\let\chapmacro=\chfplain
-\global\let\unnumbchapmacro=\unnchfplain
-\global\let\centerchapmacro=\centerchfplain}
-
-% Plain chapter opening.
-% #1 is the text, #2 the chapter number or empty if unnumbered.
-\def\chfplain#1#2{%
-  \pchapsepmacro
-  {%
-    \chapfonts \rm
-    \def\chapnum{#2}%
-    \setbox0 = \hbox{#2\ifx\chapnum\empty\else\enspace\fi}%
-    \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright
-          \hangindent = \wd0 \centerparametersmaybe
-          \unhbox0 #1\par}%
-  }%
-  \nobreak\bigskip % no page break after a chapter title
-  \nobreak
-}
-
-% Plain opening for unnumbered.
-\def\unnchfplain#1{\chfplain{#1}{}}
-
-% @centerchap -- centered and unnumbered.
-\let\centerparametersmaybe = \relax
-\def\centerchfplain#1{{%
-  \def\centerparametersmaybe{%
-    \advance\rightskip by 3\rightskip
-    \leftskip = \rightskip
-    \parfillskip = 0pt
-  }%
-  \chfplain{#1}{}%
-}}
-
-\CHAPFplain % The default
-
-\def\unnchfopen #1{%
-\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
-                       \parindent=0pt\raggedright
-                       \rm #1\hfill}}\bigskip \par\nobreak
-}
-
-\def\chfopen #1#2{\chapoddpage {\chapfonts
-\vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}%
-\par\penalty 5000 %
-}
-
-\def\centerchfopen #1{%
-\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
-                       \parindent=0pt
-                       \hfill {\rm #1}\hfill}}\bigskip \par\nobreak
-}
-
-\def\CHAPFopen{
-\global\let\chapmacro=\chfopen
-\global\let\unnumbchapmacro=\unnchfopen
-\global\let\centerchapmacro=\centerchfopen}
-
-
-% Section titles.
-\newskip\secheadingskip
-\def\secheadingbreak{\dobreak \secheadingskip {-1000}}
-\def\secheading#1#2#3{\sectionheading{sec}{#2.#3}{#1}}
-\def\plainsecheading#1{\sectionheading{sec}{}{#1}}
-
-% Subsection titles.
-\newskip \subsecheadingskip
-\def\subsecheadingbreak{\dobreak \subsecheadingskip {-500}}
-\def\subsecheading#1#2#3#4{\sectionheading{subsec}{#2.#3.#4}{#1}}
-\def\plainsubsecheading#1{\sectionheading{subsec}{}{#1}}
-
-% Subsubsection titles.
-\let\subsubsecheadingskip = \subsecheadingskip
-\let\subsubsecheadingbreak = \subsecheadingbreak
-\def\subsubsecheading#1#2#3#4#5{\sectionheading{subsubsec}{#2.#3.#4.#5}{#1}}
-\def\plainsubsubsecheading#1{\sectionheading{subsubsec}{}{#1}}
-
-
-% Print any size section title.
-%
-% #1 is the section type (sec/subsec/subsubsec), #2 is the section
-% number (maybe empty), #3 the text.
-\def\sectionheading#1#2#3{%
-  {%
-    \expandafter\advance\csname #1headingskip\endcsname by \parskip
-    \csname #1headingbreak\endcsname
-  }%
-  {%
-    % Switch to the right set of fonts.
-    \csname #1fonts\endcsname \rm
-    %
-    % Only insert the separating space if we have a section number.
-    \def\secnum{#2}%
-    \setbox0 = \hbox{#2\ifx\secnum\empty\else\enspace\fi}%
-    %
-    \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright
-          \hangindent = \wd0 % zero if no section number
-          \unhbox0 #3}%
-  }%
-  \ifdim\parskip<10pt \nobreak\kern10pt\nobreak\kern-\parskip\fi \nobreak
-}
-
-
-\message{toc,}
-\newwrite\tocfile
-
-% Write an entry to the toc file, opening it if necessary.
-% Called from @chapter, etc.  We supply {\folio} at the end of the
-% argument, which will end up as the last argument to the \...entry macro.
-% 
-% We open the .toc file here instead of at @setfilename or any other
-% given time so that @contents can be put in the document anywhere.
-% 
-\newif\iftocfileopened
-\def\writetocentry#1{%
-  \iftocfileopened\else
-    \immediate\openout\tocfile = \jobname.toc
-    \global\tocfileopenedtrue
-  \fi
-  \iflinks \write\tocfile{#1{\folio}}\fi
-}
-
-\newskip\contentsrightmargin \contentsrightmargin=1in
-\newcount\savepageno
-\newcount\lastnegativepageno \lastnegativepageno = -1
-
-% Finish up the main text and prepare to read what we've written
-% to \tocfile.
-% 
-\def\startcontents#1{%
-   % If @setchapternewpage on, and @headings double, the contents should
-   % start on an odd page, unlike chapters.  Thus, we maintain
-   % \contentsalignmacro in parallel with \pagealignmacro.
-   % From: Torbjorn Granlund <address@hidden>
-   \contentsalignmacro
-   \immediate\closeout\tocfile
-   %
-   % Don't need to put `Contents' or `Short Contents' in the headline.
-   % It is abundantly clear what they are.
-   \unnumbchapmacro{#1}\def\thischapter{}%
-   \savepageno = \pageno
-   \begingroup                  % Set up to handle contents files properly.
-      \catcode`\\=0  \catcode`\{=1  \catcode`\}=2  address@hidden
-      % We can't do this, because then an actual ^ in a section
-      % title fails, e.g., @chapter ^ -- exponentiation.  --karl, 9jul97.
-      %\catcode`\^=7 % to see ^^e4 as \"a etc. address@hidden
-      \raggedbottom             % Worry more about breakpoints than the bottom.
-      \advance\hsize by -\contentsrightmargin % Don't use the full line length.
-      %
-      % Roman numerals for page numbers.
-      \ifnum \pageno>0 \pageno = \lastnegativepageno \fi
-}
-
-
-% Normal (long) toc.
-\def\contents{%
-   \startcontents{\putwordTableofContents}%
-     \openin 1 \jobname.toc
-     \ifeof 1 \else
-       \closein 1
-       \input \jobname.toc
-     \fi
-     \vfill \eject
-   \endgroup
-   \lastnegativepageno = \pageno
-   \pageno = \savepageno
-}
-
-% And just the chapters.
-\def\summarycontents{%
-   \startcontents{\putwordShortContents}%
-      %
-      \let\chapentry = \shortchapentry
-      \let\unnumbchapentry = \shortunnumberedentry
-      % We want a true roman here for the page numbers.
-      \secfonts
-      \let\rm=\shortcontrm \let\bf=\shortcontbf \let\sl=\shortcontsl
-      \rm
-      \hyphenpenalty = 10000
-      \advance\baselineskip by 1pt % Open it up a little.
-      \def\secentry ##1##2##3##4{}
-      \def\unnumbsecentry ##1##2{}
-      \def\subsecentry ##1##2##3##4##5{}
-      \def\unnumbsubsecentry ##1##2{}
-      \def\subsubsecentry ##1##2##3##4##5##6{}
-      \def\unnumbsubsubsecentry ##1##2{}
-      \openin 1 \jobname.toc
-      \ifeof 1 \else
-        \closein 1
-        \input \jobname.toc
-      \fi
-     \vfill \eject
-   \endgroup
-   \lastnegativepageno = \pageno
-   \pageno = \savepageno
-}
-\let\shortcontents = \summarycontents
-
-% These macros generate individual entries in the table of contents.
-% The first argument is the chapter or section name.
-% The last argument is the page number.
-% The arguments in between are the chapter number, section number, ...
-
-% Chapter-level things, for both the long and short contents.
-\def\chapentry#1#2#3{\dochapentry{#2\labelspace#1}{#3}}
-
-% See comments in \dochapentry re vbox and related settings
-\def\shortchapentry#1#2#3{%
-  \tocentry{\shortchaplabel{#2}\labelspace #1}{\doshortpageno{#3}}%
-}
-
-% Typeset the label for a chapter or appendix for the short contents.
-% The arg is, e.g. `Appendix A' for an appendix, or `3' for a chapter.
-% We could simplify the code here by writing out an \appendixentry
-% command in the toc file for appendices, instead of using \chapentry
-% for both, but it doesn't seem worth it.
-\setbox0 = \hbox{\shortcontrm \putwordAppendix }
-\newdimen\shortappendixwidth \shortappendixwidth = \wd0
-
-\def\shortchaplabel#1{%
-  % We typeset #1 in a box of constant width, regardless of the text of
-  % #1, so the chapter titles will come out aligned.
-  \setbox0 = \hbox{#1}%
-  \dimen0 = \ifdim\wd0 > \shortappendixwidth \shortappendixwidth \else 0pt \fi
-  %
-  % This space should be plenty, since a single number is .5em, and the
-  % widest letter (M) is 1em, at least in the Computer Modern fonts.
-  % (This space doesn't include the extra space that gets added after
-  % the label; that gets put in by \shortchapentry above.)
-  \advance\dimen0 by 1.1em
-  \hbox to \dimen0{#1\hfil}%
-}
-
-\def\unnumbchapentry#1#2{\dochapentry{#1}{#2}}
-\def\shortunnumberedentry#1#2{\tocentry{#1}{\doshortpageno{#2}}}
-
-% Sections.
-\def\secentry#1#2#3#4{\dosecentry{#2.#3\labelspace#1}{#4}}
-\def\unnumbsecentry#1#2{\dosecentry{#1}{#2}}
-
-% Subsections.
-\def\subsecentry#1#2#3#4#5{\dosubsecentry{#2.#3.#4\labelspace#1}{#5}}
-\def\unnumbsubsecentry#1#2{\dosubsecentry{#1}{#2}}
-
-% And subsubsections.
-\def\subsubsecentry#1#2#3#4#5#6{%
-  \dosubsubsecentry{#2.#3.#4.#5\labelspace#1}{#6}}
-\def\unnumbsubsubsecentry#1#2{\dosubsubsecentry{#1}{#2}}
-
-% This parameter controls the indentation of the various levels.
-\newdimen\tocindent \tocindent = 3pc
-
-% Now for the actual typesetting. In all these, #1 is the text and #2 is the
-% page number.
-%
-% If the toc has to be broken over pages, we want it to be at chapters
-% if at all possible; hence the \penalty.
-\def\dochapentry#1#2{%
-   \penalty-300 \vskip1\baselineskip plus.33\baselineskip minus.25\baselineskip
-   \begingroup
-     \chapentryfonts
-     \tocentry{#1}{\dopageno{#2}}%
-   \endgroup
-   \nobreak\vskip .25\baselineskip plus.1\baselineskip
-}
-
-\def\dosecentry#1#2{\begingroup
-  \secentryfonts \leftskip=\tocindent
-  \tocentry{#1}{\dopageno{#2}}%
-\endgroup}
-
-\def\dosubsecentry#1#2{\begingroup
-  \subsecentryfonts \leftskip=2\tocindent
-  \tocentry{#1}{\dopageno{#2}}%
-\endgroup}
-
-\def\dosubsubsecentry#1#2{\begingroup
-  \subsubsecentryfonts \leftskip=3\tocindent
-  \tocentry{#1}{\dopageno{#2}}%
-\endgroup}
-
-% Final typesetting of a toc entry; we use the same \entry macro as for
-% the index entries, but we want to suppress hyphenation here.  (We
-% can't do that in the \entry macro, since index entries might consist
-% of hyphenated-identifiers-that-do-not-fit-on-a-line-and-nothing-else.)
-\def\tocentry#1#2{\begingroup
-  \vskip 0pt plus1pt % allow a little stretch for the sake of nice page breaks
-  % Do not use \turnoffactive in these arguments.  Since the toc is
-  % typeset in cmr, so characters such as _ would come out wrong; we
-  % have to do the usual translation tricks.
-  \entry{#1}{#2}%
-\endgroup}
-
-% Space between chapter (or whatever) number and the title.
-\def\labelspace{\hskip1em \relax}
-
-\def\dopageno#1{{\rm #1}}
-\def\doshortpageno#1{{\rm #1}}
-
-\def\chapentryfonts{\secfonts \rm}
-\def\secentryfonts{\textfonts}
-\let\subsecentryfonts = \textfonts
-\let\subsubsecentryfonts = \textfonts
-
-
-\message{environments,}
-
-% Since these characters are used in examples, it should be an even number of
-% \tt widths. Each \tt character is 1en, so two makes it 1em.
-% Furthermore, these definitions must come after we define our fonts.
-\newbox\dblarrowbox    \newbox\longdblarrowbox
-\newbox\pushcharbox    \newbox\bullbox
-\newbox\equivbox       \newbox\errorbox
-
-%{\tentt
-%\global\setbox\dblarrowbox = \hbox to 1em{\hfil$\Rightarrow$\hfil}
-%\global\setbox\longdblarrowbox = \hbox to 1em{\hfil$\mapsto$\hfil}
-%\global\setbox\pushcharbox = \hbox to 1em{\hfil$\dashv$\hfil}
-%\global\setbox\equivbox = \hbox to 1em{\hfil$\ptexequiv$\hfil}
-% Adapted from the manmac format (p.420 of TeXbook)
-%\global\setbox\bullbox = \hbox to 1em{\kern.15em\vrule height .75ex width 
.85ex
-%                                      depth .1ex\hfil}
-%}
-
-% @point{}, @result{}, @expansion{}, @print{}, @equiv{}.
-\def\point{$\star$}
-\def\result{\leavevmode\raise.15ex\hbox to 1em{\hfil$\Rightarrow$\hfil}}
-\def\expansion{\leavevmode\raise.1ex\hbox to 1em{\hfil$\mapsto$\hfil}}
-\def\print{\leavevmode\lower.1ex\hbox to 1em{\hfil$\dashv$\hfil}}
-\def\equiv{\leavevmode\lower.1ex\hbox to 1em{\hfil$\ptexequiv$\hfil}}
-
-% Adapted from the TeXbook's \boxit.
-{\tentt \global\dimen0 = 3em}% Width of the box.
-\dimen2 = .55pt % Thickness of rules
-% The text. (`r' is open on the right, `e' somewhat less so on the left.)
-\setbox0 = \hbox{\kern-.75pt \tensf error\kern-1.5pt}
-
-\global\setbox\errorbox=\hbox to \dimen0{\hfil
-   \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right.
-   \advance\hsize by -2\dimen2 % Rules.
-   \vbox{
-      \hrule height\dimen2
-      \hbox{\vrule width\dimen2 \kern3pt          % Space to left of text.
-         \vtop{\kern2.4pt \box0 \kern2.4pt}% Space above/below.
-         \kern3pt\vrule width\dimen2}% Space to right.
-      \hrule height\dimen2}
-    \hfil}
-
-% The @error{} command.
-\def\error{\leavevmode\lower.7ex\copy\errorbox}
-
-% @tex ... @end tex    escapes into raw Tex temporarily.
-% One exception: @ is still an escape character, so that @end tex works.
-% But \@ or @@ will get a plain tex @ character.
-
-\def\tex{\begingroup
-  \catcode `\\=0 \catcode `\{=1 \catcode `\}=2
-  \catcode `\$=3 \catcode `\&=4 \catcode `\#=6
-  \catcode `\^=7 \catcode `\_=8 \catcode `\~=13 \let~=\tie
-  \catcode `\%=14
-  \catcode 43=12 % plus
-  \catcode`\"=12
-  \catcode`\==12
-  \catcode`\|=12
-  \catcode`\<=12
-  \catcode`\>=12
-  \escapechar=`\\
-  %
-  \let\b=\ptexb
-  \let\bullet=\ptexbullet
-  \let\c=\ptexc
-  \let\,=\ptexcomma
-  \let\.=\ptexdot
-  \let\dots=\ptexdots
-  \let\equiv=\ptexequiv
-  \let\!=\ptexexclam
-  \let\i=\ptexi
-  \let\{=\ptexlbrace
-  \let\+=\tabalign
-  \let\}=\ptexrbrace
-  \let\*=\ptexstar
-  \let\t=\ptext
-  %
-  \def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}%
-  \def\enddots{\relax\ifmmode\endldots\else$\mathsurround=0pt \endldots\,$\fi}%
-  address@hidden@}%
-\let\Etex=\endgroup}
-
-% Define @lisp ... @endlisp.
-% @lisp does a \begingroup so it can rebind things,
-% including the definition of @endlisp (which normally is erroneous).
-
-% Amount to narrow the margins by for @lisp.
-\newskip\lispnarrowing \lispnarrowing=0.4in
-
-% This is the definition that ^^M gets inside @lisp, @example, and other
-% such environments.  \null is better than a space, since it doesn't
-% have any width.
-\def\lisppar{\null\endgraf}
-
-% Make each space character in the input produce a normal interword
-% space in the output.  Don't allow a line break at this space, as this
-% is used only in environments like @example, where each line of input
-% should produce a line of output anyway.
-%
-{\obeyspaces %
-\gdef\sepspaces{\obeyspaces\let =\tie}}
-
-% Define \obeyedspace to be our active space, whatever it is.  This is
-% for use in \parsearg.
-{\sepspaces%
-\global\let\obeyedspace= }
-
-% This space is always present above and below environments.
-\newskip\envskipamount \envskipamount = 0pt
-
-% Make spacing and below environment symmetrical.  We use \parskip here
-% to help in doing that, since in @example-like environments \parskip
-% is reset to zero; thus the \afterenvbreak inserts no space -- but the
-% start of the next paragraph will insert \parskip
-%
-\def\aboveenvbreak{{\advance\envskipamount by \parskip
-\endgraf \ifdim\lastskip<\envskipamount
-\removelastskip \penalty-50 \vskip\envskipamount \fi}}
-
-\let\afterenvbreak = \aboveenvbreak
-
-% \nonarrowing is a flag.  If "set", @lisp etc don't narrow margins.
-\let\nonarrowing=\relax
-
-% @cartouche ... @end cartouche: draw rectangle w/rounded corners around
-% environment contents.
-\font\circle=lcircle10
-\newdimen\circthick
-\newdimen\cartouter\newdimen\cartinner
-\newskip\normbskip\newskip\normpskip\newskip\normlskip
-\circthick=\fontdimen8\circle
-%
-\def\ctl{{\circle\char'013\hskip -6pt}}% 6pt from pl file: 1/2charwidth
-\def\ctr{{\hskip 6pt\circle\char'010}}
-\def\cbl{{\circle\char'012\hskip -6pt}}
-\def\cbr{{\hskip 6pt\circle\char'011}}
-\def\carttop{\hbox to \cartouter{\hskip\lskip
-        \ctl\leaders\hrule height\circthick\hfil\ctr
-        \hskip\rskip}}
-\def\cartbot{\hbox to \cartouter{\hskip\lskip
-        \cbl\leaders\hrule height\circthick\hfil\cbr
-        \hskip\rskip}}
-%
-\newskip\lskip\newskip\rskip
-
-\long\def\cartouche{%
-\begingroup
-        \lskip=\leftskip \rskip=\rightskip
-        \leftskip=0pt\rightskip=0pt %we want these *outside*.
-        \cartinner=\hsize \advance\cartinner by-\lskip
-                          \advance\cartinner by-\rskip
-        \cartouter=\hsize
-        \advance\cartouter by 18.4pt % allow for 3pt kerns on either
-%                                    side, and for 6pt waste from
-%                                    each corner char, and rule thickness
-        \normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip
-        % Flag to tell @lisp, etc., not to narrow margin.
-        \let\nonarrowing=\comment
-        \vbox\bgroup
-                \baselineskip=0pt\parskip=0pt\lineskip=0pt
-                \carttop
-                \hbox\bgroup
-                        \hskip\lskip
-                        \vrule\kern3pt
-                        \vbox\bgroup
-                                \hsize=\cartinner
-                                \kern3pt
-                                \begingroup
-                                        \baselineskip=\normbskip
-                                        \lineskip=\normlskip
-                                        \parskip=\normpskip
-                                        \vskip -\parskip
-\def\Ecartouche{%
-                                \endgroup
-                                \kern3pt
-                        \egroup
-                        \kern3pt\vrule
-                        \hskip\rskip
-                \egroup
-                \cartbot
-        \egroup
-\endgroup
-}}
-
-
-% This macro is called at the beginning of all the @example variants,
-% inside a group.
-\def\nonfillstart{%
-  \aboveenvbreak
-  \inENV % This group ends at the end of the body
-  \hfuzz = 12pt % Don't be fussy
-  \sepspaces % Make spaces be word-separators rather than space tokens.
-  \singlespace
-  \let\par = \lisppar % don't ignore blank lines
-  \obeylines % each line of input is a line of output
-  \parskip = 0pt
-  \parindent = 0pt
-  \emergencystretch = 0pt % don't try to avoid overfull boxes
-  % @cartouche defines \nonarrowing to inhibit narrowing
-  % at next level down.
-  \ifx\nonarrowing\relax
-    \advance \leftskip by \lispnarrowing
-    \exdentamount=\lispnarrowing
-    \let\exdent=\nofillexdent
-    \let\nonarrowing=\relax
-  \fi
-}
-
-% Define the \E... control sequence only if we are inside the particular
-% environment, so the error checking in \end will work.
-% 
-% To end an @example-like environment, we first end the paragraph (via
-% \afterenvbreak's vertical glue), and then the group.  That way we keep
-% the zero \parskip that the environments set -- \parskip glue will be
-% inserted at the beginning of the next paragraph in the document, after
-% the environment.
-%
-\def\nonfillfinish{\afterenvbreak\endgroup}
-
-% @lisp: indented, narrowed, typewriter font.
-\def\lisp{\begingroup
-  \nonfillstart
-  \let\Elisp = \nonfillfinish
-  \tt
-  \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special.
-  \gobble       % eat return
-}
-
-% @example: Same as @lisp.
-\def\example{\begingroup \def\Eexample{\nonfillfinish\endgroup}\lisp}
-
-% @small... is usually equivalent to the non-small (@smallbook
-% redefines).  We must call \example (or whatever) last in the
-% definition, since it reads the return following the @example (or
-% whatever) command.
-% 
-% This actually allows (for example) @end display inside an
-% @smalldisplay.  Too bad, but makeinfo will catch the error anyway.
-%
-\def\smalldisplay{\begingroup\def\Esmalldisplay{\nonfillfinish\endgroup}\display}
-\def\smallexample{\begingroup\def\Esmallexample{\nonfillfinish\endgroup}\lisp}
-\def\smallformat{\begingroup\def\Esmallformat{\nonfillfinish\endgroup}\format}
-\def\smalllisp{\begingroup\def\Esmalllisp{\nonfillfinish\endgroup}\lisp}
-
-% Real @smallexample and @smalllisp (when @smallbook): use smaller fonts.
-% Originally contributed by address@hidden
-\def\smalllispx{\begingroup
-  \def\Esmalllisp{\nonfillfinish\endgroup}%
-  \def\Esmallexample{\nonfillfinish\endgroup}%
-  \indexfonts
-  \lisp
-}
-
-% @display: same as @lisp except keep current font.
-%
-\def\display{\begingroup
-  \nonfillstart
-  \let\Edisplay = \nonfillfinish
-  \gobble
-}
-
-% @smalldisplay (when @smallbook): @display plus smaller fonts.
-%
-\def\smalldisplayx{\begingroup
-  \def\Esmalldisplay{\nonfillfinish\endgroup}%
-  \indexfonts \rm
-  \display
-}
-
-% @format: same as @display except don't narrow margins.
-%
-\def\format{\begingroup
-  \let\nonarrowing = t
-  \nonfillstart
-  \let\Eformat = \nonfillfinish
-  \gobble
-}
-
-% @smallformat (when @smallbook): @format plus smaller fonts.
-%
-\def\smallformatx{\begingroup
-  \def\Esmallformat{\nonfillfinish\endgroup}%
-  \indexfonts \rm
-  \format
-}
-
-% @flushleft (same as @format).
-%
-\def\flushleft{\begingroup \def\Eflushleft{\nonfillfinish\endgroup}\format}
-
-% @flushright.
-% 
-\def\flushright{\begingroup
-  \let\nonarrowing = t
-  \nonfillstart
-  \let\Eflushright = \nonfillfinish
-  \advance\leftskip by 0pt plus 1fill
-  \gobble
-}
-
-% @quotation does normal linebreaking (hence we can't use \nonfillstart)
-% and narrows the margins.
-%
-\def\quotation{%
-  \begingroup\inENV %This group ends at the end of the @quotation body
-  {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip
-  \singlespace
-  \parindent=0pt
-  % We have retained a nonzero parskip for the environment, since we're
-  % doing normal filling. So to avoid extra space below the environment...
-  \def\Equotation{\parskip = 0pt \nonfillfinish}%
-  %
-  % @cartouche defines \nonarrowing to inhibit narrowing at next level down.
-  \ifx\nonarrowing\relax
-    \advance\leftskip by \lispnarrowing
-    \advance\rightskip by \lispnarrowing
-    \exdentamount = \lispnarrowing
-    \let\nonarrowing = \relax
-  \fi
-}
-
-
-\message{defuns,}
-% Define formatter for defuns
-% First, allow user to change definition object font (\df) internally
-\def\setdeffont #1 {\csname DEF#1\endcsname}
-
-\newskip\defbodyindent \defbodyindent=.4in
-\newskip\defargsindent \defargsindent=50pt
-\newskip\deftypemargin \deftypemargin=12pt
-\newskip\deflastargmargin \deflastargmargin=18pt
-
-\newcount\parencount
-% define \functionparens, which makes ( and ) and & do special things.
-% \functionparens affects the group it is contained in.
-\def\activeparens{%
-\catcode`\(=\active \catcode`\)=\active \catcode`\&=\active
-\catcode`\[=\active \catcode`\]=\active}
-
-% Make control sequences which act like normal parenthesis chars.
-\let\lparen = ( \let\rparen = )
-
-{\activeparens % Now, smart parens don't turn on until &foo (see \amprm)
-
-% Be sure that we always have a definition for `(', etc.  For example,
-% if the fn name has parens in it, \boldbrax will not be in effect yet,
-% so TeX would otherwise complain about undefined control sequence.
-\global\let(=\lparen \global\let)=\rparen
-\global\let[=\lbrack \global\let]=\rbrack
-
-\gdef\functionparens{\boldbrax\let&=\amprm\parencount=0 }
-\gdef\boldbrax{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb}
-% This is used to turn on special parens
-% but make & act ordinary (given that it's active).
-\gdef\boldbraxnoamp{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb\let&=\ampnr}
-
-% Definitions of (, ) and & used in args for functions.
-% This is the definition of ( outside of all parentheses.
-\gdef\oprm#1 {{\rm\char`\(}#1 \bf \let(=\opnested
-  \global\advance\parencount by 1
-}
-%
-% This is the definition of ( when already inside a level of parens.
-\gdef\opnested{\char`\(\global\advance\parencount by 1 }
-%
-\gdef\clrm{% Print a paren in roman if it is taking us back to depth of 0.
-  % also in that case restore the outer-level definition of (.
-  \ifnum \parencount=1 {\rm \char `\)}\sl \let(=\oprm \else \char `\) \fi
-  \global\advance \parencount by -1 }
-% If we encounter &foo, then turn on ()-hacking afterwards
-\gdef\amprm#1 {{\rm\&#1}\let(=\oprm \let)=\clrm\ }
-%
-\gdef\normalparens{\boldbrax\let&=\ampnr}
-} % End of definition inside \activeparens
-%% These parens (in \boldbrax) actually are a little bolder than the
-%% contained text.  This is especially needed for [ and ]
-\def\opnr{{\sf\char`\(}\global\advance\parencount by 1 }
-\def\clnr{{\sf\char`\)}\global\advance\parencount by -1 }
-\def\ampnr{\&}
-\def\lbrb{{\bf\char`\[}}
-\def\rbrb{{\bf\char`\]}}
-
-% First, defname, which formats the header line itself.
-% #1 should be the function name.
-% #2 should be the type of definition, such as "Function".
-
-\def\defname #1#2{%
-% Get the values of \leftskip and \rightskip as they were
-% outside the @def...
-\dimen2=\leftskip
-\advance\dimen2 by -\defbodyindent
-\noindent
-\setbox0=\hbox{\hskip \deflastargmargin{\rm #2}\hskip \deftypemargin}%
-\dimen0=\hsize \advance \dimen0 by -\wd0 % compute size for first line
-\dimen1=\hsize \advance \dimen1 by -\defargsindent %size for continuations
-\parshape 2 0in \dimen0 \defargsindent \dimen1
-% Now output arg 2 ("Function" or some such)
-% ending at \deftypemargin from the right margin,
-% but stuck inside a box of width 0 so it does not interfere with linebreaking
-{% Adjust \hsize to exclude the ambient margins,
-% so that \rightline will obey them.
-\advance \hsize by -\dimen2
-\rlap{\rightline{{\rm #2}\hskip -1.25pc }}}%
-% Make all lines underfull and no complaints:
-\tolerance=10000 \hbadness=10000
-\advance\leftskip by -\defbodyindent
-\exdentamount=\defbodyindent
-{\df #1}\enskip        % Generate function name
-}
-
-% Actually process the body of a definition
-% #1 should be the terminating control sequence, such as \Edefun.
-% #2 should be the "another name" control sequence, such as \defunx.
-% #3 should be the control sequence that actually processes the header,
-%    such as \defunheader.
-
-\def\defparsebody #1#2#3{\begingroup\inENV% Environment for definitionbody
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2{\begingroup\obeylines\activeparens\spacesplit#3}%
-\parindent=0in
-\advance\leftskip by \defbodyindent
-\exdentamount=\defbodyindent
-\begingroup %
-\catcode 61=\active % 61 is `='
-\obeylines\activeparens\spacesplit#3}
-
-% #1 is the \E... control sequence to end the definition (which we define).
-% #2 is the \...x control sequence for consecutive fns (which we define).
-% #3 is the control sequence to call to resume processing.
-% #4, delimited by the space, is the class name.
-% 
-\def\defmethparsebody#1#2#3#4 {\begingroup\inENV %
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2##1 {\begingroup\obeylines\activeparens\spacesplit{#3{##1}}}%
-\parindent=0in
-\advance\leftskip by \defbodyindent
-\exdentamount=\defbodyindent
-\begingroup\obeylines\activeparens\spacesplit{#3{#4}}}
-
-% @deftypemethod has an extra argument that nothing else does.  Sigh.
-% #1 is the \E... control sequence to end the definition (which we define).
-% #2 is the \...x control sequence for consecutive fns (which we define).
-% #3 is the control sequence to call to resume processing.
-% #4, delimited by the space, is the class name.
-% #5 is the method's return type.
-% 
-\def\deftypemethparsebody#1#2#3#4 #5 {\begingroup\inENV %
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2##1 ##2 {\begingroup\obeylines\activeparens\spacesplit{#3{##1}{##2}}}%
-\parindent=0in
-\advance\leftskip by \defbodyindent
-\exdentamount=\defbodyindent
-\begingroup\obeylines\activeparens\spacesplit{#3{#4}{#5}}}
-
-\def\defopparsebody #1#2#3#4#5 {\begingroup\inENV %
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2##1 ##2 {\def#4{##1}%
-\begingroup\obeylines\activeparens\spacesplit{#3{##2}}}%
-\parindent=0in
-\advance\leftskip by \defbodyindent
-\exdentamount=\defbodyindent
-\begingroup\obeylines\activeparens\spacesplit{#3{#5}}}
-
-% These parsing functions are similar to the preceding ones
-% except that they do not make parens into active characters.
-% These are used for "variables" since they have no arguments.
-
-\def\defvarparsebody #1#2#3{\begingroup\inENV% Environment for definitionbody
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2{\begingroup\obeylines\spacesplit#3}%
-\parindent=0in
-\advance\leftskip by \defbodyindent
-\exdentamount=\defbodyindent
-\begingroup %
-\catcode 61=\active %
-\obeylines\spacesplit#3}
-
-% This is used for \def{tp,vr}parsebody.  It could probably be used for
-% some of the others, too, with some judicious conditionals.
-%
-\def\parsebodycommon#1#2#3{%
-  \begingroup\inENV %
-  \medbreak %
-  % Define the end token that this defining construct specifies
-  % so that it will exit this group.
-  \def#1{\endgraf\endgroup\medbreak}%
-  \def#2##1 {\begingroup\obeylines\spacesplit{#3{##1}}}%
-  \parindent=0in
-  \advance\leftskip by \defbodyindent
-  \exdentamount=\defbodyindent
-  \begingroup\obeylines
-}
-
-\def\defvrparsebody#1#2#3#4 {%
-  \parsebodycommon{#1}{#2}{#3}%
-  \spacesplit{#3{#4}}%
-}
-
-% This loses on address@hidden {Data Type} {struct termios}' -- it thinks the
-% type is just `struct', because we lose the braces in `{struct
-% termios}' when \spacesplit reads its undelimited argument.  Sigh.
-% \let\deftpparsebody=\defvrparsebody
-%
-% So, to get around this, we put \empty in with the type name.  That
-% way, TeX won't find exactly `{...}' as an undelimited argument, and
-% won't strip off the braces.
-%
-\def\deftpparsebody #1#2#3#4 {%
-  \parsebodycommon{#1}{#2}{#3}%
-  \spacesplit{\parsetpheaderline{#3{#4}}}\empty
-}
-
-% Fine, but then we have to eventually remove the \empty *and* the
-% braces (if any).  That's what this does.
-%
-\def\removeemptybraces\empty#1\relax{#1}
-
-% After \spacesplit has done its work, this is called -- #1 is the final
-% thing to call, #2 the type name (which starts with \empty), and #3
-% (which might be empty) the arguments.
-%
-\def\parsetpheaderline#1#2#3{%
-  #1{\removeemptybraces#2\relax}{#3}%
-}%
-
-\def\defopvarparsebody #1#2#3#4#5 {\begingroup\inENV %
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2##1 ##2 {\def#4{##1}%
-\begingroup\obeylines\spacesplit{#3{##2}}}%
-\parindent=0in
-\advance\leftskip by \defbodyindent
-\exdentamount=\defbodyindent
-\begingroup\obeylines\spacesplit{#3{#5}}}
-
-% Split up #2 at the first space token.
-% call #1 with two arguments:
-%  the first is all of #2 before the space token,
-%  the second is all of #2 after that space token.
-% If #2 contains no space token, all of it is passed as the first arg
-% and the second is passed as empty.
-
-{\obeylines
-\gdef\spacesplit#1#2^^M{\endgroup\spacesplitfoo{#1}#2 \relax\spacesplitfoo}%
-\long\gdef\spacesplitfoo#1#2 #3#4\spacesplitfoo{%
-\ifx\relax #3%
-#1{#2}{}\else #1{#2}{#3#4}\fi}}
-
-% So much for the things common to all kinds of definitions.
-
-% Define @defun.
-
-% First, define the processing that is wanted for arguments of \defun
-% Use this to expand the args and terminate the paragraph they make up
-
-\def\defunargs #1{\functionparens \sl
-% Expand, preventing hyphenation at `-' chars.
-% Note that groups don't affect changes in \hyphenchar.
-\hyphenchar\tensl=0
-#1%
-\hyphenchar\tensl=45
-\ifnum\parencount=0 \else \errmessage{Unbalanced parentheses in @def}\fi%
-\interlinepenalty=10000
-\advance\rightskip by 0pt plus 1fil
-\endgraf\nobreak\vskip -\parskip\nobreak
-}
-
-\def\deftypefunargs #1{%
-% Expand, preventing hyphenation at `-' chars.
-% Note that groups don't affect changes in \hyphenchar.
-% Use \boldbraxnoamp, not \functionparens, so that & is not special.
-\boldbraxnoamp
-\tclose{#1}% avoid \code because of side effects on active chars
-\interlinepenalty=10000
-\advance\rightskip by 0pt plus 1fil
-\endgraf\nobreak\vskip -\parskip\nobreak
-}
-
-% Do complete processing of one @defun or @defunx line already parsed.
-
-% @deffn Command forward-char nchars
-
-\def\deffn{\defmethparsebody\Edeffn\deffnx\deffnheader}
-
-\def\deffnheader #1#2#3{\doind {fn}{\code{#2}}%
-\begingroup\defname {#2}{#1}\defunargs{#3}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
-}
-
-% @defun == @deffn Function
-
-\def\defun{\defparsebody\Edefun\defunx\defunheader}
-
-\def\defunheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index
-\begingroup\defname {#1}{Function}%
-\defunargs {#2}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
-}
-
-% @deftypefun int foobar (int @var{foo}, float @var{bar})
-
-\def\deftypefun{\defparsebody\Edeftypefun\deftypefunx\deftypefunheader}
-
-% #1 is the data type.  #2 is the name and args.
-\def\deftypefunheader #1#2{\deftypefunheaderx{#1}#2 \relax}
-% #1 is the data type, #2 the name, #3 the args.
-\def\deftypefunheaderx #1#2 #3\relax{%
-\doind {fn}{\code{#2}}% Make entry in function index
-\begingroup\defname {\defheaderxcond#1\relax$$$#2}{Function}%
-\deftypefunargs {#3}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
-}
-
-% @deftypefn {Library Function} int foobar (int @var{foo}, float @var{bar})
-
-\def\deftypefn{\defmethparsebody\Edeftypefn\deftypefnx\deftypefnheader}
-
-% \defheaderxcond#1\relax$$$
-% puts #1 in @code, followed by a space, but does nothing if #1 is null.
-\def\defheaderxcond#1#2$$${\ifx#1\relax\else\code{#1#2} \fi}
-
-% #1 is the classification.  #2 is the data type.  #3 is the name and args.
-\def\deftypefnheader #1#2#3{\deftypefnheaderx{#1}{#2}#3 \relax}
-% #1 is the classification, #2 the data type, #3 the name, #4 the args.
-\def\deftypefnheaderx #1#2#3 #4\relax{%
-\doind {fn}{\code{#3}}% Make entry in function index
-\begingroup
-\normalparens % notably, turn off `&' magic, which prevents
-%               at least some C++ text from working
-\defname {\defheaderxcond#2\relax$$$#3}{#1}%
-\deftypefunargs {#4}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
-}
-
-% @defmac == @deffn Macro
-
-\def\defmac{\defparsebody\Edefmac\defmacx\defmacheader}
-
-\def\defmacheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index
-\begingroup\defname {#1}{Macro}%
-\defunargs {#2}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
-}
-
-% @defspec == @deffn Special Form
-
-\def\defspec{\defparsebody\Edefspec\defspecx\defspecheader}
-
-\def\defspecheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index
-\begingroup\defname {#1}{Special Form}%
-\defunargs {#2}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
-}
-
-% This definition is run if you use @defunx
-% anywhere other than immediately after a @defun or @defunx.
-
-\def\deffnx #1 address@hidden in invalid context}}
-\def\defunx #1 address@hidden in invalid context}}
-\def\defmacx #1 address@hidden in invalid context}}
-\def\defspecx #1 address@hidden in invalid context}}
-\def\deftypefnx #1 address@hidden in invalid context}}
-\def\deftypemethodx #1 address@hidden in invalid context}}
-\def\deftypefunx #1 address@hidden in invalid context}}
-
-% @defmethod, and so on
-
-% @defop CATEGORY CLASS OPERATION ARG...
-
-\def\defop #1 {\def\defoptype{#1}%
-\defopparsebody\Edefop\defopx\defopheader\defoptype}
-
-\def\defopheader #1#2#3{%
-\dosubind {fn}{\code{#2}}{\putwordon\ #1}% Make entry in function index
-\begingroup\defname {#2}{\defoptype{} on #1}%
-\defunargs {#3}\endgroup %
-}
-
-% @deftypemethod CLASS RETURN-TYPE METHOD ARG...
-%
-\def\deftypemethod{%
-  \deftypemethparsebody\Edeftypemethod\deftypemethodx\deftypemethodheader}
-%
-% #1 is the class name, #2 the data type, #3 the method name, #4 the args.
-\def\deftypemethodheader#1#2#3#4{%
-  \dosubind{fn}{\code{#3}}{\putwordon\ \code{#1}}% entry in function index
-  \begingroup
-    \defname{\defheaderxcond#2\relax$$$#3}{\putwordMethodon\ \code{#1}}%
-    \deftypefunargs{#4}%
-  \endgroup
-}
-
-% @defmethod == @defop Method
-%
-\def\defmethod{\defmethparsebody\Edefmethod\defmethodx\defmethodheader}
-%
-% #1 is the class name, #2 the method name, #3 the args.
-\def\defmethodheader#1#2#3{%
-  \dosubind{fn}{\code{#2}}{\putwordon\ \code{#1}}% entry in function index
-  \begingroup
-    \defname{#2}{\putwordMethodon\ \code{#1}}%
-    \defunargs{#3}%
-  \endgroup
-}
-
-% @defcv {Class Option} foo-class foo-flag
-
-\def\defcv #1 {\def\defcvtype{#1}%
-\defopvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype}
-
-\def\defcvarheader #1#2#3{%
-\dosubind {vr}{\code{#2}}{of #1}% Make entry in var index
-\begingroup\defname {#2}{\defcvtype{} of #1}%
-\defvarargs {#3}\endgroup %
-}
-
-% @defivar == @defcv {Instance Variable}
-
-\def\defivar{\defvrparsebody\Edefivar\defivarx\defivarheader}
-
-\def\defivarheader #1#2#3{%
-\dosubind {vr}{\code{#2}}{of #1}% Make entry in var index
-\begingroup\defname {#2}{Instance Variable of #1}%
-\defvarargs {#3}\endgroup %
-}
-
-% These definitions are run if you use @defmethodx, etc.,
-% anywhere other than immediately after a @defmethod, etc.
-
-\def\defopx #1 address@hidden in invalid context}}
-\def\defmethodx #1 address@hidden in invalid context}}
-\def\defcvx #1 address@hidden in invalid context}}
-\def\defivarx #1 address@hidden in invalid context}}
-
-% Now @defvar
-
-% First, define the processing that is wanted for arguments of @defvar.
-% This is actually simple: just print them in roman.
-% This must expand the args and terminate the paragraph they make up
-\def\defvarargs #1{\normalparens #1%
-\interlinepenalty=10000
-\endgraf\nobreak\vskip -\parskip\nobreak}
-
-% @defvr Counter foo-count
-
-\def\defvr{\defvrparsebody\Edefvr\defvrx\defvrheader}
-
-\def\defvrheader #1#2#3{\doind {vr}{\code{#2}}%
-\begingroup\defname {#2}{#1}\defvarargs{#3}\endgroup}
-
-% @defvar == @defvr Variable
-
-\def\defvar{\defvarparsebody\Edefvar\defvarx\defvarheader}
-
-\def\defvarheader #1#2{\doind {vr}{\code{#1}}% Make entry in var index
-\begingroup\defname {#1}{Variable}%
-\defvarargs {#2}\endgroup %
-}
-
-% @defopt == @defvr {User Option}
-
-\def\defopt{\defvarparsebody\Edefopt\defoptx\defoptheader}
-
-\def\defoptheader #1#2{\doind {vr}{\code{#1}}% Make entry in var index
-\begingroup\defname {#1}{User Option}%
-\defvarargs {#2}\endgroup %
-}
-
-% @deftypevar int foobar
-
-\def\deftypevar{\defvarparsebody\Edeftypevar\deftypevarx\deftypevarheader}
-
-% #1 is the data type.  #2 is the name, perhaps followed by text that
-% is actually part of the data type, which should not be put into the index.
-\def\deftypevarheader #1#2{%
-\dovarind#2 \relax% Make entry in variables index
-\begingroup\defname {\defheaderxcond#1\relax$$$#2}{Variable}%
-\interlinepenalty=10000
-\endgraf\nobreak\vskip -\parskip\nobreak
-\endgroup}
-\def\dovarind#1 #2\relax{\doind{vr}{\code{#1}}}
-
-% @deftypevr {Global Flag} int enable
-
-\def\deftypevr{\defvrparsebody\Edeftypevr\deftypevrx\deftypevrheader}
-
-\def\deftypevrheader #1#2#3{\dovarind#3 \relax%
-\begingroup\defname {\defheaderxcond#2\relax$$$#3}{#1}
-\interlinepenalty=10000
-\endgraf\nobreak\vskip -\parskip\nobreak
-\endgroup}
-
-% This definition is run if you use @defvarx
-% anywhere other than immediately after a @defvar or @defvarx.
-
-\def\defvrx #1 address@hidden in invalid context}}
-\def\defvarx #1 address@hidden in invalid context}}
-\def\defoptx #1 address@hidden in invalid context}}
-\def\deftypevarx #1 address@hidden in invalid context}}
-\def\deftypevrx #1 address@hidden in invalid context}}
-
-% Now define @deftp
-% Args are printed in bold, a slight difference from @defvar.
-
-\def\deftpargs #1{\bf \defvarargs{#1}}
-
-% @deftp Class window height width ...
-
-\def\deftp{\deftpparsebody\Edeftp\deftpx\deftpheader}
-
-\def\deftpheader #1#2#3{\doind {tp}{\code{#2}}%
-\begingroup\defname {#2}{#1}\deftpargs{#3}\endgroup}
-
-% This definition is run if you use @deftpx, etc
-% anywhere other than immediately after a @deftp, etc.
-
-\def\deftpx #1 address@hidden in invalid context}}
-
-
-\message{macros,}
-% @macro.
-
-% To do this right we need a feature of e-TeX, \scantokens, 
-% which we arrange to emulate with a temporary file in ordinary TeX.
-\ifx\eTeXversion\undefined
- \newwrite\macscribble
- \def\scanmacro#1{%
-   \begingroup \newlinechar`\^^M
-   \immediate\openout\macscribble=\jobname.tmp
-   \immediate\write\macscribble{#1}%
-   \immediate\closeout\macscribble
-   \let\xeatspaces\eatspaces
-   \input \jobname.tmp
-   \endgroup
-}
-\else
-\def\scanmacro#1{%
-\begingroup \newlinechar`\^^M
-\let\xeatspaces\eatspaces\scantokens{#1}\endgroup}
-\fi
-
-\newcount\paramno   % Count of parameters
-\newtoks\macname    % Macro name
-\newif\ifrecursive  % Is it recursive?
-
-% Utility routines.
-% Thisdoes \let #1 = #2, except with \csnames.
-\def\cslet#1#2{%
-\expandafter\expandafter
-\expandafter\let
-\expandafter\expandafter
-\csname#1\endcsname
-\csname#2\endcsname}
-
-% Trim leading and trailing spaces off a string.
-% Concepts from aro-bend problem 15 (see CTAN).
address@hidden
-\gdef\eatspaces address@hidden }}
-\gdef\trim@ #1{\trim@@ @#1 @ #1 @ @@}
-\gdef\trim@@ #1@ #2@ #3@@{\trim@@@\empty #2 @}
-\def\unbrace#1{#1}
-\unbrace{\gdef\trim@@@ #1 } address@hidden
-}
-
-% Trim a single trailing ^^M off a string.
-{\catcode`\^^M=12\catcode`\Q=3%
-\gdef\eatcr #1{\eatcra #1Q^^MQ}%
-\gdef\eatcra#1^^MQ{\eatcrb#1Q}%
-\gdef\eatcrb#1Q#2Q{#1}%
-}
-
-% Macro bodies are absorbed as an argument in a context where
-% all characters are catcode 10, 11 or 12, except \ which is active
-% (as in normal texinfo). It is necessary to change the definition of \.
-
-% It's necessary to have hard CRs when the macro is executed. This is 
-% done by  making ^^M (\endlinechar) catcode 12 when reading the macro 
-% body, and then making it the \newlinechar in \scanmacro.
-
-\def\macrobodyctxt{%
-  \catcode`\~=12
-  \catcode`\^=12
-  \catcode`\_=12
-  \catcode`\|=12
-  \catcode`\<=12
-  \catcode`\>=12
-  \catcode`\+=12
-  \catcode`\{=12
-  \catcode`\}=12
-  address@hidden
-  \catcode`\^^M=12
-  \usembodybackslash}
-
-\def\macroargctxt{%
-  \catcode`\~=12
-  \catcode`\^=12
-  \catcode`\_=12
-  \catcode`\|=12
-  \catcode`\<=12
-  \catcode`\>=12
-  \catcode`\+=12
-  address@hidden
-  \catcode`\\=12}
-
-% \mbodybackslash is the definition of \ in @macro bodies.
-% It maps \foo\ => \csname macarg.foo\endcsname => #N 
-% where N is the macro parameter number.
-% We define \csname macarg.\endcsname to be \realbackslash, so
-% \\ in macro replacement text gets you a backslash.
-
address@hidden @address@hidden@active
- @address@hidden@address@hidden
- @address@hidden@csname address@hidden
-}
-\expandafter\def\csname macarg.\endcsname{\realbackslash}
-
-\def\macro{\recursivefalse\parsearg\macroxxx}
-\def\rmacro{\recursivetrue\parsearg\macroxxx}
-
-\def\macroxxx#1{%
-  \getargs{#1}%           now \macname is the macname and \argl the arglist
-  \ifx\argl\empty       % no arguments
-     \paramno=0%
-  \else
-     \expandafter\parsemargdef \argl;% 
-  \fi
-  \expandafter\ifx \csname macsave.\the\macname\endcsname \relax
-     \cslet{macsave.\the\macname}{\the\macname}%
-  \else
-     \message{Warning: redefining \the\macname}%
-  \fi
-  \begingroup \macrobodyctxt
-  \ifrecursive \expandafter\parsermacbody
-  \else \expandafter\parsemacbody 
-  \fi}
-
-\def\unmacro{\parsearg\unmacroxxx}
-\def\unmacroxxx#1{%
-  \expandafter\ifx \csname macsave.\the\macname\endcsname \relax
-    \errmessage{Macro \the\macname\ not defined.}%
-  \else
-    \cslet{#1}{macsave.#1}%
-    \expandafter\let \csname macsave.\the\macname\endcsname \undefined
-  \fi
-}
-
-% This makes use of the obscure feature that if the last token of a
-% <parameter list> is #, then the preceding argument is delimited by
-% an opening brace, and that opening brace is not consumed.
-\def\getargs#1{\getargsxxx#1{}}
-\def\getargsxxx#1#{\getmacname #1 \relax\getmacargs}
-\def\getmacname #1 #2\relax{\macname={#1}}
-\def\getmacargs#1{\def\argl{#1}}
-
-% Parse the optional {params} list.  Set up \paramno and \paramlist
-% so \defmacro knows what to do.  Define \macarg.blah for each blah
-% in the params list, to be ##N where N is the position in that list.
-% That gets used by \mbodybackslash (above).
-
-% We need to get `macro parameter char #' into several definitions.
-% The technique used is stolen from LaTeX:  let \hash be something
-% unexpandable, insert that wherever you need a #, and then redefine
-% it to # just before using the token list produced.
-%
-% The same technique is used to protect \eatspaces till just before
-% the macro is used.
-
-\def\parsemargdef#1;{\paramno=0\def\paramlist{}%
-        \let\hash\relax\let\xeatspaces\relax\parsemargdefxxx#1,;,}
-\def\parsemargdefxxx#1,{%
-  \if#1;\let\next=\relax
-  \else \let\next=\parsemargdefxxx
-    \advance\paramno by 1%
-    \expandafter\edef\csname macarg.\eatspaces{#1}\endcsname
-        {\xeatspaces{\hash\the\paramno}}%
-    \edef\paramlist{\paramlist\hash\the\paramno,}%
-  \fi\next}
-
-% These two commands read recursive and nonrecursive macro bodies.
-% (They're different since rec and nonrec macros end differently.)
-
address@hidden macro%
-{\xdef\temp{\eatcr{#1}}\endgroup\defmacro}%
address@hidden rmacro%
-{\xdef\temp{\eatcr{#1}}\endgroup\defmacro}%
-
-% This defines the macro itself. There are six cases: recursive and
-% nonrecursive macros of zero, one, and many arguments.
-% Much magic with \expandafter here.
-% \xdef is used so that macro definitions will survive the file
-% they're defined in; @include reads the file inside a group.
-\def\defmacro{%
-  \let\hash=##% convert placeholders to macro parameter chars
-  \ifrecursive
-    \ifcase\paramno
-    % 0
-      \expandafter\xdef\csname\the\macname\endcsname{%
-        \noexpand\scanmacro{\temp}}%
-    \or % 1
-      \expandafter\xdef\csname\the\macname\endcsname{%
-         \bgroup\noexpand\macroargctxt
-         \noexpand\braceorline\csname\the\macname xxx\endcsname}%
-      \expandafter\xdef\csname\the\macname xxx\endcsname##1{%
-         \egroup\noexpand\scanmacro{\temp}}%
-    \else % many
-      \expandafter\xdef\csname\the\macname\endcsname{%
-         \bgroup\noexpand\macroargctxt
-         \noexpand\csname\the\macname xx\endcsname}
-      \expandafter\xdef\csname\the\macname xx\endcsname##1{%
-          \csname\the\macname xxx\endcsname ##1,}%
-      \expandafter\expandafter
-      \expandafter\xdef
-      \expandafter\expandafter
-        \csname\the\macname xxx\endcsname 
-          \paramlist{\egroup\noexpand\scanmacro{\temp}}%
-    \fi
-  \else
-    \ifcase\paramno
-    % 0
-      \expandafter\xdef\csname\the\macname\endcsname{%
-        \noexpand\norecurse{\the\macname}%
-        \noexpand\scanmacro{\temp}\egroup}%
-    \or % 1
-      \expandafter\xdef\csname\the\macname\endcsname{%
-         \bgroup\noexpand\macroargctxt
-         \noexpand\braceorline\csname\the\macname xxx\endcsname}%
-      \expandafter\xdef\csname\the\macname xxx\endcsname##1{%
-        \egroup
-        \noexpand\norecurse{\the\macname}%
-        \noexpand\scanmacro{\temp}\egroup}%
-    \else % many
-      \expandafter\xdef\csname\the\macname\endcsname{%
-         \bgroup\noexpand\macroargctxt
-         \noexpand\csname\the\macname xx\endcsname}
-      \expandafter\xdef\csname\the\macname xx\endcsname##1{%
-          \csname\the\macname xxx\endcsname ##1,}%
-      \expandafter\expandafter
-      \expandafter\xdef
-      \expandafter\expandafter
-      \csname\the\macname xxx\endcsname
-      \paramlist{%
-          \egroup
-          \noexpand\norecurse{\the\macname}%
-          \noexpand\scanmacro{\temp}\egroup}%
-    \fi
-  \fi}
-
-\def\norecurse#1{\bgroup\cslet{#1}{macsave.#1}}
-
-% \braceorline decides whether the next nonwhitespace character is a
-% {.  If so it reads up to the closing }, if not, it reads the whole
-% line.  Whatever was read is then fed to the next control sequence
-% as an argument (by \parsebrace or \parsearg)
-\def\braceorline#1{\let\next=#1\futurelet\nchar\braceorlinexxx}
-\def\braceorlinexxx{%
-  \ifx\nchar\bgroup\else
-    \expandafter\parsearg 
-  \fi \next}
-
-
-\message{cross references,}
-\newwrite\auxfile
-
-\newif\ifhavexrefs    % True if xref values are known.
-\newif\ifwarnedxrefs  % True if we warned once that they aren't known.
-
-% @inforef is relatively simple.
-\def\inforef #1{\inforefzzz #1,,,,**}
-\def\inforefzzz #1,#2,#3,#4**{\putwordSee{} \putwordInfo{} \putwordfile{} 
\file{\ignorespaces #3{}},
-  node \samp{\ignorespaces#1{}}}
-
-% @node's job is to define \lastnode.
-\def\node{\ENVcheck\parsearg\nodezzz}
-\def\nodezzz#1{\nodexxx [#1,]}
-\def\nodexxx[#1,#2]{\gdef\lastnode{#1}}
-\let\nwnode=\node
-\let\lastnode=\relax
-
-% The sectioning commands (@chapter, etc.) call these.
-\def\donoderef{%
-  \ifx\lastnode\relax\else
-    \expandafter\expandafter\expandafter\setref{\lastnode}%
-      {Ysectionnumberandtype}%
-    \global\let\lastnode=\relax
-  \fi
-}
-\def\unnumbnoderef{%
-  \ifx\lastnode\relax\else
-    \expandafter\expandafter\expandafter\setref{\lastnode}{Ynothing}%
-    \global\let\lastnode=\relax
-  \fi
-}
-\def\appendixnoderef{%
-  \ifx\lastnode\relax\else
-    \expandafter\expandafter\expandafter\setref{\lastnode}%
-      {Yappendixletterandtype}%
-    \global\let\lastnode=\relax
-  \fi
-}
-
-
-% @anchor{NAME} -- define xref target at arbitrary point.
-% 
-\def\anchor#1{\setref{#1}{Ynothing}}
-
-
-% \setref{NAME}{SNT} defines a cross-reference point NAME, namely
-% NAME-title, NAME-pg, and NAME-SNT.  Called from \foonoderef.  We have
-% to set \indexdummies so commands such as @code in a section title
-% aren't expanded.  It would be nicer not to expand the titles in the
-% first place, but there's so many layers that that is hard to do.
-% 
-\def\setref#1#2{{%
-  \indexdummies
-  \dosetq{#1-title}{Ytitle}%
-  \dosetq{#1-pg}{Ypagenumber}%
-  \dosetq{#1-snt}{#2}
-}}
-
-% @xref, @pxref, and @ref generate cross-references.  For \xrefX, #1 is
-% the node name, #2 the name of the Info cross-reference, #3 the printed
-% node name, #4 the name of the Info file, #5 the name of the printed
-% manual.  All but the node name can be omitted.
-%
-\def\pxref#1{\putwordsee{} \xrefX[#1,,,,,,,]}
-\def\xref#1{\putwordSee{} \xrefX[#1,,,,,,,]}
-\def\ref#1{\xrefX[#1,,,,,,,]}
-\def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup
-  \def\printedmanual{\ignorespaces #5}%
-  \def\printednodename{\ignorespaces #3}%
-  \setbox1=\hbox{\printedmanual}%
-  \setbox0=\hbox{\printednodename}%
-  \ifdim \wd0 = 0pt
-    % No printed node name was explicitly given.
-    \expandafter\ifx\csname SETxref-automatic-section-title\endcsname\relax
-      % Use the node name inside the square brackets.
-      \def\printednodename{\ignorespaces #1}%
-    \else
-      % Use the actual chapter/section title appear inside
-      % the square brackets.  Use the real section title if we have it.
-      \ifdim \wd1 > 0pt
-        % It is in another manual, so we don't have it.
-        \def\printednodename{\ignorespaces #1}%
-      \else
-        \ifhavexrefs
-          % We know the real title if we have the xref values.
-          \def\printednodename{\refx{#1-title}{}}%
-        \else
-          % Otherwise just copy the Info node name.
-          \def\printednodename{\ignorespaces #1}%
-        \fi%
-      \fi
-    \fi
-  \fi
-  %
-  % If we use \unhbox0 and \unhbox1 to print the node names, TeX does not
-  % insert empty discretionaries after hyphens, which means that it will
-  % not find a line break at a hyphen in a node names.  Since some manuals
-  % are best written with fairly long node names, containing hyphens, this
-  % is a loss.  Therefore, we give the text of the node name again, so it
-  % is as if TeX is seeing it for the first time.
-  \ifdim \wd1 > 0pt
-    \putwordsection{} ``\printednodename'' in \cite{\printedmanual}%
-  \else
-    % _ (for example) has to be the character _ for the purposes of the
-    % control sequence corresponding to the node, but it has to expand
-    % into the usual \leavevmode...\vrule stuff for purposes of
-    % printing. So we \turnoffactive for the \refx-snt, back on for the
-    % printing, back off for the \refx-pg.
-    {\normalturnoffactive
-     % Only output a following space if the -snt ref is nonempty; for
-     % @unnumbered and @anchor, it won't be.
-     \setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}%
-     \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi
-    }%
-    % [mynode], 
-    [\printednodename],\space
-    % page 3
-    \turnoffactive \putwordpage\tie\refx{#1-pg}{}%
-  \fi
-\endgroup}
-
-% \dosetq is the interface for calls from other macros
-
-% Use \normalturnoffactive so that punctuation chars such as underscore
-% and backslash work in node names.  (\turnoffactive doesn't do \.)
-\def\dosetq#1#2{%
-  {\let\folio=0
-   \normalturnoffactive
-   \edef\next{\write\auxfile{\internalsetq{#1}{#2}}}%
-   \iflinks
-     \next
-   \fi
-  }%
-}
-
-% \internalsetq {foo}{page} expands into
-% CHARACTERS 'xrdef {foo}{...expansion of \Ypage...}
-% When the aux file is read, ' is the escape character
-
-\def\internalsetq #1#2{'xrdef {#1}{\csname #2\endcsname}}
-
-% Things to be expanded by \internalsetq
-
-\def\Ypagenumber{\folio}
-
-\def\Ytitle{\thissection}
-
-\def\Ynothing{}
-
-\def\Ysectionnumberandtype{%
-\ifnum\secno=0 \putwordChapter\xreftie\the\chapno %
-\else \ifnum \subsecno=0 \putwordSection\xreftie\the\chapno.\the\secno %
-\else \ifnum \subsubsecno=0 %
-\putwordSection\xreftie\the\chapno.\the\secno.\the\subsecno %
-\else %
-\putwordSection\xreftie\the\chapno.\the\secno.\the\subsecno.\the\subsubsecno %
-\fi \fi \fi }
-
-\def\Yappendixletterandtype{%
-\ifnum\secno=0 \putwordAppendix\xreftie'char\the\appendixno{}%
-\else \ifnum \subsecno=0 
\putwordSection\xreftie'char\the\appendixno.\the\secno %
-\else \ifnum \subsubsecno=0 %
-\putwordSection\xreftie'char\the\appendixno.\the\secno.\the\subsecno %
-\else %
-\putwordSection\xreftie'char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno
 %
-\fi \fi \fi }
-
-\gdef\xreftie{'tie}
-
-% Use TeX 3.0's \inputlineno to get the line number, for better error
-% messages, but if we're using an old version of TeX, don't do anything.
-%
-\ifx\inputlineno\thisisundefined
-  \let\linenumber = \empty % Non-3.0.
-\else
-  \def\linenumber{\the\inputlineno:\space}
-\fi
-
-% Define \refx{NAME}{SUFFIX} to reference a cross-reference string named NAME.
-% If its value is nonempty, SUFFIX is output afterward.
-
-\def\refx#1#2{%
-  \expandafter\ifx\csname X#1\endcsname\relax
-    % If not defined, say something at least.
-    \angleleft un\-de\-fined\angleright
-    \iflinks
-      \ifhavexrefs
-        \message{\linenumber Undefined cross reference `#1'.}%
-      \else
-        \ifwarnedxrefs\else
-          \global\warnedxrefstrue
-          \message{Cross reference values unknown; you must run TeX again.}%
-        \fi
-      \fi
-    \fi
-  \else
-    % It's defined, so just use it.
-    \csname X#1\endcsname
-  \fi
-  #2% Output the suffix in any case.
-}
-
-% This is the macro invoked by entries in the aux file.
-% 
-\def\xrdef#1{\begingroup
-  % Reenable \ as an escape while reading the second argument.
-  \catcode`\\ = 0
-  \afterassignment\endgroup
-  \expandafter\gdef\csname X#1\endcsname
-}
-
-% Read the last existing aux file, if any.  No error if none exists.
-\def\readauxfile{\begingroup
-  address@hidden
-  \catcode`\^^A=\other
-  \catcode`\^^B=\other
-  \catcode`\^^C=\other
-  \catcode`\^^D=\other
-  \catcode`\^^E=\other
-  \catcode`\^^F=\other
-  \catcode`\^^G=\other
-  \catcode`\^^H=\other
-  \catcode`\^^K=\other
-  \catcode`\^^L=\other
-  \catcode`\^^N=\other
-  \catcode`\^^P=\other
-  \catcode`\^^Q=\other
-  \catcode`\^^R=\other
-  \catcode`\^^S=\other
-  \catcode`\^^T=\other
-  \catcode`\^^U=\other
-  \catcode`\^^V=\other
-  \catcode`\^^W=\other
-  \catcode`\^^X=\other
-  \catcode`\^^Z=\other
-  \catcode`\^^[=\other
-  \catcode`\^^\=\other
-  \catcode`\^^]=\other
-  \catcode`\^^^=\other
-  \catcode`\^^_=\other
-  address@hidden
-  \catcode`\^=\other
-  % It was suggested to define this as 7, which would allow ^^e4 etc.
-  % in xref tags, i.e., node names.  But since ^^e4 notation isn't
-  % supported in the main text, it doesn't seem desirable.  Furthermore,
-  % that is not enough: for node names that actually contain a ^
-  % character, we would end up writing a line like this: 'xrdef {'hat
-  % b-title}{'hat b} and \xrdef does a \csname...\endcsname on the first
-  % argument, and \hat is not an expandable control sequence.  It could
-  % all be worked out, but why?  Either we support ^^ or we don't.
-  %
-  % The other change necessary for this was to define \auxhat:
-  % \def\auxhat{\def^{'hat }}% extra space so ok if followed by letter
-  % and then to call \auxhat in \setq.
-  %
-  \catcode`\~=\other
-  \catcode`\[=\other
-  \catcode`\]=\other
-  \catcode`\"=\other
-  \catcode`\_=\other
-  \catcode`\|=\other
-  \catcode`\<=\other
-  \catcode`\>=\other
-  \catcode`\$=\other
-  \catcode`\#=\other
-  \catcode`\&=\other
-  \catcode`+=\other % avoid \+ for paranoia even though we've turned it off
-  % Make the characters 128-255 be printing characters
-  {%
-    \count 1=128
-    \def\loop{%
-      \catcode\count 1=\other
-      \advance\count 1 by 1
-      \ifnum \count 1<256 \loop \fi
-    }%
-  }%
-  % The aux file uses ' as the escape (for now).
-  % Turn off \ as an escape so we do not lose on
-  % entries which were dumped with control sequences in their names.
-  % For example, 'xrdef {$\leq $-fun}{page ...} made by @defun ^^
-  % Reference to such entries still does not work the way one would wish,
-  % but at least they do not bomb out when the aux file is read in.
-  \catcode`\{=1
-  \catcode`\}=2
-  \catcode`\%=\other
-  \catcode`\'=0
-  \catcode`\\=\other
-  %
-  \openin 1 \jobname.aux
-  \ifeof 1 \else
-    \closein 1
-    \input \jobname.aux
-    \global\havexrefstrue
-    \global\warnedobstrue
-  \fi
-  % Open the new aux file.  TeX will close it automatically at exit.
-  \openout\auxfile=\jobname.aux
-\endgroup}
-
-
-% Footnotes.
-
-\newcount \footnoteno
-
-% The trailing space in the following definition for supereject is
-% vital for proper filling; pages come out unaligned when you do a
-% pagealignmacro call if that space before the closing brace is
-% removed. (Generally, numeric constants should always be followed by a
-% space to prevent strange expansion errors.)
-\def\supereject{\par\penalty -20000\footnoteno =0 }
-
-% @footnotestyle is meaningful for info output only.
-\let\footnotestyle=\comment
-
-\let\ptexfootnote=\footnote
-
-{\catcode address@hidden
-%
-% Auto-number footnotes.  Otherwise like plain.
-\gdef\footnote{%
-  \global\advance\footnoteno by address@hidden
-  \edef\thisfootno{$^{\the\footnoteno}$}%
-  %
-  % In case the footnote comes at the end of a sentence, preserve the
-  % extra spacing after we do the footnote number.
-  address@hidden
-  address@hidden/\fi
-  %
-  % Remove inadvertent blank space before typesetting the footnote number.
-  \unskip
-  address@hidden
-  \footnotezzz
-}%
-
-% Don't bother with the trickery in plain.tex to not require the
-% footnote text as a parameter.  Our footnotes don't need to be so general.
-%
-% Oh yes, they do; otherwise, @ifset and anything else that uses
-% \parseargline fail inside footnotes because the tokens are fixed when
-% the footnote is read.  --karl, 16nov96.
-%
-\long\gdef\footnotezzz{\insert\footins\bgroup
-  % We want to typeset this text as a normal paragraph, even if the
-  % footnote reference occurs in (for example) a display environment.
-  % So reset some parameters.
-  \interlinepenalty\interfootnotelinepenalty
-  \splittopskip\ht\strutbox % top baseline for broken footnotes
-  \splitmaxdepth\dp\strutbox
-  address@hidden
-  address@hidden
-  address@hidden
-  address@hidden
-  address@hidden
-  \parindent\defaultparindent
-  %
-  % Hang the footnote text off the number.
-  \hang
-  \textindent{\thisfootno}%
-  %
-  % Don't crash into the line above the footnote text.  Since this
-  % expands into a box, it must come within the paragraph, lest it
-  % provide a place where TeX can split the footnote.
-  \footstrut
-  address@hidden
-}
address@hidden \let\next\f@@t
-  address@hidden \next}
-\def\f@@address@hidden
address@hidden@foot}
address@hidden
-
-}%end \catcode address@hidden
-
-% Set the baselineskip to #1, and the lineskip and strut size
-% correspondingly.  There is no deep meaning behind these magic numbers
-% used as factors; they just match (closely enough) what Knuth defined.
-%
-\def\lineskipfactor{.08333}
-\def\strutheightpercent{.70833}
-\def\strutdepthpercent {.29167}
-%
-\def\setleading#1{%
-  \normalbaselineskip = #1\relax
-  \normallineskip = \lineskipfactor\normalbaselineskip
-  \normalbaselines
-  \setbox\strutbox =\hbox{%
-    \vrule width0pt height\strutheightpercent\baselineskip
-                    depth \strutdepthpercent \baselineskip
-  }%
-}
-
-% @| inserts a changebar to the left of the current line.  It should
-% surround any changed text.  This approach does *not* work if the
-% change spans more than two lines of output.  To handle that, we would
-% have adopt a much more difficult approach (putting marks into the main
-% vertical list for the beginning and end of each change).
-%
-\def\|{%
-  % \vadjust can only be used in horizontal mode.
-  \leavevmode
-  %
-  % Append this vertical mode material after the current line in the output.
-  \vadjust{%
-    % We want to insert a rule with the height and depth of the current
-    % leading; that is exactly what \strutbox is supposed to record.
-    \vskip-\baselineskip
-    %
-    % \vadjust-items are inserted at the left edge of the type.  So
-    % the \llap here moves out into the left-hand margin.
-    \llap{%
-      %
-      % For a thicker or thinner bar, change the `1pt'.
-      \vrule height\baselineskip width1pt
-      %
-      % This is the space between the bar and the text.
-      \hskip 12pt
-    }%
-  }%
-}
-
-% For a final copy, take out the rectangles
-% that mark overfull boxes (in case you have decided
-% that the text looks ok even though it passes the margin).
-%
-\def\finalout{\overfullrule=0pt}
-
-% @image.  We use the macros from epsf.tex to support this.
-% If epsf.tex is not installed and @image is used, we complain.
-% 
-% Check for and read epsf.tex up front.  If we read it only at @image
-% time, we might be inside a group, and then its definitions would get
-% undone and the next image would fail.
-\openin 1 = epsf.tex
-\ifeof 1 \else
-  \closein 1
-  % Do not bother showing banner with post-v2.7 epsf.tex (available in
-  % doc/epsf.tex until it shows up on ctan).
-  \def\epsfannounce{\toks0 = }%
-  \input epsf.tex
-\fi
-%
-\newif\ifwarnednoepsf
-\newhelp\noepsfhelp{epsf.tex must be installed for images to
-  work.  It is also included in the Texinfo distribution, or you can get
-  it from ftp://ftp.tug.org/tex/epsf.tex.}
-%
-% Only complain once about lack of epsf.tex.
-\def\image#1{%
-  \ifx\epsfbox\undefined
-    \ifwarnednoepsf \else
-      \errhelp = \noepsfhelp
-      \errmessage{epsf.tex not found, images will be ignored}%
-      \global\warnednoepsftrue
-    \fi
-  \else
-    \imagexxx #1,,,\finish
-  \fi
-}
-%
-% Arguments to @image:
-% #1 is (mandatory) image filename; we tack on .eps extension.
-% #2 is (optional) width, #3 is (optional) height.
-% #4 is just the usual extra ignored arg for parsing this stuff.
-\def\imagexxx#1,#2,#3,#4\finish{%
-  % \epsfbox itself resets \epsf?size at each figure.
-  \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \epsfxsize=#2\relax \fi
-  \setbox0 = \hbox{\ignorespaces #3}\ifdim\wd0 > 0pt \epsfysize=#3\relax \fi
-  % If the image is by itself, center it.
-  \ifvmode
-    \nobreak\medskip
-    \nobreak
-    \centerline{\epsfbox{#1.eps}}%
-    \bigbreak
-  \else
-    \epsfbox{#1.eps}%
-  \fi
-}
-
-
-\message{paper sizes,}
-% And other related parameters.
-
-\newdimen\defaultparindent \defaultparindent = 15pt
-
-\chapheadingskip = 15pt plus 4pt minus 2pt
-\secheadingskip = 12pt plus 3pt minus 2pt
-\subsecheadingskip = 9pt plus 2pt minus 2pt
-
-% Prevent underfull vbox error messages.
-\vbadness = 10000
-
-% Don't be so finicky about underfull hboxes, either.
-\hbadness = 2000
-
-% Following George Bush, just get rid of widows and orphans.
-\widowpenalty=10000
-\clubpenalty=10000
-
-% Use TeX 3.0's \emergencystretch to help line breaking, but if we're
-% using an old version of TeX, don't do anything.  We want the amount of
-% stretch added to depend on the line length, hence the dependence on
-% \hsize.  This makes it come to about 9pt for the 8.5x11 format.  We
-% call this whenever the paper size is set.
-%
-\def\setemergencystretch{%
-  \ifx\emergencystretch\thisisundefined
-    % Allow us to assign to \emergencystretch anyway.
-    \def\emergencystretch{\dimen0}%
-  \else
-    \emergencystretch = \hsize
-    \divide\emergencystretch by 45
-  \fi
-}
-
-% Parameters in order: 1) textheight; 2) textwidth; 3) voffset;
-% 4) hoffset; 5) binding offset; 6) topskip.  Then whoever calls us can
-% set \parskip and call \setleading for \baselineskip.
-%
-\def\internalpagesizes#1#2#3#4#5#6{%
-  \voffset = #3\relax
-  \topskip = #6\relax
-  \splittopskip = \topskip
-  %
-  \vsize = #1\relax
-  \advance\vsize by \topskip
-  \outervsize = \vsize
-  \advance\outervsize by 2\topandbottommargin
-  \pageheight = \vsize
-  %
-  \hsize = #2\relax
-  \outerhsize = \hsize
-  \advance\outerhsize by 0.5in
-  \pagewidth = \hsize
-  %
-  \normaloffset = #4\relax
-  \bindingoffset = #5\relax
-  %
-  \parindent = \defaultparindent
-  \setemergencystretch
-}
-
-% @letterpaper (the default).
-\def\letterpaper{{\globaldefs = 1
-  \parskip = 3pt plus 2pt minus 1pt
-  \setleading{13.2pt}%
-  %
-  % If page is nothing but text, make it come out even.
-  
\internalpagesizes{46\baselineskip}{6in}{\voffset}{.25in}{\bindingoffset}{36pt}%
-}}
-
-% Use @smallbook to reset parameters for 7x9.5 (or so) format.
-\def\smallbook{{\globaldefs = 1
-  \parskip = 2pt plus 1pt
-  \setleading{12pt}%
-  %
-  \internalpagesizes{7.5in}{5.in}{\voffset}{.25in}{\bindingoffset}{16pt}%
-  %
-  \lispnarrowing = 0.3in
-  \tolerance = 700
-  \hfuzz = 1pt
-  \contentsrightmargin = 0pt
-  \deftypemargin = 0pt
-  \defbodyindent = .5cm
-  %
-  \let\smalldisplay = \smalldisplayx
-  \let\smallexample = \smalllispx
-  \let\smallformat = \smallformatx
-  \let\smalllisp = \smalllispx
-}}
-
-% Use @afourpaper to print on European A4 paper.
-\def\afourpaper{{\globaldefs = 1
-  \setleading{12pt}%
-  \parskip = 3pt plus 2pt minus 1pt
-  %
-  
\internalpagesizes{53\baselineskip}{160mm}{\voffset}{4mm}{\bindingoffset}{44pt}%
-  %
-  \tolerance = 700
-  \hfuzz = 1pt
-}}
-
-% A specific text layout, 24x15cm overall, intended for A4 paper.  Top margin
-% 29mm, hence bottom margin 28mm, nominal side margin 3cm.
-\def\afourlatex{{\globaldefs = 1
-  \setleading{13.6pt}%
-  %
-  \afourpaper
-  \internalpagesizes{237mm}{150mm}{3.6mm}{3.6mm}{3mm}{7mm}%
-  %
-  \globaldefs = 0
-}}
-
-% Use @afourwide to print on European A4 paper in wide format.
-\def\afourwide{%
-  \afourpaper
-  
\internalpagesizes{9.5in}{6.5in}{\hoffset}{\normaloffset}{\bindingoffset}{7mm}%
-  %
-  \globaldefs = 0
-}
-
-% @pagesizes TEXTHEIGHT[,TEXTWIDTH]
-% Perhaps we should allow setting the margins, \topskip, \parskip,
-% and/or leading, also. Or perhaps we should compute them somehow.
-% 
-\def\pagesizes{\parsearg\pagesizesxxx}
-\def\pagesizesxxx#1{\pagesizesyyy #1,,\finish}
-\def\pagesizesyyy#1,#2,#3\finish{{%
-  \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \hsize=#2\relax \fi
-  \globaldefs = 1
-  %
-  \parskip = 3pt plus 2pt minus 1pt
-  \setleading{13.2pt}%
-  %
-  
\internalpagesizes{#1}{\hsize}{\voffset}{\normaloffset}{\bindingoffset}{44pt}%
-}}
-
-% Set default to letter.
-% 
-\letterpaper
-
-\message{and turning on texinfo input format.}
-
-% Define macros to output various characters with catcode for normal text.
-\catcode`\"=\other
-\catcode`\~=\other
-\catcode`\^=\other
-\catcode`\_=\other
-\catcode`\|=\other
-\catcode`\<=\other
-\catcode`\>=\other
-\catcode`\+=\other
-\def\normaldoublequote{"}
-\def\normaltilde{~}
-\def\normalcaret{^}
-\def\normalunderscore{_}
-\def\normalverticalbar{|}
-\def\normalless{<}
-\def\normalgreater{>}
-\def\normalplus{+}
-
-% This macro is used to make a character print one way in ttfont
-% where it can probably just be output, and another way in other fonts,
-% where something hairier probably needs to be done.
-%
-% #1 is what to print if we are indeed using \tt; #2 is what to print
-% otherwise.  Since all the Computer Modern typewriter fonts have zero
-% interword stretch (and shrink), and it is reasonable to expect all
-% typewriter fonts to have this, we can check that font parameter.
-%
-\def\ifusingtt#1#2{\ifdim \fontdimen3\the\font=0pt #1\else #2\fi}
-
-% Turn off all special characters except @
-% (and those which the user can use as if they were ordinary).
-% Most of these we simply print from the \tt font, but for some, we can
-% use math or other variants that look better in normal text.
-
-\catcode`\"=\active
-\def\activedoublequote{{\tt\char34}}
-\let"=\activedoublequote
-\catcode`\~=\active
-\def~{{\tt\char126}}
-\chardef\hat=`\^
-\catcode`\^=\active
-\def^{{\tt \hat}}
-
-\catcode`\_=\active
-\def_{\ifusingtt\normalunderscore\_}
-% Subroutine for the previous macro.
-\def\_{\leavevmode \kern.06em \vbox{\hrule width.3em height.1ex}}
-
-\catcode`\|=\active
-\def|{{\tt\char124}}
-\chardef \less=`\<
-\catcode`\<=\active
-\def<{{\tt \less}}
-\chardef \gtr=`\>
-\catcode`\>=\active
-\def>{{\tt \gtr}}
-\catcode`\+=\active
-\def+{{\tt \char 43}}
-%\catcode 27=\active
-%\def^^[{$\diamondsuit$}
-
-% Set up an active definition for =, but don't enable it most of the time.
-{\catcode`\==\active
-\global\def={{\tt \char 61}}}
-
-\catcode`+=\active
-\catcode`\_=\active
-
-% If a .fmt file is being used, characters that might appear in a file
-% name cannot be active until we have parsed the command line.
-% So turn them off again, and have \everyjob (or @setfilename) turn them on.
-% \otherifyactive is called near the end of this file.
-\def\otherifyactive{\catcode`+=\other \catcode`\_=\other}
-
address@hidden
-
-% \rawbackslashxx output one backslash character in current font
-\global\chardef\rawbackslashxx=`\\
-%{\catcode`\\=\other
address@hidden@rawbackslashxx{\}}
-
-% \rawbackslash redefines \ as input to do \rawbackslashxx.
-{\catcode`\\=\active
address@hidden@address@hidden@rawbackslashxx }}
-
-% \normalbackslash outputs one backslash in fixed width font.
-\def\normalbackslash{{\tt\rawbackslashxx}}
-
-% Say @foo, not \foo, in error messages.
-\escapechar=`\@
-
-% \catcode 17=0   % Define control-q
-\catcode`\\=\active
-
-% Used sometimes to turn off (effectively) the active characters
-% even after parsing them.
address@hidden@address@hidden"address@hidden
address@hidden@realbackslash
address@hidden@normaltilde
address@hidden@normalcaret
address@hidden@normalunderscore
address@hidden|address@hidden
address@hidden<address@hidden
address@hidden>address@hidden
address@hidden@normalplus}
-
address@hidden@address@hidden"address@hidden
address@hidden@normalbackslash
address@hidden@normaltilde
address@hidden@normalcaret
address@hidden@normalunderscore
address@hidden|address@hidden
address@hidden<address@hidden
address@hidden>address@hidden
address@hidden@normalplus}
-
-% Make _ and + \other characters, temporarily.
-% This is canceled by @fixbackslash.
address@hidden
-
-% If a .fmt file is being used, we don't want the `\input texinfo' to show up.
-% That is what \eatinput is for; after that, the `\' should revert to printing
-% a backslash.
-%
address@hidden@eatinput input address@hidden
address@hidden@let\ = @eatinput
-
-% On the other hand, perhaps the file did not have a `\input texinfo'. Then
-% the first `\{ in the file would cause an error. This macro tries to fix
-% that, assuming it is called before the first `\' could plausibly occur.
-% Also back turn on active characters that might appear in the input
-% file name, in case not using a pre-dumped format.
-%
address@hidden@address@hidden@eatinput @let\ = @normalbackslash @fi
-  @address@hidden @address@hidden@active}
-
-% These look ok in all fonts, so just make them not special.  The @rm below
-% makes sure that the current font starts out as the newly loaded cmr10
address@hidden@address@hidden @address@hidden@other @catcode`@&address@hidden 
@address@hidden@other
-
address@hidden
address@hidden
-
address@hidden Local variables:
address@hidden eval: (add-hook 'write-file-hooks 'time-stamp)
address@hidden page-delimiter: "^\\\\message"
address@hidden time-stamp-start: "def\\\\texinfoversion{"
address@hidden time-stamp-format: "%:y-%02m-%02d"
address@hidden time-stamp-end: "}"
address@hidden End:
diff --git a/texinfos.am b/texinfos.am
deleted file mode 100644
index 7430efb..0000000
--- a/texinfos.am
+++ /dev/null
@@ -1,205 +0,0 @@
-## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
-
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2, or (at your option)
-## any later version.
-
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-## 02111-1307, USA.
-
-## FIXME: should repeat all the stuff in this file.  Instead should
-## generate the contents in a smarter way.
-
-.texi.info:
-## We want to force the .info file to be built in srcdir.  This is
-## probably the simplest way.  However, at Cygnus .info files are
-## always put into the build directory.  So at runtime we select which
-## rule to use.
-## Note that we also remove the possible output files before running
-## makeinfo.  Otherwise, if the texinfo file shrinks (or if you start
-## using --no-split), you'll be left with some dead info files lying
-## around -- dead files which will end up in the distribution.
-NOTCYGNUS      @cd $(srcdir) && rm -f $@ address@hidden address@hidden
-NOTCYGNUS      cd $(srcdir) \
-NOTCYGNUS        && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
-CYGNUS @rm -f $@ address@hidden address@hidden
-CYGNUS $(MAKEINFO) -I $(srcdir) $<
-
-.texi.dvi:
-       address@hidden@:$$TEXINPUTS \
-## Must set MAKEINFO like this so that version.texi will be found even
-## if it is in srcdir.
-         MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
-
-.texi:
-## We want to force the .info file to be built in srcdir.  This is
-## probably the simplest way.  However, at Cygnus .info files are
-## always put into the build directory.  So at runtime we select which
-## rule to use.
-## Note that we also remove the possible output files before running
-## makeinfo.  Otherwise, if the texinfo file shrinks (or if you start
-## using --no-split), you'll be left with some dead info files lying
-## around -- dead files which will end up in the distribution.
-NOTCYGNUS      @cd $(srcdir) && rm -f $@ address@hidden address@hidden
-NOTCYGNUS      cd $(srcdir) \
-NOTCYGNUS        && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
-CYGNUS @rm -f $@ address@hidden address@hidden
-CYGNUS $(MAKEINFO) -I $(srcdir) $<
-
-.texinfo.info:
-## We want to force the .info file to be built in srcdir.  This is
-## probably the simplest way.  However, at Cygnus .info files are
-## always put into the build directory.  So at runtime we select which
-## rule to use.
-## Note that we also remove the possible output files before running
-## makeinfo.  Otherwise, if the texinfo file shrinks (or if you start
-## using --no-split), you'll be left with some dead info files lying
-## around -- dead files which will end up in the distribution.
-NOTCYGNUS      @cd $(srcdir) && rm -f $@ address@hidden address@hidden
-NOTCYGNUS      cd $(srcdir) \
-NOTCYGNUS        && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
-CYGNUS @rm -f $@ address@hidden address@hidden
-CYGNUS $(MAKEINFO) -I $(srcdir) $<
-
-.texinfo:
-## We want to force the .info file to be built in srcdir.  This is
-## probably the simplest way.  However, at Cygnus .info files are
-## always put into the build directory.  So at runtime we select which
-## rule to use.
-## Note that we also remove the possible output files before running
-## makeinfo.  Otherwise, if the texinfo file shrinks (or if you start
-## using --no-split), you'll be left with some dead info files lying
-## around -- dead files which will end up in the distribution.
-NOTCYGNUS      @cd $(srcdir) && rm -f $@ address@hidden address@hidden
-NOTCYGNUS      cd $(srcdir) \
-NOTCYGNUS        && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
-CYGNUS @rm -f $@ address@hidden address@hidden
-CYGNUS $(MAKEINFO) -I $(srcdir) $<
-
-.texinfo.dvi:
-       address@hidden@:$$TEXINPUTS \
-## Must set MAKEINFO like this so that version.texi will be found even
-## if it is in srcdir.
-         MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
-
-.txi.info:
-## We want to force the .info file to be built in srcdir.  This is
-## probably the simplest way.  However, at Cygnus .info files are
-## always put into the build directory.  So at runtime we select which
-## rule to use.
-## Note that we also remove the possible output files before running
-## makeinfo.  Otherwise, if the texinfo file shrinks (or if you start
-## using --no-split), you'll be left with some dead info files lying
-## around -- dead files which will end up in the distribution.
-NOTCYGNUS      @cd $(srcdir) && rm -f $@ address@hidden address@hidden
-NOTCYGNUS      cd $(srcdir) \
-NOTCYGNUS        && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
-CYGNUS @rm -f $@ address@hidden address@hidden
-CYGNUS $(MAKEINFO) -I $(srcdir) $<
-
-.txi.dvi:
-       address@hidden@:$$TEXINPUTS \
-## Must set MAKEINFO like this so that version.texi will be found even
-## if it is in srcdir.
-         MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
-
-.txi:
-## We want to force the .info file to be built in srcdir.  This is
-## probably the simplest way.  However, at Cygnus .info files are
-## always put into the build directory.  So at runtime we select which
-## rule to use.
-## Note that we also remove the possible output files before running
-## makeinfo.  Otherwise, if the texinfo file shrinks (or if you start
-## using --no-split), you'll be left with some dead info files lying
-## around -- dead files which will end up in the distribution.
-NOTCYGNUS      @cd $(srcdir) && rm -f $@ address@hidden address@hidden
-NOTCYGNUS      cd $(srcdir) \
-NOTCYGNUS        && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
-CYGNUS @rm -f $@ address@hidden address@hidden
-CYGNUS $(MAKEINFO) -I $(srcdir) $<
-
-## The way to make PostScript, for those who want it.
-DVIPS = dvips
-.dvi.ps:
-       $(DVIPS) $< -o $@
-
-## Look in both . and srcdir because the info pages might have been
-## rebuilt in the build directory.  Can't cd to srcdir; that might
-## break a possible install-sh reference.
-## Funny name due to --cygnus influence; we want to reserve
-## `install-info' for the user.
-install-info-am: $(INFO_DEPS)
-       @$(NORMAL_INSTALL)
-       $(mkinstalldirs) $(DESTDIR)$(infodir)
-       @list='$(INFO_DEPS)'; \
-       for file in $$list; do \
-CYGNUS   if test -f $$file; then d=.; else d=$(srcdir); fi; \
-NOTCYGNUS        d=$(srcdir); \
-## We use these strange circumlocutions because we want the "ifile" to
-## be relative, for the install.
-         for ifile in `cd $$d && echo $$file $$file-[0-9] $$file-[0-9][0-9]`; 
do \
-           if test -f $$d/$$ifile; then \
-             echo " $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile"; 
\
-             $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile; \
-           else : ; fi; \
-         done; \
-       done
-       @$(POST_INSTALL)
-## Only run this code if install-info actually exists, and it is not
-## the Debian install-info.  FIXME: once Debian install-info goes
-## away, we can remove this hack.
-       @if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i 
debian' >/dev/null 2>&1; then \
-         list='$(INFO_DEPS)'; \
-         for file in $$list; do \
-## Run `:' after install-info in case install-info fails.  We really
-## don't care about failures here, because they can be spurious.  For
-## instance if you don't have a dir file, install-info will fail.  I
-## think instead it should create a new dir file for you.  This bug
-## causes the `make distcheck' target to fail reliably.
-           echo " install-info --info-dir=$(DESTDIR)$(infodir) 
$(DESTDIR)$(infodir)/$$file";\
-## Use `|| :' here because Sun make passes -e to sh; if install-info
-## fails then we'd fail if we used `;'.
-           install-info --info-dir=$(DESTDIR)$(infodir) 
$(DESTDIR)$(infodir)/$$file || :;\
-         done; \
-       else : ; fi
-
-uninstall-info:
-       $(PRE_UNINSTALL)
-## Run two loops here so that we can handle PRE_UNINSTALL and
-## NORMAL_UNINSTALL correctly.
-       @if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i 
debian' >/dev/null 2>&1; then \
-         ii=yes; \
-       else ii=; fi; \
-       list='$(INFO_DEPS)'; \
-       for file in $$list; do \
-         test -z "$ii" \
-           || install-info --info-dir=$(DESTDIR)$(infodir) --remove $$file; \
-       done
-       @$(NORMAL_UNINSTALL)
-       list='$(INFO_DEPS)'; \
-       for file in $$list; do \
-         (cd $(DESTDIR)$(infodir) && rm -f $$file $$file-[0-9] 
$$file-[0-9][0-9]); \
-       done
-
-dist-info: $(INFO_DEPS)
-       list='$(INFO_DEPS)'; \
-       for base in $$list; do \
-## In Cygnus mode, allow info file to be in source or build dir.  In
-## other modes, allow only source dir.
-NOTCYGNUS        d=$(srcdir); \
-CYGNUS   if test -f $$base; then d=.; else d=$(srcdir); fi; \
-         for file in `cd $$d && eval echo $$base*`; do \
-           test -f $(distdir)/$$file \
-           || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
-           || cp -p $$d/$$file $(distdir)/$$file; \
-         done; \
-       done
diff --git a/version.texi b/version.texi
index b3f0ebb..ab62258 100644
--- a/version.texi
+++ b/version.texi
@@ -1,3 +1,4 @@
address@hidden UPDATED 10 January 1999
address@hidden EDITION 1.4
address@hidden VERSION 1.4
address@hidden UPDATED 27 August 2001
address@hidden UPDATED-MONTH August 2001
address@hidden EDITION 1.5.1a
address@hidden VERSION 1.5.1a
diff --git a/ylwrap b/ylwrap
deleted file mode 100755
index 13fc38d..0000000
--- a/ylwrap
+++ /dev/null
@@ -1,123 +0,0 @@
-#! /bin/sh
-# ylwrap - wrapper for lex/yacc invocations.
-# Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
-# Written by Tom Tromey <address@hidden>.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-# Usage:
-#     ylwrap PROGRAM INPUT [OUTPUT DESIRED]... -- [ARGS]...
-# * PROGRAM is program to run.
-# * INPUT is the input file
-# * OUTPUT is file PROG generates
-# * DESIRED is file we actually want
-# * ARGS are passed to PROG
-# Any number of OUTPUT,DESIRED pairs may be used.
-
-# The program to run.
-prog="$1"
-shift
-# Make any relative path in $prog absolute.
-case "$prog" in
- /* | [A-Za-z]:\\*) ;;
- */*) prog="`pwd`/$prog" ;;
-esac
-
-# The input.
-input="$1"
-shift
-case "$input" in
- /* | [A-Za-z]:\\*)
-    # Absolute path; do nothing.
-    ;;
- *)
-    # Relative path.  Make it absolute.  Why?  Because otherwise any
-    # debugging info in the generated file will point to the wrong
-    # place.  This is really gross.
-    input="`pwd`/$input"
-    ;;
-esac
-
-# We don't want to use the absolute path if the input in the current
-# directory like when making a tar ball.
-input_base=`echo $input | sed -e 's|.*/||'`
-if test -f $input_base && cmp $input_base $input >/dev/null 2>&1; then
-  input=$input_base
-fi
-
-pairlist=
-while test "$#" -ne 0; do
-   if test "$1" = "--"; then
-      shift
-      break
-   fi
-   pairlist="$pairlist $1"
-   shift
-done
-
-# FIXME: add hostname here for parallel makes that run commands on
-# other machines.  But that might take us over the 14-char limit.
-dirname=ylwrap$$
-trap "cd `pwd`; rm -rf $dirname > /dev/null 2>&1" 1 2 3 15
-mkdir $dirname || exit 1
-
-cd $dirname
-case "$input" in
- /* | [A-Za-z]:\\*)
-    # Absolute path; do nothing.
-    ;;
- *)
-    # Make a symbolic link, hard link or hardcopy.
-    ln -s ../"$input" . > /dev/null 2>&1 || ln ../"$input" . > /dev/null 2>&1 
|| cp ../"$input" .
-    ;;
-esac
-$prog ${1+"$@"} "$input"
-status=$?
-
-if test $status -eq 0; then
-   set X $pairlist
-   shift
-   first=yes
-   while test "$#" -ne 0; do
-      if test -f "$1"; then
-         # If $2 is an absolute path name, then just use that,
-         # otherwise prepend `../'.
-         case "$2" in
-          /* | [A-Za-z]:\\*) target="$2";;
-          *) target="../$2";;
-        esac
-        mv "$1" "$target" || status=$?
-      else
-        # A missing file is only an error for the first file.  This
-        # is a blatant hack to let us support using "yacc -d".  If -d
-        # is not specified, we don't want an error when the header
-        # file is "missing".
-        if test $first = yes; then
-           status=1
-        fi
-      fi
-      shift
-      shift
-      first=no
-   done
-else
-   status=$?
-fi
-
-# Remove the directory.
-cd ..
-rm -rf $dirname
-
-exit $status


hooks/post-receive
-- 
GNU Automake




reply via email to

[Prev in Thread] Current Thread [Next in Thread]