Skip to content

Commit

Permalink
Initial public version of autosetup
Browse files Browse the repository at this point in the history
Signed-off-by: Steve Bennett <steveb@workware.net.au>
  • Loading branch information
msteveb committed Dec 14, 2010
0 parents commit 4f671d8
Show file tree
Hide file tree
Showing 52 changed files with 59,545 additions and 0 deletions.
4 changes: 4 additions & 0 deletions .gitignore
@@ -0,0 +1,4 @@
jimsh0
config.log
config.h
.*.swp
35 changes: 35 additions & 0 deletions LICENSE
@@ -0,0 +1,35 @@
Unless explicitly stated, all files which form part of autosetup
are released under the following license:

---------------------------------------------------------------------
autosetup - An environment autoconfigurator

Copyright 2010 Steve Bennett <steveb@workware.net.au>

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:

1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials
provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE WORKWARE SYSTEMS ``AS IS'' AND ANY
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL WORKWARE
SYSTEMS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

The views and conclusions contained in the software and documentation
are those of the authors and should not be interpreted as representing
official policies, either expressed or implied, of WorkWare Systems.
19 changes: 19 additions & 0 deletions Makefile
@@ -0,0 +1,19 @@
# This is a convenience Makefile to do a few admin tasks
all:
@echo "Try 'make manual' or './autosetup --help'"

VERSION := $(shell ./autosetup --version)

dist: clean
@./autosetup --install=tmp/autosetup-$(VERSION) >/dev/null
@tar -C tmp -czf autosetup-$(VERSION).tar.gz autosetup-$(VERSION)
@rm -rf tmp
@echo Created autosetup-$(VERSION).tar.gz

PAGER ?= less

manual:
./autosetup --manual | $(PAGER)

html:
./autosetup --manual=asciidoc | asciidoc -o autosetup.html -
32 changes: 32 additions & 0 deletions README
@@ -0,0 +1,32 @@
From the autosetup v0.6.0 User Manual
=====================================

autosetup is a tool, similar to autoconf, to configure a build system for
the appropriate environment, according to the system capabilities and the user
configuration.

autosetup is designed to be light-weight, fast, simple and flexible.

Notable features include:

* Easily check for headers, functions, types for C/C++
* Easily support user configuration options
* Can generate files based on templates, such as Makefile.in => Makefile
* Can generate header files based on checked features
* Excellent support for cross compilation
* Replacement for autoconf in many situations
* Runs with either Tcl 8.5+, Jim Tcl or just a C compiler (using the
included Jim Tcl source code!)
* autosetup is intended to be distributed with projects - no version
issues

autosetup is particularly targeted towards building C/C++ applications on Unix
systems, however it can be extended for other environments as needed.

autosetup is *not*:

* A build system
* A replacement for automake
* Intended to replace all possible uses of autoconf

Try: ./autosetup --help or ./autosetup --manual
15 changes: 15 additions & 0 deletions TODO
@@ -0,0 +1,15 @@
Wed 15 Dec 2010 07:31:39 EST
----------------------------

Expand the examples

Have 'autosetup --init' generate a typical Makefile.in if one doesn't exist.

autosetup should have a "meta-parse" phase to check that auto.def
includes modules before options, and has an options section.

Consider if we can get away without config.sub and config.guess.
Projects which need them could provide their own.
Many projects do not.

Unit tests.

0 comments on commit 4f671d8

Please sign in to comment.