My favorites | Sign in
Project Home Wiki Issues Source
READ-ONLY: This project has been archived. For more information see this post.
Project Information
Members
Links

Quick Access: Visit Code Repo (https://github.com/PatHuang/dotAux) to browse or download dotAux code.


dotAux Overview

dotAT (.AT) - Practices to see how Autotools (Autoconf/Automake/Autotest) could work. dotAux (.AUX) - Utilities and Macros. Macros are helpful to you, but utilities may be not. Utilities are just practices and would be useful to you when you understand them and know why development automation and test automation are important.

The important idea behind dotAux is portibility and independence and automation, the most exciting bigest benefit brought by GNU build system (Autotools, Autoconf/Automake/Autotest, Libtool, etc). Although you need to have Autotools installed in software product development phase, but Autotools (any of Aotuconf/Automake/Autotest, Libtool) is not required at all when your users configure, build, install and use your software product in field, not required too in your testing and release phase, while you are delivering portable and robust high quality software products developed in C, C++ or shell script. Similarly project dotAux and Dolem provides the same vision helping you in development phase, and also maybe in testing and release phases.

Keep it in mind - Autotools is not required to be installed on user's machine. Users of course don't care what tools you are using to make products. So why not use powerful excellent toos as your AUX to reduce effort and improve quality and accelerate time to market?

Copyright and License

Copyright (c) 2009-2014 The dotAux Project. All rights reserved.

Sub projects: dotAT (.AT) - Most tests on tests/ subfolder are taken from autoconf-2.69/tests/, so license kept no changes. dotAux (.AUX) - MIT License for shell/application code, plus dotAux's M4 macros.

See COPYING and Macros.COPYING for the details.

dotAux Utilities Overview

To understand what talk better, probably you know alredy about shell script, make, makefile, GNU build system (Autotools); know GnuLib would be even better.

  1. dotAux utility "dapkg" or "dotAux Package" is a simple tool for package management mornitoring file level changes of a package, and helping packing a package for archive.
  2. dotAux utilities "dotaux" and "damk" are useful when you use GNU build systems (Autotools: Autoconf, Automake, Autotest, M4). "dotaux", the real "dotAux" could be an alternative place to build-aux and m4 folders, keeping your source files clean, wiping away intermediate artifacts generated by Autotools which won't be necessary until release. While "damk", "dotAux Make" could be shortcut which simplifies traditional configure, make, make clean, make install, etc, while keeps VPATH and installation path configurable.
  3. dotAux utility "dadlm" or "dotAux Dolem" is the one for importing GnuLib into your project or package, while keeps license choice and modules configurable. GnuLib is a good cross system portibility solution, together with Autoconf, anyone doesn't need to invent a brand new wheel for portibility handling anymore. As far as license would be concerned, you could simply choose LGPL modules from GnuLib for your own use in any ways. With "dadlm" to make an installed version of GnuLib instead of the source code level import takes advantage such as shared among multiple projects and package, or simple compiling and building options, etc. So you don't need to import GnuLib for each project one by one, because technically on a single system (determined by what kind or version of CPU architecture, OS, compiler vendor, libs) only one copy of GnuLib should be enough.
  4. dotAux utility "daln" or "dotAux link" is a simple tool as "ln", while "daln" helps looking for source (i.e. source file or folder of "ln -s <source> <dest>") automatically with pattern for identifying when you cannot remember path exactly or the path is too long to type the full path name, etc.

You can see project Dolem, Effo etc, for typical useage of the above tools and Autotools and GnuLib practices for the details.

dotAux Macros Overview

To understand what we talk better, probably you know alredy about shell script, make, makefile, Autoconf, Autotest; know M4 would be even better.

  1. Browser dotAT of dotAux helps a lot to understand how M4, Autoconf's M4SH and AT (Autotest) work.
  2. dotAux "DAS", or "dotAux M4SH/AS" macros is based on M4SH. Actually not only macros, but also portable shell functions as building blocks or libs would be presented as macros for use. Below "DAT" and "DAC" are based on "DAS" and Autoconf/M4SH/AT hence. "DAS" macros are used for developing portable shell scripts which may run in any systems when "/bin/sh" or "sh.exe", etc, is available (Linux, UNIX-like, Cygwin, and so forth). All dotAux utilities "dotaux", "dadlm", etc, were developed using DAS. So the source code of these utilities are just macros, and hence released shell scripts are portable to run in any systems have a "sh".
  3. dotAux "DAC", or "dotAux AC" macros is based on dotAux DAS and M4SH and Autoconf. Also provides portable shell functions. DAC macros are used for developing the well-known configure.ac of projects dotAux, Dolem, Effo, or your own configure.ac.
  4. dotAux "DAT", or "dotAux AT" macros is based on dotAux DAS and M4SH and Autotest. Also provides portable shell functions. DAT macros are used for developing the well-known autotests (local.at, testsuite.at, XXXX.at) of projects dotAux, Dolem, Effo, or your autotests for your own projects, performing software quality assurance.

You can see project this project dotAux, and others such as Dolem, Effo etc, for typical useage of the above Macros practices for the details.

dotAux Getting Started

dotAux portable scripts intend for use by convention of ./configure && make && make install.

See INSTALL

In fact, dotAux utilities were developed based on macros, so they should be portable and able to work directly without "./configure && make && make install". See them in "dotaux" folder of each package, e.g., dotaux/dotaux, or dotat/dotaux.

TBD

dotAux Utilities Usage

dapkg: Usage and optinos

dapkg:   -h|--help               Display help info
  -V|--version            Display version info
  -a[pa_folder]|--aux=pa_folder
                          pa_folder: Your local Package dotAux folder to store
                          stuff from dotAux distro
  -p|--pack               function pack, build a package tarball. If not
                          specified, default function is setup, to setup
                          initial Package dotAux folder.

dotaux: Usage and optinos

dotaux:   -h|--help               Display help info
  -V|--version            Display version info
  -a[da_folder]|--aux=da_folder
                          da_folder: Your local dotAux folder to store stuff
                          from dotAux distro
  -c|--clean              function clean, clear all and clear autotools
                          generated files such as aclocal, etc. If not
                          specified, default function is setup, to setup
                          initial dotAux folder.
  -k[namelist]|--keep=namelist
                          namelist: Dont' clear files or folders in namelist
                          which looks like "name1,name2,name3..."

damk: Usage and optinos

damk:   -h|--help               Display help info
  -V|--version            Display version info
  -a[da_folder]|--aux=da_folder
                          da_folder: Your local dotAux folder
  -c                      config, is equal to ./configure --prefix=/abc.
  --clean                 clean, is equal to make clean
  --dclean                dclean, is equal to make distclean
  --aclean                aclean, is equal to make clean && make distclean
  -m                      make, is equal to make.
  --cmake                 cmake, is equal to make check.
  --dmake                 dmake, is equal to make dist.
  --amake                 amake, is equal to make && make check.
  -i                      inst, is equal to make install.
  --tinst                 tinst, is equal to make DESTDIR=pwd-inst install.

dadlm: Usage and optinos

dadlm:   -h|--help               Display help info
  -V|--version            Display version info
  -d[dlm_folder]|--dolem=dlm_folder
                          dlm_folder: Your local Dolem folder to store stuff
                          from gnulib
  -c|--clean              function clean, clear Dolem
                          and gnulib, etc. If not specified, default function
                          is setup, import 
                          gnulib.
  -k[namelist]|--keep=namelist
                          namelist: Dont' clear files or folders in namelist
                          which looks like "name1,name2,name3..."

daln: Usage and optinos

daln:  <link> <pattern>
This utility links a source (file or folder) to current location as <link>
  link                    Source and Dest (the link) name.
  pattern                 Source path pattern.
  -h|--help               Display help info
  -V|--version            Display version info

TBD

dotAux Macros Usage

See project dotAux, Dolem, Effo, etc, for details of practice use of dotAux Macros.

# Use dotAux DAS:

m4_import([dmeta/das.m4]) # this import dotAux DAS; and optional:
DAS_SHELL_FN   # import shell function libs as well.

then here write your appliation macros for shell script, configure.ac, or autotests (.at's).

# Use dotAux DAC:

m4_import([dmeta/das.m4]) # this import dotAux DAS.
m4_import([dmeta/dac.m4]) # this import dotAux DAC; and optional:
DAC_SHELL_FN   # import shell function libs as well. It also imports DAS shell function libs.

then here write your appliation macros for configure.ac.

# Use dotAux DAT:

m4_import([dmeta/das.m4]) # this import dotAux DAS.
m4_import([dmeta/dat.m4]) # this import dotAux DAT; and optional:
DAT_SHELL_FN   # import shell function libs as well. It also imports DAS shell function libs.

then here write your appliation macros for autotests (.at's)

TBD


Visit Code Repo (https://github.com/PatHuang/dotAux) to browse or download dotAux code.

Powered by Google Project Hosting