<!--?xml version="1.0" encoding="UTF-8"?-->
<feed xmlns="http://www.w3.org/2005/Atom" xml:base="http://msteveb.github.io/autosetup/">
  <id>http://msteveb.github.io/autosetup/</id>
  <title>autosetup News</title>
  <updated>2022-08-18T00:00:00Z</updated>
  <link rel="alternate" href="http://msteveb.github.io/autosetup/" type="text/html">
  <link rel="self" href="http://msteveb.github.io/autosetup/feed.xml" type="application/atom+xml">
  <author>
    <name>steveb@workware.net.au</name>
    <uri>mailto:steveb@workware.net.au</uri>
  </author>
  <entry>
    <id>tag:msteveb.github.io,2022-08-18:/autosetup/articles/autosetup-071/</id>
    <title type="html">autosetup 0.7.1</title>
    <published>2022-08-18T00:00:00Z</published>
    <updated>2022-08-18T00:00:00Z</updated>
    <link rel="alternate" href="http://msteveb.github.io/autosetup/articles/autosetup-071/" type="text/html">
    <content type="html">&lt;p&gt;&lt;strong&gt;autosetup&lt;/strong&gt; v0.7.1 has been released.&lt;/p&gt;

&lt;p&gt;Changes since v0.7.0&lt;/p&gt;

&lt;p&gt;Major improvements:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;improve handling of CFLAGS, etc. See &lt;a href="/articles/handling-cflags/"&gt;CFLAGS Handling&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Minor changes and bug fixes:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;autosetup-find-tclsh will now build jimsh0 in the current directory&lt;/li&gt;
  &lt;li&gt;pkg-config: invocation of -print-sysroot is now correct&lt;/li&gt;
  &lt;li&gt;config.guess, config.sub: update to 2021-06-03&lt;/li&gt;
  &lt;li&gt;cc-check-tools: fix when command includes args&lt;/li&gt;
  &lt;li&gt;define-push: simplifies define management&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  <entry>
    <id>tag:msteveb.github.io,2022-08-17:/autosetup/articles/handling-cflags/</id>
    <title type="html">Handling CFLAGS</title>
    <published>2022-08-17T00:00:00Z</published>
    <updated>2022-08-17T00:00:00Z</updated>
    <link rel="alternate" href="http://msteveb.github.io/autosetup/articles/handling-cflags/" type="text/html">
    <content type="html">&lt;p&gt;One question that comes up quite often is, “What is the right way of handling
CFLAGS within &lt;a href="/"&gt;autosetup&lt;/a&gt; (also autoconf, automake, etc.) and the Makefiles for
the best user experience?” – &lt;a href="https://stackoverflow.com/questions/51606653/allowing-users-to-override-cflags-cxxflags-and-friends"&gt;stack overflow&lt;/a&gt;.
&lt;a href="https://www.gnu.org/software/automake/"&gt;automake&lt;/a&gt; spends some time on this –
&lt;a href="https://www.gnu.org/software/automake/manual/html_node/Flag-Variables-Ordering.html"&gt;26.6 Flag Variables Ordering&lt;/a&gt;
however it doesn’t answer all the questions that we might want answered.
Below is my attempt to untangle the confusion and provide a canonical best
way to handle CFLAGS with autosetup and make (or similar).&lt;/p&gt;

&lt;p&gt;One fundamental consideration is that CFLAGS (and CPPFLAGS, CXXFLAGS)
are all user-specified and the user’s wishes should be respected above all else.
This means that overwriting the user’s settings by changing CFLAGS or adding
additional flags after the user’s settings is not acceptable. With this in mind,
let’s look at all the points where flags to the C compiler could be specified.&lt;/p&gt;

&lt;p&gt;First the user can provide flags in the environment or on the command
line to &lt;code&gt;configure&lt;/code&gt; that we will name (1) and (2).&lt;/p&gt;

&lt;pre class="sh_unix"&gt;
$ CFLAGS=-Dd1 ./configure CFLAGS=-Dd2
&lt;/pre&gt;

&lt;p&gt;Next the user can provide flags in the environment or on the commandline to make or equivalent
that we will name (3) and (4).&lt;/p&gt;

&lt;pre class="sh_unix"&gt;
$ CFLAGS=-Dd3 make CFLAGS=-Dd4
&lt;/pre&gt;

&lt;p&gt;Finally if no explicit CFLAGS are provided by the user, use &lt;code&gt;-g -O2&lt;/code&gt;, which we will name (0).&lt;/p&gt;

&lt;p&gt;In addition, &lt;code&gt;configure&lt;/code&gt; may wish to add additional flags based on &lt;code&gt;configure&lt;/code&gt; tests or user
options, but these should not affect CFLAGS.&lt;/p&gt;

&lt;pre class="sh_autosetup"&gt;
# If supported, add this flag to compiler flags
cc-check-flags -std=c99
&lt;/pre&gt;

&lt;p&gt;And also we may we wish to add to CFLAGS within the makefile based on settings.
(This example could have been done in auto.def instead - it is just indicative).
Simlarly this should not affect the user’s CFLAGS settings.&lt;/p&gt;

&lt;pre class="sh_unix"&gt;
ifeq(@SHARED@,1)
# Except we don't want to append to CFLAGS
CFLAGS += -dynamic
endif
&lt;/pre&gt;

&lt;p&gt;Now what behaviour provides the best user experience? It is reasonable for (2) to override (1), especially
as CFLAGS may simply be set in the environment, so the explicit setting on the command line
should take precedence. Similarly, (4) should override (3) for similar reasons. It is also clear that
(4) should take precedence over (1) and (2) as this is a later phase. One thing that is not entirely
clear is whether (3) should override (2). For simplicity we will say it should as otherwise we would
need to distiguish beteen (1) and (2) in the Makefile. Finally, for CFLAGS all of (1) - (4) should
override (0). Now as we said that the user’s selection is the highest precedence, our command line
should clearly be.&lt;/p&gt;

&lt;pre class="sh_makefile"&gt;
cc &amp;lt;other-flags&amp;gt; $CFLAGS -c ... -o ...
&lt;/pre&gt;

&lt;p&gt;With the user’s selection last, overriding other flags that we will discuss shortly, and
where CFLAGS is defined as below, where the notation means that the first value that is set
is chosen.&lt;/p&gt;
&lt;pre class="sh_unix"&gt;
CFLAGS := (4) || (3) || (2) || (1) || (0)
&lt;/pre&gt;

&lt;p&gt;Note that CPPFLAGS can be specified by the user in all the same ways, except that there is no
default if not specified. The ordering between CFLAGS and CPPFLAGS is not clear, but we may as well follow
the gnu make approach:&lt;/p&gt;
&lt;pre class="sh_makefile"&gt;
# default
COMPILE.c = $(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c
&lt;/pre&gt;

&lt;p&gt;So then we have:&lt;/p&gt;
&lt;pre class="sh_makefile"&gt;
cc &amp;lt;other-flags&amp;gt; $CFLAGS $CPPFLAGS -c ... -o ...
&lt;/pre&gt;

&lt;p&gt;Now we only need to decide how configure-derived flags are set and made available to make.
While most autosetup checks don’t do anything with CFLAGS by default (it is up to the auto.def
developer to make the flags available), &lt;code&gt;cc-check-flags&lt;/code&gt; unfortunately (as of autosetup 0.7.0) 
modifieds CFLAGS. This is not OK as CFLAGS is a user value, and should not be touched by autosetup.
Therefore, as of autosetup 0.7.1, &lt;code&gt;cc-check-flags&lt;/code&gt; now adds to AS_CFLAGS instead (autosetup CFLAGS).
This makes the recommendation of how to handle CFLAGS in auto.def simple. All flags are added to AS_CFLAGS
(or AS_CPPFLAGS or AS_CXXFLAGS). e.g.&lt;/p&gt;

&lt;pre class="sh_autosetup"&gt;
# Adds to AS_CFLAGS
cc-check-flags -std=c99
# Add profiling if selected
if {[opt-bool profiling]} {
	define-append AS_CFLAGS -pg
}
&lt;/pre&gt;

&lt;p&gt;And finally we need to determine how flags can be added in the Makefile.
It is simplest if we use the same AS_CFLAGS as autosetup. e.g.&lt;/p&gt;

&lt;pre class="sh_makefile"&gt;
ifeq(@SHARED@,1)
AS_CFLAGS += -dynamic
endif
&lt;/pre&gt;

&lt;p&gt;Now the only remaining challenge is to ensure that the Makefile implements
our desired command line:&lt;/p&gt;

&lt;pre class="sh_makefile"&gt;
cc $(AS_CFLAGS) $(AS_CPPFLAGS) $CFLAGS $CPPFLAGS -c ... -o ...
&lt;/pre&gt;

&lt;p&gt;We &lt;em&gt;could&lt;/em&gt; start by trying this:&lt;/p&gt;

&lt;pre class="sh_makefile"&gt;
CFLAGS += @AS_CFLAGS@ @AS_CPPFLAGS@ @CFLAGS@ @CPPFLAGS@
&lt;/pre&gt;

&lt;p&gt;However this does not work as these will take precedence over the user flags.
As there is no way to prepend flags, we could try the cumbersome:&lt;/p&gt;

&lt;pre class="sh_makefile"&gt;
override CFLAGS := @AS_CFLAGS@ @AS_CPPFLAGS@ $(CFLAGS)
&lt;/pre&gt;

&lt;p&gt;But my preference is for the simpler solution to either take over
the implicit rule entirely, or replace the compile line. Therefore in gnu
make we can do:&lt;/p&gt;
&lt;pre class="sh_makefile"&gt;
# Use configure versions if not set during make
CFLAGS ?= @CFLAGS@
CPPFLAGS ?= @CPPFLAGS@
# ensure we get the ordering we need
COMPILE.c = $(CC) @AS_CFLAGS@ @AS_CPPFLAGS@ $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c
&lt;/pre&gt;

&lt;p&gt;(Note that we could changed to &lt;code&gt;CFLAGS = @CFLAGS@&lt;/code&gt; if we wanted to ignore (3))&lt;/p&gt;

&lt;p&gt;Alternatively replace the rule entirely:&lt;/p&gt;

&lt;pre class="sh_makefile"&gt;
# This may be gnu make only
%.o: %.c
        $(CC) @AS_CFLAGS@ @AS_CPPFLAGS@ $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c $&amp;lt; -o $@

# This may work better for bsd make
.c.o:
        $(CC) @AS_CFLAGS@ @AS_CPPFLAGS@ $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c $&amp;lt; -o $@
&lt;/pre&gt;

&lt;p&gt;This is implemented in &lt;a href="https://github.com/msteveb/autosetup/blob/master/examples/typical/Makefile.in"&gt;examples/typical/Makefile.in&lt;/a&gt;
If you have a suggestion why one Makefile approach is better than the others, please
make a comment in &lt;a href="https://github.com/msteveb/autosetup/discussions"&gt;Discussions&lt;/a&gt;.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>tag:msteveb.github.io,2020-09-23:/autosetup/articles/autosetup-070/</id>
    <title type="html">autosetup 0.7.0</title>
    <published>2020-09-23T00:00:00Z</published>
    <updated>2020-09-23T00:00:00Z</updated>
    <link rel="alternate" href="http://msteveb.github.io/autosetup/articles/autosetup-070/" type="text/html">
    <content type="html">&lt;p&gt;&lt;strong&gt;autosetup&lt;/strong&gt; v0.7.0 has been released.&lt;/p&gt;

&lt;p&gt;Changes since v0.6.9&lt;/p&gt;

&lt;p&gt;Major improvements:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;options: improved option handling, consistency and documentation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Minor changes and bug fixes:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Avoid adding duplicates to $CONFIGURE_OPTS and $AUTO_REMAKE&lt;/li&gt;
  &lt;li&gt;pkg-config: Improve cross compiling support, identify dependency issues, pkg-config-get-var&lt;/li&gt;
  &lt;li&gt;cc: $CXX is set to the empty string if not found rather than false&lt;/li&gt;
  &lt;li&gt;Add support for Tcl 8.7&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  <entry>
    <id>tag:msteveb.github.io,2019-06-21:/autosetup/articles/autosetup-069/</id>
    <title type="html">autosetup 0.6.9</title>
    <published>2019-06-21T00:00:00Z</published>
    <updated>2019-06-21T00:00:00Z</updated>
    <link rel="alternate" href="http://msteveb.github.io/autosetup/articles/autosetup-069/" type="text/html">
    <content type="html">&lt;p&gt;&lt;strong&gt;autosetup&lt;/strong&gt; v0.6.9 has been released.&lt;/p&gt;

&lt;p&gt;As there has been no release notes for a while, here are the changes since v0.6.2&lt;/p&gt;

&lt;p&gt;Major improvements:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;make-template: Support nesting, better conditionals, @define and @include&lt;/li&gt;
  &lt;li&gt;Make it possible to use a system-installed autosetup.  e.g. autosetup –sysinstall=/usr/local&lt;/li&gt;
  &lt;li&gt;Add initial pkg-config support&lt;/li&gt;
  &lt;li&gt;Add an extensible init system with autosetup –init=&amp;lt;type&amp;gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Minor changes and bug fixes:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;define-append now ignores empty values&lt;/li&gt;
  &lt;li&gt;define-append: improved check for duplicates&lt;/li&gt;
  &lt;li&gt;cc-shared: always use -fPIC&lt;/li&gt;
  &lt;li&gt;cc-shared: Add support for RPATH&lt;/li&gt;
  &lt;li&gt;cc-shared: Add $STRIPLIBFLAGS&lt;/li&gt;
  &lt;li&gt;system: add support for –runstatedir&lt;/li&gt;
  &lt;li&gt;system: add abs_top_srcdir and abs_top_builddir&lt;/li&gt;
  &lt;li&gt;options-defaults provides a way to change the default options from auto.def&lt;/li&gt;
  &lt;li&gt;Never honor prefix for /var, honor only if != /usr for /etc&lt;/li&gt;
  &lt;li&gt;make-template: Don’t write file if unchanged&lt;/li&gt;
  &lt;li&gt;Allow $autosetup_tclsh to select the preferred tclsh&lt;/li&gt;
  &lt;li&gt;Add cc-path-progs&lt;/li&gt;
  &lt;li&gt;cc: drop empty -cflags, -includes, -libs&lt;/li&gt;
  &lt;li&gt;cc: tests should use LIBS and LDFLAGS&lt;/li&gt;
  &lt;li&gt;opt-bool: allow boolean options multiple times&lt;/li&gt;
  &lt;li&gt;opt-bool: accepts -nodefault option&lt;/li&gt;
  &lt;li&gt;cc-lib: add cc-check-alloca and cc-signal-return-type&lt;/li&gt;
  &lt;li&gt;Fix cc-check-members for members of structs&lt;/li&gt;
  &lt;li&gt;Set srcdir to a fully qualified path&lt;/li&gt;
  &lt;li&gt;Add support for undefine&lt;/li&gt;
  &lt;li&gt;Allow –init and –install to be combined&lt;/li&gt;
  &lt;li&gt;Update config.{sub,guess} from automake-1.15&lt;/li&gt;
  &lt;li&gt;Add ‘cctest -nooutput 1’ to consider any compiler output as an error&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Incompatibilities introduced:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Syntax of @if statements has changed in make-template&lt;/li&gt;
  &lt;li&gt;Remove –with-xxx and –without-xxx synonyms&lt;/li&gt;
  &lt;li&gt;opt-val now returns a list&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  <entry>
    <id>tag:msteveb.github.io,2011-07-19:/autosetup/articles/autoconf-migration/</id>
    <title type="html">Automatic autoconf migration tool</title>
    <published>2011-07-19T00:00:00Z</published>
    <updated>2011-07-19T00:00:00Z</updated>
    <link rel="alternate" href="http://msteveb.github.io/autosetup/articles/autoconf-migration/" type="text/html">
    <content type="html">&lt;p&gt;Although &lt;strong&gt;autosetup&lt;/strong&gt; configurations are generally easy to create,
developers moving a complex project from &lt;strong&gt;autoconf&lt;/strong&gt; to autosetup
may still find it tedious to create the &lt;strong&gt;auto.def&lt;/strong&gt; configuration
file.&lt;/p&gt;

&lt;p&gt;To simplify migration from autoconf, autosetup includes a migration
tool which will automatically convert a &lt;strong&gt;configure.in&lt;/strong&gt; or &lt;strong&gt;configure.ac&lt;/strong&gt;
file to an auto.def file.&lt;/p&gt;

&lt;p&gt;Consider the following migration of &lt;a href="http://tinytcl.sourceforge.net/"&gt;tinytcl&lt;/a&gt;:&lt;/p&gt;

&lt;pre class="sh_unix"&gt;
$ cd tinytcl
$ ~/src/autosetup.git/migrate-autoconf
Migrating configure.ac to auto.def
Created auto.def. Now edit to resolve items marked XXX
$ ~/src/autosetup.git/autosetup --install
Installed autosetup v0.6.2 to autosetup/
I see configure, but not created by autosetup, so I won't overwrite it.
Use autosetup --init --force to overwrite.
$ ./autosetup/autosetup --init --force
I will overwrite the existing configure because you used --force.
&lt;/pre&gt;

&lt;p&gt;Now the migrated auto.def can be edited. Before editing it looks something like this:&lt;/p&gt;

&lt;pre class="sh_autosetup"&gt;
# Created by migrate-autoconf - fix items marked XXX

use cc cc-lib

options {
    shared=0         =&amp;gt;  {Build a shared library}
    history=0        =&amp;gt;  {Enable history support}
    debug=0          =&amp;gt;  {Enable debugging command: cmdtrace}
    fork=1           =&amp;gt;  {Do not use fork (no exec, etc.)}
    syslog=0         =&amp;gt;  {Build the syslog extension}
}

#                                               -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.


# XXX autosetup automatically substitutes all define'd values
#     In general, simply 'define' the value rather than using a shell
#     variable and AC_SUBST.
#
# XXX AC_SUBST TARGET_PLATFORM $ac_cv_host

# Checks for programs.

# XXX TINYTCL_IS_STATIC=1
if {[opt-bool shared]} {
    # XXX if test "x$enableval" = "xyes" ; then
    msg-result "* creating shared library"
    # XXX TINYTCL_IS_STATIC=
    # XXX fi
}
# XXX AC_SUBST TINYTCL_IS_STATIC $TINYTCL_IS_STATIC
...
&lt;/pre&gt;

&lt;p&gt;After editing, &lt;em&gt;auto.def&lt;/em&gt; looks more like:&lt;/p&gt;

&lt;pre class="sh_autosetup"&gt;
...
define TARGET_PLATFORM [get-define host]

define TINYTCL_IS_STATIC 1
if {[opt-bool shared]} {
    msg-result "* creating shared library"
    define TINYTCL_IS_STATIC 0
}
...
&lt;/pre&gt;

&lt;p&gt;The final edited version is available at in the autosetup repository
as &lt;a href="https://github.com/msteveb/autosetup/blob/master/examples/migration/tinytcl/auto.def.edited"&gt;auto.def.edited&lt;/a&gt;
along with additional examples.&lt;/p&gt;

&lt;p&gt;Note that &lt;strong&gt;migrate-autoconf&lt;/strong&gt; only understands a common subset of autoconf macros and
uses various heuristics to perform the migration. Nonetheless, migrate-autoconf can 
significantly speed up migration from autoconf.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>tag:msteveb.github.io,2011-07-14:/autosetup/articles/fossil-adopts-autosetup/</id>
    <title type="html">Fossil adopts autosetup</title>
    <published>2011-07-14T00:00:00Z</published>
    <updated>2011-07-14T00:00:00Z</updated>
    <link rel="alternate" href="http://msteveb.github.io/autosetup/articles/fossil-adopts-autosetup/" type="text/html">
    <content type="html">&lt;p&gt;Recently the &lt;a href="http://fossil-scm.org/"&gt;Fossil SCM&lt;/a&gt; has been adopted
by &lt;a href="http://wiki.tcl.tk/"&gt;Tcl/Tk&lt;/a&gt; as a replacement for CVS.  Now the
Tcl-based &lt;a href="http://msteveb.github.io/autosetup/"&gt;autosetup&lt;/a&gt; has
been adopted as the development configuration system for
&lt;a href="http://www.fossil-scm.org/"&gt;Fossil&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Fossil is similar to many open source projects that are required
to support a number of different platforms. The obvious approach
is to use autoconf and possibly automake, but &lt;a href="http://identi.ca/group/fossil#notice-76160895"&gt;many people&lt;/a&gt;
find that approach &lt;a href="http://www.mail-archive.com/fossil-users@lists.fossil-scm.org/msg04899.html"&gt;frustrating&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Some of the immediate benefits of autosetup are support for cross compilation
and easily allowing Fossil to be build with different options.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>tag:msteveb.github.io,2011-07-08:/autosetup/articles/msys-mingw-support/</id>
    <title type="html">MSYS/MinGW support</title>
    <published>2011-07-08T00:00:00Z</published>
    <updated>2011-07-08T00:00:00Z</updated>
    <link rel="alternate" href="http://msteveb.github.io/autosetup/articles/msys-mingw-support/" type="text/html">
    <content type="html">&lt;p&gt;Apparently there is considerable interest in supporting builds
within &lt;a href="http://www.mingw.org/wiki/MSYS"&gt;MSYS/MinGW&lt;/a&gt; for Windows
rather than cygwin or cross compiling MinGW from (e.g.) Linux.&lt;/p&gt;

&lt;p&gt;The main difficulty in supporting this platform is that MinGW
doesn’t support fork/exec (or actually vfork/exec) and thus &lt;code&gt;exec&lt;/code&gt;
support in the bootstrap jimsh is limited.&lt;/p&gt;

&lt;p&gt;Fortunately, autosetup has few requirements of &lt;code&gt;exec&lt;/code&gt; and these
limitations can be worked around, along with other differences
such as the use of backlashes in paths.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;autosetup running under the MSYS bash shell&lt;/strong&gt;&lt;/p&gt;

&lt;pre class="sh_unix"&gt;
$ cd examples/typical
$ ./configure
No installed jimsh or tclsh, building local bootstrap jimsh0
Host System...i686-pc-mingw32
Build System...i686-pc-mingw32
C compiler... gcc -g -O2
C++ compiler... c++ -g -O2
Checking for stdlib.h...ok
Checking for long long...ok
Checking for sizeof long long...8
Checking for sizeof void *...4
Checking for sys/un.h...not found
Checking for regcomp...not found
Checking for waitpid...not found
Checking for sigaction...not found
Checking for sys_signame...not found
Checking for sys_siglist...not found
Checking for syslog...not found
Checking for opendir...ok
Checking for readlink...not found
Checking for sleep...not found
Checking for usleep...ok
Checking for pipe...not found
Checking for inet_ntop...not found
Checking for getaddrinfo...not found
Enabling UTF-8
Building static library
Created config.h
Created Makefile from Makefile.in
&lt;/pre&gt;
</content>
  </entry>
  <entry>
    <id>tag:msteveb.github.io,2011-07-06:/autosetup/articles/autosetup-062/</id>
    <title type="html">autosetup 0.6.2</title>
    <published>2011-07-06T00:00:00Z</published>
    <updated>2011-07-06T00:00:00Z</updated>
    <link rel="alternate" href="http://msteveb.github.io/autosetup/articles/autosetup-062/" type="text/html">
    <content type="html">&lt;p&gt;&lt;strong&gt;autosetup&lt;/strong&gt; has seen continuing improvements recently, so I've bumped the version to 0.6.2&lt;/p&gt;

&lt;p&gt;Here is a summary of recent changes:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;make-autoconf-h is now deprecated in favour of the more flexible make-config-header&lt;/li&gt;
  &lt;li&gt;New: cc-check-defines, cc-check-decls&lt;/li&gt;
  &lt;li&gt;New module: cc-lib contains cc-check-lfs and cc-check-endian&lt;/li&gt;
  &lt;li&gt;Include files are automatically checked as needed&lt;/li&gt;
  &lt;li&gt;Improved documentation&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  <entry>
    <id>tag:msteveb.github.io,2011-05-05:/autosetup/articles/2011-05-05/</id>
    <title type="html">New Website Launched</title>
    <published>2011-05-05T00:00:00Z</published>
    <updated>2011-05-05T00:00:00Z</updated>
    <link rel="alternate" href="http://msteveb.github.io/autosetup/articles/2011-05-05/" type="text/html">
    <content type="html">&lt;p&gt;The &lt;strong&gt;autosetup&lt;/strong&gt; project has a new &lt;a href="http://msteveb.github.io/autosetup/"&gt;website&lt;/a&gt;
with better, more approachable documentation.&lt;/p&gt;

&lt;p&gt;The new website includes separate documentation for &lt;a href="/user/"&gt;users&lt;/a&gt; and &lt;a href="/developer/"&gt;developers&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>tag:msteveb.github.io,2010-12-14:/autosetup/articles/2010-12-14/</id>
    <title type="html">Initial release of autosetup</title>
    <published>2010-12-14T00:00:00Z</published>
    <updated>2010-12-14T00:00:00Z</updated>
    <link rel="alternate" href="http://msteveb.github.io/autosetup/articles/2010-12-14/" type="text/html">
    <content type="html">&lt;p&gt;The initial version of &lt;strong&gt;autosetup&lt;/strong&gt; — a faster, better autoconf — has been released.
Find it on github at &lt;a href="https://github.com/msteveb/autosetup/"&gt;https://github.com/msteveb/autosetup/&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
</feed>

