Autoconf Data Representation
I've been running into some trouble when trying to use autoconf with some programs I've written in scheme shell, and I think my general solution may be useful enough to include in future versions of autoconf. The problem I have is that autoconf represents all of its data as strings, while scsh requires commands that are passed to (exec ...) to be lists. Autoconf has @INSTALL@ -- /usr/bin/install -c while I need @INSTALL@ -- '(/usr/bin/install -c) or @INSTALL@ -- '(/usr/bin/install -c) I modified my copy of autoconf to add the following extra variables: @INSTALL_atom@ -- /usr/bin/install -c @INSTALL_list@ -- '(/usr/bin/install -c) (I added the atom option so that I can have directory names rendered as scheme strings.) This could be extended to other languages that want data that isn't structured as a simple string (for example, exec() calls in C). I think it'd probably be useful to include something like this in the next version of autoconf, since scripting languages which have structured data, such as scsh and perl, are increasing in popularity. Here's the code I modified to get this to work. I'm not a great shell programmer, so I'm sure someone else can find a more elegant solution than this. I did make it backwards compatible with the old autoconf variable names, although that runs the risk of variable name collision. (Both of these macros are in acgeneral.m4) m4_define([AC_SUBST], [m4_ifvaln([$2], [$1=$2])[]dnl _AC_SUBST([$1], [s,@$1@,[$]$1,;t t]) _AC_SUBST([$1_atom], [`makesexp atom $1 [$]$1`,;t t]) _AC_SUBST([$1_list], [`makesexp list $1 [$]$1`,;t t])dnl ])# AC_SUBST # ... m4_define([_AC_OUTPUT_FILES], [ # Makesexp function makesexp() { type=[$]1; symbol=[$]2; shift shift printf -- s,@${symbol}_${type}@, if test [$]type = list; then printf '( else printf \ fi while test [$]# -gt 1; do y=`echo [$]1 | sed -e 's/\/\\\/g'` if test [$]type = list ; then printf \ fi printf -- [$]y if test [$]type = list ; then printf \ else printf fi shift done y=`echo [$]1 | sed -e 's/\/\\\/g'` if test [$]type = list; then printf \ fi printf -- [$]y if test [$]type = list ; then printf \) else printf \ fi } # ... -Ryan Collins ([EMAIL PROTECTED])
Re: Autoconf Data Representation
From: Ryan Collins [EMAIL PROTECTED] Date: Wed, 5 Dec 2001 03:35:25 -0500 (EST) @INSTALL_atom@ -- /usr/bin/install -c @INSTALL_list@ -- '(/usr/bin/install -c) An interesting idea. Hmm, wouldn't it be better to use a syntax that doesn't infringe on the user name space? Also, something where the terminology isn't scsh-specific, and where the semantics are easier to grok instantly. For example, how about using the following syntax instead? @INSTALL@ -- /usr/bin/install -c @INSTALL@ - /usr/bin/install -c @(INSTALL)@ - (/usr/bin/install -c) I think it'd probably be useful to include something like this in the next version of autoconf, Likewise, though perhaps it should be the version after next. I'm sure someone else can find a more elegant solution than this. But you're the one most motivated to get it to work, and you have the most experience, so how about if we help you to make it more portable? (Elegance is secondary. :-) Once you have it whipped into shape we can then install it into the next version (or so) of autoconf. m4_define([_AC_OUTPUT_FILES], [ # Makesexp function makesexp() First off, I'm afraid that we can't use shell functions. They aren't portable. printf -- s,@${symbol}_${type}@, Also, the shell printf command isn't portable. y=`echo [$]1 | sed -e 's/\/\\\/g'` This isn't portable, because some 'echo' implementations treat backslashes in a funny way. Others treat '-n' and some other options in a funny way. Here's a more portable way to do that sort of thing: script='s,,\\,g' quotedform=''`sed $script EOF $unquotedform EOF `'' (Don't you just love shell syntax? :-) But we really don't want to run 'sed' for each variable; it's better to issue those commands just once, for all such variables. A couple more points. In proposed patches, please observe the autoconf namespace conventions as documented in the manual. Also, for a change like this, please start with the latest test version, which you can get from ftp://alpha.gnu.org/gnu/autoconf/. Thanks again for your suggestion, and I hope you don't mind my trying to improve on it.
autoconfig 2.13 installation problems
I tried to install Autoconfig 2.13 on HP-UX 11.0, but I got a bunch of error messages. Can anyone tell me what might be wrong on my system? # make check rm -f autoconf autoconf.tmp sed -e 's,@''datadir''@,/usr/local/share/autoconf,g' -e 's,@''M4''@,/us r/bin/m4,g' -e 's,@''AWK''@,awk,g' -e 's,@''SHELL''@,/bin/sh,g' autoconf.sh autoconf.tmp chmod +x autoconf.tmp mv autoconf.tmp autoconf rm -f autoheader autoheader.tmp sed -e 's,@''datadir''@,/usr/local/share/autoconf,g' -e 's,@''M4''@,/us r/bin/m4,g' -e 's,@''AWK''@,awk,g' -e 's,@''SHELL''@,/bin/sh,g' autoheader.sh autoheader.tmp chmod +x autoheader.tmp mv autoheader.tmp autoheader rm -f autoreconf autoreconf.tmp sed -e 's,@''datadir''@,/usr/local/share/autoconf,g' -e 's,@''M4''@,/us r/bin/m4,g' -e 's,@''AWK''@,awk,g' -e 's,@''SHELL''@,/bin/sh,g' autoreconf.sh autoreconf.tmp chmod +x autoreconf.tmp mv autoreconf.tmp autoreconf rm -f autoupdate autoupdate.tmp sed -e 's,@''datadir''@,/usr/local/share/autoconf,g' -e 's,@''M4''@,/us r/bin/m4,g' -e 's,@''AWK''@,awk,g' -e 's,@''SHELL''@,/bin/sh,g' autoupdate.sh autoupdate.tmp chmod +x autoupdate.tmp mv autoupdate.tmp autoupdate rm -f ifnames ifnames.tmp sed -e 's,@''datadir''@,/usr/local/share/autoconf,g' -e 's,@''M4''@,/us r/bin/m4,g' -e 's,@''AWK''@,awk,g' -e 's,@''SHELL''@,/bin/sh,g' ifnames.sh i fnames.tmp chmod +x ifnames.tmp mv ifnames.tmp ifnames rm -f autoscan autoscan.tmp sed -e 's,@''datadir''@,/usr/local/share/autoconf,g' -e 's,@''PERL''@,/u sr/bin/perl,g' autoscan.pl autoscan.tmp chmod +x autoscan.tmp mv autosca n.tmp autoscan *** Error exit code 1 Regards, Alex _ Get your FREE download of MSN Explorer at http://explorer.msn.com/intl.asp
Re: needs help
Toni: Your testers don't need aclocal, autoconf, or automake installed unless they are making changes to Makefile.am or configure.ac. Once you generate configure that's all they need. If someone else's Makefile is running these tools, take it out, it's just plain wrong. The idea of Autoconf is that it creates a portable shell script configure that does all the work. Nothing but the bourne shell is required to generate the Makefiles. Robert Toni Moreno Giménez wrote: Hi to all , I'm new to the list, I have subscribed because i have a little troubles, and I need, help. each time I type make on my project (after doing ./configure ) the Makefile runs another. all autotools system. this is: aclocal autoconf automake ./configure and finally begins the source compilation. is not a big trouble to me. but is it for my betatesters. (they need all auto* tools ) and some times the don't have. I have been looking for ./configure.in in other projects, but i can't find how to disable it. I'm trying to build a first beta release of my project. and I need a lot your help. Lots of thanks. -- = Toni Moreno Giménez = Pje de las rosas nº 22 Vilassar de Mar (Barcelona) Spain CP: 08340 -- Robert Boehne Software Engineer Ricardo Software Chicago Technical Center TEL: (630)789-0003 x. 238 FAX: (630)789-0127 email: [EMAIL PROTECTED]
Re: needs help
On Wed, Dec 05, 2001 at 05:13:22PM -0600, Robert Boehne wrote: Toni: Your testers don't need aclocal, autoconf, or automake installed unless they are making changes to Makefile.am or configure.ac. Once you generate configure that's all they need. If someone else's Makefile is running these tools, take it out, it's just plain wrong. The idea of Autoconf is that it creates a portable shell script configure that does all the work. Nothing but the bourne shell is required to generate the Makefiles. There are a number of (badly-broken-by-design) makefiles that add dependencies to regenerate the configure script. -- Thomas E. Dickey [EMAIL PROTECTED] http://invisible-island.net ftp://invisible-island.net
TELECOM GEAR Blowout! 11956
Title: Telecom Equipment BLOWOUT! 68 D/240SC-T1's Rev. 3 New In Box (w/Full Warranty) Guaranteed Lowest Price 11 CP/12's New In Box (w/Full Warranty) Guaranteed lowest prices on all Dialogic 12D/300SC-E1's New In Box (w/Full Warranty) 8 D/160SC-LS's 7 D/480SC-2T1's LNX-2000 W/64 Span T1's $44,595 EXS-T1C-1160 16 Span T1 Card $12,995 EXS-PRI-1100 ISDN Card $9,995 EXS-DSP-1100 DSP Card $9,495 LNX-T1C-1800 8 Span T-1 Card w I/O call for lowest price LNX-DSP-1400 MFDSP Card w I/O call for lowest price 34 AG T1's call for lowest price Best Offer! AS5300 VoIP Gateway 96 Voice Channels/4T1 call for lowest price CALL 888.652.0638 orFAX 208.275.5246 Under Bill s.1618 TITLE III passed by the 105th U.S. Congress This email adheres to the laws of the United States To remove yourself from this list, please click here