www.archive-org-2014.com » ORG » A » A-A-P

Choose link from "Titles, links and description words view":

Or switch to "Titles and links view".

    Archived pages: 109 . Archive date: 2014-09.

  • Title: A-A-P project: install and develop software
    Descriptive info: .. the.. project.. A-A-P makes it easy to locate, download, build and install software.. It also supports browsing source code, developing programs, managing different versions and distribution of software and documentation.. This means that A-A-P is useful both for users and for developers.. More about A-A-P.. News.. 2004 April 9.. :.. Aap article in Linux Journal.. An introduction to Aap can be found in the article "Automating tasks with Aap", in the May 2004 edition of the Linux Journal Magazine.. www.. linuxjournal.. com.. The two main subjects are maintaining a web site and building programs.. The article was written by Bram Moolenaar.. Update: The article is available online.. here.. 2013-09-15: The latest ZIP version of Aap is 1.. 093, Agide 0.. 124.. In CVS are Aap 1.. 093 and Agide 0.. Older News.. Aap.. Agide.. The Aap program executes recipes.. It is a kind of super-make program.. In a recipe you describe how to perform a certain task.. Like a Makefile it contains dependencies and build commands.. Additionally, many powerful features are included, so that you can use a recipe to:.. Build a program by just specifying the program name and the source files.. Maintain a web site (the A-A-P site is generated and uploaded with a recipe).. Download the latest version of files.. Distribute files to several servers at once.. Obtain a module from CVS.. Commit changes to CVS; add and remove files automatically.. Generate and filter files.. Build several variants and on multiple platforms with little effort.. Advantages.. Using a recipe works better than a Makefile in many ways:.. Uses signatures to avoid trouble with timestamps.. Integrated support for up- and downloading.. Avoids shell  ...   idea of what you can use Agide for.. Click on this image to see a screendump of Agide being used for debugging:.. Framework.. Agide is not a monolitic application.. Separate tools can be plugged in.. Thus you are not forced to use one editor.. Each tool implements part of the plugin interface.. This interface makes it possible for a tool to communicate with other tools, without the need to know how the other tools work.. For example, an editor can set a breakpoint in a file, without knowing what kind of debugger is being used.. And the debugger can show the PC position in a source file, without knowing what editor is being used.. Currently only a few things are supported:.. Using an A-A-P recipe for a project.. Debugging with gdb.. Editing with Vim.. Unix.. Hopefully volunteers will help adding their favorite tool.. Since it is relatively easy to add a tool, this list is expected to grow quickly.. Not everything has been properly tested, use with care!.. A-A-P is funded by.. stichting NLnet.. The project leader is Bram Moolenaar (Bram AT a-a-p.. org).. The A-A-P pages:.. home.. news.. Zimbu award.. documentation.. Recipe examples.. Aap manual.. Agide tutorial.. features.. presentations.. download.. Aap version log.. Agide version log.. ported apps.. packages.. maillists and chat.. plan and tasks.. SourceForge pages.. Aap todo list.. Agide todo list.. architecture.. use cases.. modules.. interfaces.. design decisions.. tools overview.. script languages.. build tools.. Install tools.. issue tracking.. version control.. browse tools.. IDEs.. various tools.. Zimbu!.. KwMap.. net - browse the Keyword Map of A-a-p.. org.. funded by:.. Send comments on this page to Webmaster AT a-a-p.. Hosted by.. Also known as.. Agide..

    Original link path: /
    Open archive

  • Title: A-A-P features
    Descriptive info: Features.. A-A-P has four main features:.. download and install software packages.. search for packages that can be installed.. a framework for developing software.. manage and distribute different versions of packages.. At the end is a list of.. overall features.. The.. Use cases.. also provide information about the features.. They show what A-A-P can be used for in a step-by-step explanation.. NOTE: At this moment not much has been implemented yet.. What is written here are the current ideas of how it's going to work.. This may change over time.. 1.. Installing software.. Sometimes it's easy to install software: Download a package and invoke the command to install it.. However, this only works when that package was made to fit on your system.. Today there are so many different Operating Systems and optional packages that it becomes difficult to decide which package will work on your system, what settings you must use and which additonal packages need to be installed.. A-A-P provides a simple and uniform way to install software on any system.. It all starts with a small file, called a recipe, that provides information about where the relevant files for the package can be found.. Depending on your OS and your desires, A-A-P will download the required files.. This may be another recipe, a Makefile or a zip archive.. When a ready-to-run executable is available this is downloaded.. But it's also possible to obtain the sources, tweak the settings and compile (remembering the settings for the next version).. For example, for Linux it may get an RPM file and invoke the rpm program with the right arguments.. And when this package depends on another package, A-A-P checks if it's already present and is the required version.. If not, that package is installed first.. Similar applications exist.. For example, the Debian apt-get and FreeBSD ports system.. But these only work on one OS.. This makes it difficult for developers to create and maintain packages for several systems.. And users need to learn a different method for every system they use.. A-A-P provides a uniform way, and can still use the OS-specific methods where needed.. The recipe contains all the information that A-A-P needs about the package.. It contains rules about how to handle different properties of a system.. For example, there might be one generic source archive in a CVS system, a patch that is required for Mac OS on an ftp server, and a check if you installed service pack 6a if you're running Windows NT 4.. 0.. When installing software requires intermediate files, A-A-P will take care of cleaning up afterwards.. A-A-P also includes security features and tests to verify that the software was installed as intended, without side effects.. It should also be possible to use A-A-P without an internet connection when the software is located on CD-ROM.. In the extreme A-A-P can be used to install a whole system.. top.. 2.. Finding software.. There are many places on the internet to find the latest software you want to use.. When A-A-P recipes have been made, you need to be able to find them.. A-A-P provides a way to search for recipes by name and by functionality.. Collections of A-A-P recipes will be available on the internet.. You can find them on a web site for your Operating System, or use a search engine to locate the one you are looking for.. This includes packages which can be handled by a generic wrapper recipe.. E.. g.. , if you are running FreeBSD, A-A-P will search the available FreeBSD packages and the FreeBSD ports collection.. For projects that were not made for  ...   together with others and one for personal work.. Interfaces to various version control systems are provided.. Automatic configuration for different systems is provided.. Like autoconf, but working on many operating systems.. A portable script language is used instead of Unix commands.. A set of standard checks is provided to make this easier.. The same script language can be used in recipes.. This replaces the use of system-specific shell commands in makefiles.. 4.. Distributing software.. When you make changes to a project A-A-P provides you with the actions to make a patch and send it to the right place.. Or just keep it locally so that you can apply it to the next version.. You can do version control without having to know the exact commands for it.. The main problem with working on open source projects is managing all the different versions.. Projects often work with a central version control system and many developers who try to get their changes included in that system.. A-A-P supports that, but also provides the alternative that individuals can make their own version available.. This makes it easy to exchange half-finished ideas and fixes that were not included in the central version yet.. You can invite others to have a look at your solution, without the need to create a patch and send it each time you make an improvement.. For maintainers of the central version A-A-P provides tools to package a new version of a project for others to install (with or without A-A-P) and release it to the world.. This includes sending (generated) files over the internet to a http or ftp server, uploading generated packages for distribution and announcing the new version in various places.. This works similarly to building an application.. It can also be used to maintain a web site, for example.. "push" distribution is done by providing an interface to existing systems that implement this.. Generation of standard packages (e.. , RPM) is automated as much as possible.. Overall Features.. A-A-P is portable over many systems.. At least most Unix variants, MS-Windows and possibly the Macintosh.. A-A-P is open source, free software.. Most of it is under the GNU GPL.. Interfaces and libraries are more free.. A-A-P is not a monolitic program.. It is made out of separate modules with clear interfaces.. Most of the work is done by existing tools.. Since network connections are slow and unreliable - and when using a laptop - a local copy of a file is often required.. A-A-P caches files, obtains a new version when available and cleans up files that have not been used recently.. The more alternatives there are, the more choices a developer has to make.. Making all these choices slows down development.. Therefore A-A-P provides a preferred set of modules.. Many people will be satisfied with most of these modules, but will still be able to use a different module where they have a preference.. A-A-P is available in a command-line version and in a GUI version.. The command-line version works on a console and over a telnet connection.. The GUI version is easier to use, but requires a windowing system.. A-A-P maintains a set of preferences.. These are global to all projects but local to the user or system.. This specifies where specific tools, libraries, documentation files, etc.. can be found.. This greatly reduces the need to configure a package when building or installing it.. English is used in the original code.. Provisions are made to add translations through the use of message files.. Reliability is considered more important than fancy features.. A-A-P is a tool you can rely on..

    Original link path: /features.html
    Open archive

  • Title: A-A-P project News
    Descriptive info: Update: The article is now available online.. [Hmm, that no longer works; try.. ].. 2003 October 8.. Zimbu awards presented.. The winners of the Zimbu awards are: Adriaan de Groot, Rui Lopes and Joerg Beyer.. They have worked hard to make.. more powerful, faster, reliable and simpler to use.. Since Adriaan works not far from where Bram lives, he was handed the award personally.. You can find more info and pictures on the.. Zimbu Award page.. 2003 September 16.. List of packages added.. A page has been added to list the packages that can currently be installed with.. aap --install.. package-name.. The list has been growing steadily and it is not obvious which package is available on what system.. You can find the list.. 2003 September 4.. Installing Aap made easier.. download page.. has been updated.. Now there is a step-by-step explanation for installing.. and.. on Unix, MS-Windows and Mac OS X.. The procedure has been simplified, especially for.. Most work can be done automatically with.. aap --install agide.. 2003 August 20.. Configuration support added.. The new.. :conf.. command can be used to detect features of the system and compiler.. There are checks for header files, functions, libraries, etc.. This works like using autoconf, except that you can omit the step to generate a configuration script.. This feature is still being developed: more checks will be added, the syntax may still change a little and there is not much.. yet.. Your input is welcome! The actual checks are developed in cooperation with.. SCons.. 2003 July 4.. Aap version 1.. The next version should be even more powerful, faster, reliable and simpler to use.. If you help making this possible you will not only receive appreciation from Aap users, but have a chance to make money as well! The three Zimbu awards are worth 444, 222 and 111 euro.. See the.. Aap 1.. After more than a year of development Aap version 1.. 0 is ready.. The functionality it offers is comprehensive.. This is illustrated by the documentation: The PDF version is now over 170 pages long.. Building software, up- and downloading, version control and much more has been implemented.. 2003 June 4.. Aap 0.. 9: first Beta release.. Now that Aap is getting more and more stable, it is time to start beta testing.. This means that development will concentrate on getting the release ready.. Testing and updating the documentation should help to find the problems that need to be fixed.. Minor feature enhancements may still be included.. 2003 May 20.. Examples, wildcard expansion and rsync support.. Two larger examples have been made to show how Aap can be used.. One is for building and installing Exuberant Ctags.. The other for maintaining a web site, with automatic uploading and version control.. You can find them on the.. examples page.. Wildcard expansion is now done in most places where a file name is used.. This avoids the need for using the Python glob() function and makes many recipes simpler.. Avoiding wildcard expansion has become a bit more difficult.. Read about the backgrounds for this choice in.. design decision 28.. Support for using rsync has been added.. This mostly works like scp, but only those parts of a file that have actually changed are transferred.. Rsync is used like scp, just use "rsync://" instead of "scp://" and it should work.. The same ssh connection is used.. I am now using rsync to upload the A-A-P website.. While testing it I accidentally included a directory name, and discovered that it was created automatically.. The code that does this for scp apparently also works for rsync.. Using rcp is also possible, but this hasn't been tested yet.. 2003 May 15.. BOF session at O'Reilly conference.. The proposal to organize a.. BOF session on A-A-P.. has been accepted.. It will take place on Thursday evening July 10, from 8 to 9 pm.. This is directly after the.. BOF session on SCons.. , in the same room.. A nice occasion for people to talk about modern building tools! More information about the conference.. 2003 May 1.. Automatic Package install.. Aap can now download and install a package automatically.. For example, if a recipe wants to copy a file with secure copy and there is no "scp" command to be found, Aap will install it for you.. The same is done for "cvs".. More packages can be added, a generic mechanism is being used.. Read more about it in a new chapter of the user documentation:.. 2003 Mar 24.. Presentation at O'Reilly conference.. A-A-P will be presented at the O'Reilly Open Source Convention.. Bram Moolenaar will do a talk with the title.. A-A-P: A Software Build Facility for the Internet Era.. This is on July 10 in Portland, OR, USA.. More information about the conference.. This will be a good occasion to discuss the 1.. 0 release of Aap, which is planned to be available by then.. 2003 Mar 13.. Agide version 0.. 1 released.. An important milestone: The first usable version of Agide is available.. Agide stands for A-A-P GUI IDE.. This is the second pillar under the A-A-P project.. The IDE is designed as a framework in which separate tools can work together.. This makes it very flexible.. Currently Vim and gdb are supported, making it possible to debug C programs.. to get an idea how it works.. The current version is just a starting point.. It is easy to add more tools, thus with help from volunteers Agide should grow pretty fast.. 2003 Feb 7.. FOSDEM handout.. I made a two page leaflet about A-A-P, to be handed out at the FOSDEM conference in Brussels.. It contains a few short examples, to give the reader some idea of what A-A-P can be used for.. Since FOSDEM is a place where  ...   you must use the cvs commands for now.. CVS access will be added to the Recipe Executive soon, then it will be even simpler.. 2002 June 27.. automatic dependency checking added.. Compiling C and C++ programs is now much easier: The recipe executive will figure out include file dependencies automatically.. This works without doing anything extra.. And the dependencies are automatically updated when an include file is changed.. This does require "gcc" at the moment.. But another dependency checker can be defined with the ":autodepend" command.. Part of this addition is automatic detection of file types.. This works with rules that check the file name suffix, match the file name with a regular expression or check the first line of the file for a script name.. If everything else fails, a Python script can be used to detect the file type.. 2002 June 17.. various features added.. The development of the recipe executive continues.. Among the new features are indexing a variable.. The first item from the list of sources is obtained with $(source[0]), for example.. The variables used in build commands have changed.. The different kinds of quoting are now available everywhere.. The default quoting depends on the command used.. For a shell command attributes are omitted and quotes added that fit the shell used.. $sh_in and $sh_out are no longer available, use $source and $target.. Variables can now be assigned a value from the command line.. This is especially useful for selecting variants.. 2002 June 8.. variant support added.. The ":variant" command offers the possibility to build two or more variations of the same program.. For example a debug and a release version.. The intermediate files are stored separately, thus when switching between variants not everything needs to be rebuild.. An implicit variant is for the system type, so that building can be done for several systems without the need to specify anything.. 2002 June 3.. A-A-P presented at SANE 2002.. A-A-P was presented at the SANE 2002 conference in the form of a poster.. Quite a few people were interested in what A-A-P is about.. This was also the first appearance of Zimbu.. page for details.. 2002 May 24.. A-A-P can upload itself.. The recipe executive now includes enough features to be able to upload itself to sourceforge and to generate and upload the files for this web site.. The features above what "make" supports now include:.. Automatic downloading of source files.. Caching downloaded files.. Checking for updated files by md5 signature.. Finding and executing matching build rules.. Various commands for copying and moving files (also remote).. Many things are still untested though.. USE WITH GREAT CARE!.. 2002 May 17.. Maillists created.. a-a-p-dev.. a-a-p-user.. maillists have been created.. A-A-P developers and users can exchange messages on these lists.. An archive is also available.. maillist.. page.. Source files available.. The very first archive with source files is available.. This is for the Recipe Executive.. Requires Python.. The files are available from.. SourceForge.. WARNING: Almost nothing has been tested, USE WITH GREAT CARE!.. 2002 May 2.. Monthly status.. In April the work on implementing A-A-P has started.. After inspecting several alternatives, a first version of the recipe format was defined.. It is a mix of Makefile and Python.. The plan to use SCons as a base for the recipe executive was abandoned.. [edited Feb 2003] The structure of SCons does not fit the need of A-A-P.. [/edited] Instead, the executive is being written from scratch, using parts of SCons where feasible.. Working on the implementation already caused the recipe format to be adjusted.. This fine-tuning will continue the coming months.. Ingo Krabbe has started work on the cross referencer.. It looks like A-A-P is fully on track with the plan for version 1.. 2002 April 17.. First shot at the.. recipe file format.. The recipe file format stands central in A-A-P.. A first design round has been done to make the basic choices.. A good impression of the recipe format can be obtained by reading the first shot at the.. The coming weeks implementation of tools that use the recipe will start, to check if the recipe format can meet the many demands for it.. 2002 April 8.. Plan for version 1.. written.. A plan has been written for the roadmap to get to version 1.. First version 0.. 1 is going to be made, which should be ready by September 2002.. A collection of work packages is defined and how much of each work package is done in version 0.. 1 and 1.. The work until version 0.. 1 is defined in more detail than the steps from version 0.. 1 to 1.. 2002 March 26.. and.. Modules.. online.. Uses cases have been written for a number of common tasks.. A use case goes step by step through a task and explains how it is done with A-A-P.. This shows how various users interact with A-A-P and how the task is executed by the modules of A-A-P.. This also functions as an explanation of how A-A-P will work.. 2002 March 15.. Design decisions.. online.. To be able to plan the A-A-P project, decisions have to be made about the choices that have a big impact.. The list of design decisions will be updated continuously.. You can follow the direction A-A-P is taking, and discuss about the arguments involved.. 2002 March 7.. Tools overview.. A-A-P intends to use existing tools as much as possible.. An overview is being made of tools which could be interesting, either to be included in A-A-P or just for ideas.. If you know a nice tool that's not in the list yet, send us a message!.. 2002 March 1.. the A-A-P project has started!.. First of all the web pages have been moved to sourceforge and are now filled with information..

    Original link path: /news.html
    Open archive

  • Title: Agide Tutorial
    Descriptive info: Agide Tutorial.. Agide is the A-A-P GUI IDE.. NOTE: Agide is still in the development phase:.. Only a few things work properly.. Only Unix, MS-Windows and Mac OS X are supported.. Contributions are welcome.. Nevertheless, it is useful for a number of tasks, especially debugging with Vim and gdb.. If you have not installed Agide yet:.. read this.. Index:.. Browsing.. Building and error messages.. Debugging.. First thing to do is to start Agide.. If it was properly installed this should work:.. agide.. Otherwise, try using the full path:.. ~/aap/Agide/agide.. py.. Instead of "~/aap" use the path where you ran CVS to obtain Agide (you may want to make an alias for "agide" to avoid having to type the path every time).. Creating a new project is done with the.. File/New Activity/A-A-P project.. menu item.. You will get a file selector.. Create a new directory.. aaptest.. (or use any name you like).. Enter that directory and type the file name.. main.. aap.. Click.. OK.. to create the project.. The result is a simplistic project with one source item and one target item.. Click on the.. +.. before "SOURCE" and "TARGET" to see what they contain:.. You obviously want to change the names.. Left-click in "source_file" to select it.. Wait a second and left-click on "source_file" again (don't do it too fast, avoid a double-click).. Now you can edit the name.. Use.. CTRL-U.. to delete the text and type.. hello.. c.. , then press.. Enter.. Do the same thing on "program" and change it to.. This is the whole project for now.. Save it with the.. File/Save activity.. Double-click on the "hello.. c" source item.. Gvim will be opened on "hello.. c", which is a new file.. Enter the C code of your hello program:.. Write the file with ":w CR ".. Now go back to Agide and point at the "hello" TARGET item.. Right-click the mouse to bring up a popup menu.. Select the.. Build.. item.. A console window will be opened and display the build commands:.. Now run your newly compiled program.. Again point to the "hello" TARGET item and right-click the mouse.. Select.. Execute.. from the popup menu.. An xterm window will be opened to run the program in:.. To play with the project you can try these:.. Double click on.. aaptest/main.. to edit the generated recipe.. Point to "SOURCE" and in the popup menu use.. Add file.. to add another source file.. Items.. tab in the Agide window.. Click on an item to bring it to the foreground.. First open a file with a nice amount of text.. Use the.. File/Open activity.. For the example we will use a help file from Vim.. This text file becomes a new activity.. Note that an activity can be anything you  ...   the cursor in gvim will jump to the location of the error.. Notes:.. Don't forget to save the file each time before building.. This is not done automatically (yet)!.. Currently only errors from gcc and Python are recognized.. This is defined in Agide/Console.. py for now.. We are first going to build the program for debugging:.. Point with the mouse to the.. entry of the Project, in the lower half of the Agide window.. Right click the mouse and select.. Add item.. An item "NEW" will appear.. Edit the name of this item and change it to.. CFLAGS.. Point to the new.. item, right click the mouse and select.. Add value.. Edit this item and change it to.. -g.. Build the program by right-clicking on.. and selecting.. Correct any compilation errors in.. and repeat the building until it succeeds.. Now you are ready to start debugging.. below the TARGET item.. Two windows will open:.. An xterm in which the debugged program will run.. It's completely empty at this moment.. The gdb console.. Here you can type gdb commands and see the results.. After startup gdb displays a few messages here:.. The gdb console has a toolbar.. This is what you can do with the items:.. Run - start running the program.. Cont - continue until the next breakpoint.. Step - enter function calls.. Next - step over function calls.. Finish - continue until the function returns.. First set a breakpoint.. Go to the gvim window, which should now be displaying hello.. Point to the line with "for" and click the right mouse button.. In the popup menu select "Set breakpoint".. The breakpoint is displayed as " " to the left of the line:.. In the GDB console window click on the.. Run.. icon.. The program will start running and stop at the breakpoint.. This is indicated with background highlighting:.. Now click on the.. Next.. to step through the program.. Watch the xterm with the output of the program while stepping through it.. While at a breakpoint you can inspect the value of a variable.. In gvim, point to the "i" variable (any of the five occurrences).. Keep the mouse pointer in the same position for about two seconds.. A small window will pop up to show the value of the variable:.. In this image the mouse pointer itself is not visible, it would be just left of the popup window displaying "5".. That should be enough to get you going.. A few more tips:.. Don't forget you can type.. any.. gdb command in the gdb console.. If there is something that doesn't work (yet), have a look at the Python code: Agide/Tools/DebugTool.. py.. You can directly open the debugger by giving the program name as an argument to Agide:.. agide ~/projects/vim/src/vim..

    Original link path: /agidetutor.html
    Open archive

  • Title: Zimbu award persbericht
    Descriptive info: Zimbu Awards.. 444 euro award for the best contribution to the A-A-P project:.. Adriaan de Groot.. 222 euro award for the most useful patch for Aap or Agide:.. Rui Lopes.. 111 euro award for the brightest idea for the A-A-P project:.. Joerg Beyer.. Press release:.. Dutch.. English.. From July to September 2003 contributions to the A-A-P project have been monitored.. An award was promised to those who helped the development of.. In October 2003 the three winners were selected.. This is why they deserve a Zimbu award:.. has tracked down a large number of problems and provided solutions.. He changed the documentation from SGML to XML and wrote an explanation about how to get the required tools for XML.. Adriaan added support for "libtool", helped implementing language modules and improved the robustness of several commands.. made.. the FreeBSD port of.. and supplied patches to make installing.. work a  ...   and improved the setup for testing.. Strangely not much of his code ended up in.. , but his suggestions were indispensible.. Joerg replied that he donates the money to the.. ICCF foundation.. , the charity that Bram Moolenaar promotes to help needy children in Uganda.. Besides the three winners all contributors at least deserve a big "thank you" for the time they invested to make.. They receive the appreciation from all.. users!.. Award presentation.. Since Adriaan de Groot works not far from where Bram Moolenaar lives, at the.. University of Nijmegen.. , the Zimbu award could be handed to him personally.. Here are a few pictures of the award presentation (click on an image for a full-size version).. Adriaan (left) receives the Zimbu Award from Bram.. No occasion without tart!.. Adriaan with his award and Zimbu himself.. The money for the Zimbu awards is provided by.. Stichting NLnet..

    Original link path: /zimbu_award.html
    Open archive

  • Title: A-A-P documentation
    Descriptive info: Documentation.. This is an overview of what A-A-P can do.. Also see the.. Use Cases.. , they show what A-A-P can be used for in a step-by-step explanation.. An introduction to Agide, the A-A-P GUI IDE.. Recipe Examples.. These give you a good idea what you can use Aap for.. Aap manual (HTML).. The manual for the Aap command in HTML.. There are three parts:.. This is useful to start learning to use the  ...   reference manual.. Complete details of every item (still to be organised and layout to be done).. Aap manual (PDF).. The manual for the Aap command in PDF (requires a PDF viewer, e.. , Adobe Acrobat Reader).. Esp.. useful if you want to print the manual.. Aap manual page.. The Unix-style manual page for the Aap command.. Planning.. The plan how A-A-P is going to be implemented.. Presentations.. Public appearances where A-A-P has been presented..

    Original link path: /documentation.html
    Open archive

  • Title: A-A-P Recipe Examples
    Descriptive info: These are examples for what can be done with A-A-P recipes.. This is not intended to teach you writing recipes, only a few things are explained.. See the Aap manual for a verbose explanation.. The tutorial is a good place to start learning Aap, it contains plenty of examples that are explained.. Short examples:.. Compiling a program.. Compiling two programs.. Two variants of a program.. Publishing a web site.. 5.. A Ported application.. 6.. Building on multiple platforms.. 7.. Generating files.. 8.. Version controlled sources.. Larger examples:.. Building and instaling Exuberant Ctags.. Maintaining a web site.. This recipe compiles the "myprog" program from C source files:.. :program.. myprog : main.. c version.. c work.. c util.. The ":program" command specifies that a program is to be build.. The first argument "myprog" is the name of the program.. The file names after the colon are the source files.. This is all that Aap needs to know to build a simple program.. The C compiler will be invoked with the default arguments.. The choice of compiler and the arguments can be changed in the system or user configuration file.. But mostly you do not need to change anything, the default setup is sufficient for simple programs.. Note that the list of files uses multiple lines.. No special characters are needed for line continuation or termination of the list.. The only requirement is that the lines have more indent than ":program".. There is no need to mention included header files, Aap finds them by inspecting the source files.. The dependencies will be detected automatically.. Thus if you change a header file, the source files that include this header file will be compiled.. On MS-Windows ".. exe" will automatically be added to "myprog".. To install your program use this command:.. aap install PREFIX=/usr/.. When there is no "install" target in the recipe, Aap will automatically generate one for you, using the file that the ":program" command generates.. The PREFIX variable specifies the top directory to install to.. The default is "/usr/local".. For a program the "bin" subdirectory is used.. The example will install "/usr/bin/myprog".. If you want to install on a remote machine set the DESTDIR variable to the URL of the root of the machine.. Example:.. aap install DESTDIR=scp://piet@puk.. org/.. This tells Vim to install "myprog" to "scp://piet@puk.. org/$PREFIX/bin/myprog".. Obviously you need to have write permission in this directory!.. The "uninstall", "clean" and "cleanALL" targets are also added automatically if you didn't specify one:.. aap uninstall undo the install aap clean clean up the generated files aap cleanALL clean up all the generated files, signatures and log files.. The "clean" target deletes the compiled program and intermediate files (the object files).. "cleanALL" is rather drastic: it deletes all "AAPDIR" and "build-*" directories, also when they have not been generated by the recipe.. Be careful with this!.. This recipe compiles the "foo" and "bar" programs.. Most sources files are in common while "foo.. c" and "bar.. c" are specific for each program.. all: foo bar COMMON = main.. c.. foo : $COMMON foo.. bar : $COMMON bar.. The COMMON variable is used to avoid typing the list of files twice.. On MS-Windows the "foo.. exe" and "bar.. exe" programs will be build.. Still, you can use the names without ".. exe" in the first dependency.. Aap remembers the unchanged name as an alias, so that the recipe is portable.. In case you need it, the $EXESUF variable contains ".. exe" on MS-Windows, on Unix it is empty.. :variant.. BUILD release OPTIMIZE = 4 target = myprog debug OPTIMIZE = 0 DEBUG = yes target = myprogd.. $target : main.. c ui.. The BUILD variable is used to select between a "release" and a "debug" variant.. The first one is the default.. To build a debug variant use the command "aap BUILD=debug".. The "release" variant sets $OPTIMIZE to level 4.. This means more than usual optimizing is done (the default is 2).. This mostly results in the compiler being invoked with "-O4".. For "debug" $DEBUG is set to "yes".. This mostly results in the compiler being invoked with "-g".. It also sets $OPTIMIZE to zero, which means no optimizing is done.. The object files for "release" and "debug" are stored separatly.. If you do:.. aap BUILD=release aap BUILD=debug aap BUILD=release.. You will see that the last command will not build anything.. The results from the first command are still  ...   kind of recipe used for porting an application.. The port recipe specifies a number of things by setting specific variables, such as the files to download and where to download them from.. This is sufficient for Aap to know what needs to be done to build the application and install it.. # A-A-P port recipe for Vim.. AAPVERSION = 1.. 0 PORTNAME = vim PORTVERSION = 6.. 1.. 004 MAINTAINER = Bram@vim.. org CATEGORIES = editors PORTCOMMENT = Vim - Vi IMproved, the text editor PORTDESCR EOF.. This is the description for the Vim package.. A very nice editor indeed.. You can find all info on http://www.. vim.. EOF.. # Where to obtain an update of this recipe from.. AAPROOT = http://www.. a-a-p.. org/ports/vim.. :recipe.. {fetch = $AAPROOT/main.. aap} WRKSRC = vim61.. # Vim doesn't use vim-6.. DEPENDS = gtk =1.. 2 2.. 0 | motif =1.. 2.. # GTK 2.. 0 doesn't work yet.. BUILDCMD = make TESTCMD = make INSTALLCMD = make install DESTDIR=$PKGDIR PREFIX = /usr/local MASTER_SITES = ftp://ftp.. org/pub/vim ftp://ftp.. us.. org/pub/vim PATCH_SITES = $*MASTER_SITES/patches DISTFILES = unix/vim-6.. tar.. bz2 extra/vim-6.. 1-lang.. gz PATCHFILES = 6.. 001 6.. 003 6.. 004.. # automatically inserted by "aap makesum".. do-checksum:.. :checksum.. $DISTDIR/vim-6.. bz2 {md5 = 7fd0f915adc7c0dab89772884268b030}.. gz {md5 = ed6742805866d11d6a28267330980ab1}.. $PATCHDISTDIR/6.. 001 {md5 = 97bdbe371953b9d25f006f8b58b53532}.. 003 {md5 = 0e000edba66562473a5f1e9b5b269bb8}.. 004 {md5 = 90e6ac3d029d3b97303049d5b8597fb0}.. # end.. The PORTDESCR variable is set to multiple lines with a " " assignment.. The MD5 checksums are automatically added by the port maintainer with the command "aap makesum".. Most of the items in a recipe are portable, nothing special needs to be done to build a program on many different platforms.. To make portability easier the $INCLUDE and $DEFINE variables are used.. Example:.. c INCLUDE = -Iheader DEFINE = -DNODEBUG.. The compiler action will understand the meaning of $INCLUDE and $DEFINE and translate them into what the compiler accepts.. For some compilers the "-I" may be changed to "/I:" and "-D" to "/D".. In those situations where the builtin mechanisms are not sufficient, Python conditionals can be used to select alternatives.. c @.. if.. OSTYPE == ".. mswin.. ": CFLAGS += /OPT:yes.. Sometimes it is easier to make a separate recipe for each platform and make one toplevel recipe that selects between them.. Specifying where they can be downloaded makes it easy for a user, he only needs to download the toplevel recipe:.. FTPBASE = ftp://ftp.. org/pub/vim.. {fetch = $*FTPBASE/aap/main.. aap} @.. posix.. ":.. :child.. unix.. aap {fetch = $*FTPBASE/unix/vim.. gz} @.. elif.. pc.. aap {fetch = $*FTPBASE/pc/vim.. zip//vim.. else.. :error.. OS not supported: $OSTYPE.. Note: automatic decompressing and unpacking a file from an archive has not been implemented yet.. This example reads a template file and replaces "@date@" with the current date and writes the result as a new file.. version.. h : version.. h.. in.. :cat.. $source |.. :eval.. re.. sub(.. '@date@'.. , DATESTR, stdin) ! $target.. :print.. Changed date in $target to.. "$DATESTR".. The second line contains two commands ":cat" and ":eval" in a pipe.. This works like in a shell: the output of the first command is used as the input for the second command.. The ":eval" command evaluates a Python function.. When used in a pipe the "stdin" variable holds the input.. The variable "DATESTR" is a standard variable, it contains the date in a standard format, for example "2002 Oct 14".. A-A-P will automatically recognize when $DATESTR has changed since the last time version.. h was generated.. A signature is made of the build commands and remembered.. This example shows source files that are under the control of CVS.. VERSION = 1.. 013 CVSROOT = :ext:$CVSUSER_FOO@cvs.. sf.. net:/cvsroot/foo FILES = COPYING README.. txt main.. aap *.. {commit = cvs://$CVSROOT} $FILES.. {logentry = updated for version $VERSION} $FILES.. Updating to the latest version is done with "aap fetch" or "aap checkout".. Committing local changes is done with "aap revise".. A-A-P will automatically add new files and remove deleted files.. Thus the list of files must contain exactly those files that are in the CVS repository.. In the example "*.. py" is used, thus you must make sure there are no Python files that are not to be checked in.. The user must set "CVSUSER_FOO" to his user name on the CVS repository.. This can be done in his personal default recipe "~/.. aap/startup/default.. aap".. ported applications.. SourceForge project.. visit the A-A-P presentation at:..

    Original link path: /examples.html
    Open archive

  • Title: A-A-P Recipe Executive
    Descriptive info: A-A-P home page.. A-A-P Recipe Executive.. Bram.. Moolenaar.. For.. version 1.. 090.. Copyright © 2002-2003 Stichting NLnet Labs.. The license for copying, using, modifying, distributing, etc this documentation and the A-A-P files can be found in.. Appendix A,.. License.. 2007 Aug 07 11:33:05 GMT.. Abstract.. This is the documentation for version 1.. 090 of the Recipe Executive, commonly known as the "aap" command.. It is part of the A-A-P project.. The web site of A-A-P can be found here:.. http://www.. The HTML version of this manual can be read on-line:.. org/exec/index.. html.. As a single file:.. org/exec/exec.. The PDF version of this manual can be found here:.. pdf.. The plain text version of this manual:.. txt.. Table of Contents.. I.. Tutorial.. Getting Started.. Compiling a Program.. Publishing a Web Site.. Distributing a Program.. Building Variants.. Using Python.. Version  ...   Issue Tracking.. 21.. 22.. Porting an Application.. 23.. Automatic Configuration.. 24.. Using Autoconf.. 25.. Automatic Package Install.. 26.. Debugging a Recipe.. 27.. Differences from make.. 28.. Customizing Filetype Detection and Actions.. 29.. Customizing Automatic Depedencies.. 30.. Customizing Default Tools.. 31.. Adding A Language Module.. III.. Reference Manual.. 32.. Aap Command Line Arguments.. 33.. Recipe Syntax.. 34.. Variables and Scopes.. 35.. Common Variables.. 36.. Assignments.. 37.. Attributes.. 38.. Filetype Detection.. 39.. Standard Modules.. The "D" Programming Language.. GNU Libtool.. The Qt Library.. 40.. Standard Tools.. 41.. A-A-P Python functions.. 42.. A-A-P Commands.. IV.. Appendixes.. A.. List of Tables.. items in a dependency.. Special characters in the ":print" command.. Install targets.. 2.. Settings for the install target.. Notation.. Naming scheme for variables.. Standard Variables.. Virtual Targets.. Sticky attributes.. 3.. supported check attribute values.. Variables of the D module.. Part I..

    Original link path: /exec/index.html
    Open archive

  • Title: A-A-P presentations
    Descriptive info: 2003 July 10: OSCON.. Bram Moolenaar did a presentation on A-A-P at the O'Reilly Open Source Convention.. This is a big conference, O'Reilly reports there are about 1500 attendees.. With eleven parallel tracks there are about 150 speakers, most of them open source developers.. A nice crowd.. You can find the slides with comments.. This is a 1.. 5 Mbyte PDF file.. It gives an overview of the Aap program with a few examples.. You can find the pictures.. 2003 February 8-9: FOSDEM.. The project leader of A-A-P visited FOSDEM 2003.. This was a free conference on open source and free software.. Among the speakers were Jon "Maddog" Hall and Richard M.. Stallman.. It took place on 8 and 9 February at the "Free university" in Brussels.. 2002 November 16-17: BSDCon Europe 2002.. A-A-P has been presented at the conference "BSDCon Europe 2002", November 15-17, Amsterdam.. Title of the presentation: "All For One Port, One Port For All".. More info about the conference on the.. conference web site.. You can now download PDF files of the.. paper.. and the.. slides.. 2002 May 27-31: SANE 2002.. SANE is an international conference on System Administration and NEtworking.. It was held in Maastricht,  ...   systems.. Apparently several people run into the problem that this works differently on various systems.. It would be very nice if A-A-P can hide the details from the developer, so that packages can be generated for various systems automatically.. The priority for this feature will be raised.. A-A-P is currently assuming that the user obtains the required files.. This is a "pull" system.. Someone asked about using a "push" method.. This would be needed for efficient worldwide distribution.. Although A-A-P has no plans to include this "push" method, an interface to an existing system would be appropriate.. Globe project.. , also presented at SANE, is an example of such a system.. The poster itself was already outdated, since it was created a month before the conference, and a few things already changed since then.. For example, Python expressions are now enclosed in backticks instead of square brackets.. You can view the poster (without corrections) in full glory using this.. PDF file.. (225 Kbyte).. The two pages about A-A-P that appeared in the conference proceedings can be found in this.. (90 Kbyte).. This was the first appearence of Zimbu, the mascotte of A-A-P.. The story behind it comes from a Dilbert cartoon:..

    Original link path: /presentations.html
    Open archive

  • Title: A-A-P downloading
    Descriptive info: Download and Install.. The A-A-P project consists of two main programs:.. : the program that executes recipes (stable).. : the A-A-P GUI IDE, a framework for developing software (under development).. To download and install Aap or Agide select one of these step-by-step explanations:.. on Unix.. on MS-Windows.. on Mac OS X.. Other items:.. Upgrading Aap and Agide.. , for when you already have.. installed.. Starting to use Aap.. , for a few hints about what to do after installing.. Browsing the source code in CVS.. Editing recipes with Vim.. Zsh completion for Aap.. If you have trouble installing.. or.. explain your problem in an e-mail and send it to Bram AT a-a-p DOT org.. For the.. version number we use 1.. 234 in the examples.. Replace that with the actual version number.. Installing Aap on Unix.. There are three methods to install.. on Unix:.. With the.. BSD port system.. A convenient method but it only works for FreeBSD.. Using the.. zip archive.. This installs a stable version.. Requires the "unzip" command or another program that can unpack a.. Using.. CVS.. This installs the latest version, which has not been tested much.. Use this if you want to join in with development or need a recent fix for a problem.. We silently assume that you already have Python installed on your system.. If not, then do that first.. If your system does not have a simple way to install Python look.. 1 Installing Aap on Unix using the BSD port system.. For FreeBSD a port is available for.. This is the most convenient method to install.. if you are able to use the port system.. Summary:.. su.. pkg_delete aap-1.. 234.. cvsup /usr/share/examples/cvsup/ports-supfile.. cd /usr/ports/devel/aap.. make install.. Explanation:.. Become root.. Delete an old package for.. if it exists.. This needs to be done before installing the new version, because it will delete the "aap" command.. Obtain the package name with "pkg_info | grep aap".. Then give this name to the "pkg_delete" command.. Make sure your ports tree is up-to-date.. This is usually done with the "cvsup" command.. FreeBSD handbook.. for instructions.. Go the directory of the.. port: /usr/ports/devel/aap.. Do "make install" to install this version of.. You may need to do "rehash" for your shell to find the new command.. 2 Installing Aap on Unix using the.. mkdir ~/tmp/aap.. cd ~/tmp/aap.. Download the aap-1.. zip archive from.. this.. page to ~/tmp/aap.. unzip aap-1.. zip.. /aap install.. Create a new directory to work in.. The location doesn't matter, we use "~/tmp/aap" as an example here.. Change to the new directory.. Use the file with the highest version number.. Put it in the new directory.. Unpack the.. zip archive in the same directory.. Skip this if you only install.. for yourself.. Install.. on your system.. If you want to install it just for your own use specify the directory to install to:.. /aap install PREFIX=$HOME.. If you want to uninstall.. use ".. /aap uninstall".. Use the same PREFIX argument as used when installing.. To uninstall a specific version use.. /aap uninstall VERSION=1.. It is safe to delete an older version, a newer version will not be damaged.. You can also manually delete the files, most of them are in "$PREFIX/lib/aap/Exec-1.. 234".. After installing.. you can delete the temp directory you used for unpacking the.. Note that you need to unpack the archive again if you want to uninstall.. without installing a new version.. 3 Installing Aap on Unix using CVS.. This requires a CVS client and a direct internet connection.. If you have never used CVS before, find info about CVS.. And about using CVS on SourceForge.. mkdir ~/aap.. cd ~/aap.. cvs -d:pserver:anonymous@a-a-p.. cvs.. sourceforge.. net:/cvsroot/a-a-p checkout Exec.. cd Exec.. Create a directory to store the module in.. Go to that directory.. Checkout the Exec module with a CVS command.. If you are asked for a password just hit Enter , there is no password.. If the above cvs command doesn't work (e.. , because of a firewall or a proxy), try this one first:.. net:/cvsroot/a-a-p login.. Go to the Exec directory that CVS created.. Note that the "-d" arguments specify two different CVS servers and may have a different version (complain to SourceForge if you don't like this!).. We experienced that "a-a-p.. net" has the most recent version.. The first cvs command should also work from behind a simple firewall, since it uses port 80.. Doesn't always work through a proxy though.. See the above links about CVS if it doesn't work.. Once you have obtained a version through CVS, updating to a newer version can be done with:.. cd ~/aap/Exec.. /aap uninstall cvs update.. Note: Do not rename the "Exec" directory, it will confuse CVS and updating to  ...   did when installing.. Go to above the top of the.. directory.. Delete all the files you unzipped.. Note that this assumes you didn't put any other files here!.. Installing Agide on MS-Windows.. First of all you need to install.. You can mostly do the rest of the work with.. This will install wxPython when needed.. If a previous version of.. was installed you need to type "A" at the prompt for overwriting.. If this doesn't work you may have to do a few things manually:.. You need a version of Python that works with wxPython.. Currently you can use 2.. 1, 2.. 2 or 2.. If you have an older version look.. wxPython needs to be installed.. Which one to use depends on your version of Python.. python -V.. to find out which one is installed.. Then select the version of wxPython to use here:.. If you have done the above you can try.. again.. Agide works well with a recent version of gVim.. If you do have gvim but it's an older version try installing a new version.. You can do this with.. aap --install gvim.. For debugging you need to install gdb.. Most people prefer to install the.. MingW package.. An alternative is using.. Cygwin.. Installing Aap on Mac OS X.. Mac OS X comes with Python installed, thus you don't need to worry about that.. open a terminal.. cd ~/Desktop/aap-1.. 234\ Folder.. sudo.. Delete "aap-1.. zip" and "aap 1.. 234 Folder" from your desktop.. Use your browser to download the aap-1.. It should appear on your desktop and be unpacked automatically.. Open a terminal to type shell commands in.. Change to the directory of the unpacked zip archive.. Note that the space in the file name needs to be escaped with a backslash.. sudo.. you need to type the administrator password.. Delete the downloaded and unpacked files Note that you need to unpack the archive again if you want to uninstall.. An alternative is to use the method described for.. Also look there for if you want to get the latest version from CVS.. Do the same as above, but instead of using.. use.. /aap uninstall.. Installing Agide on Mac OS X.. You need to have Python 2.. It is included with OS X 10.. 3, but OS X 10.. 2 comes with Python 2.. To check the version of Python use.. You can install Python 2.. 3 from.. this page.. If wxPython needs to be installed a window will popup in which you need to double-click "wxPythonOSX.. pkg" and follow the instructions.. Remarks:.. The Agide window sometimes appears behind the terminal it was started in, thus it looks like nothing is happening!.. If installing wxPython automatically doesn't work you can find it here:.. After that you can try.. Unfortunately there is no version of Vim available yet that properly integrates with.. Editing files may not work until this has been fixed.. Alternatively you can follow the instructions for.. But note that installing wxPython on Mac OS X works differently.. When you have.. installed upgrading is easy.. aap --install aap.. Note that this does not remove the files of an older version.. It does setup your system to use the new version.. You may still be able to use the older version by specifying the path to the right directory.. For deleting an older version locate the directory of where it was installed and delete it.. For Unix it is something like this:.. cd /usr/local/lib/aap rm -rf Exec-0.. 123.. For MS-Windows it is something like this:.. c: cd c:\Program Files\aap rmdir /s Exec-0.. After downloading read the README.. txt file.. It contains important remarks.. Documentation can be found in the "doc" directory as a collection of HTML files, a single PDF file and a plain text file.. This can also be found on-line, see the.. documentation page.. How about a proxy?.. If you are behind a firewall that uses a proxy server, you must tell Python where that server is.. This is done by setting an environment variable.. Here are a few examples:.. sh-like shell:.. export http_proxy="http://www.. someproxy.. com:3128".. Csh-like shell:.. setenv http_proxy "http://www.. Put one of these lines in your ~/.. cshrc, ~/.. profile or ~/.. shinit.. This is a common method, you might already have this setup for other applications.. Other useful items.. Browsing Aap source code in CVS.. If you just want to browse the source files, use.. this link.. to look into the CVS repository (be patient, viewcvs can be slow).. When editing a recipe with.. , you can use this syntax file for highlighting:.. aap.. Drop it in your "~/.. vim/syntax/" directory.. Zsh completion.. Doug Kearns has made a zsh completion function.. For info about using this see..

    Original link path: /download.html
    Open archive

  • Title: Aap Version Log
    Descriptive info: Aap Version Log.. This is a list of remarks about each version of Aap, most recent one first.. You might want to watch this if you are waiting for a problem to be fixed.. There is a separate version log for Agide.. Note that the most recent version may not be available yet.. 092.. Dec 14.. Fixed a problem with having "@" in the user name.. 2012.. 091.. May 17.. Before converting a time string to long, first convert it to float.. (Pavol Juhas).. Filetype.. py contained variable "as", which is a keyword in Python 2.. 5 and later.. Avoid a deprecation warning for the md5 library by Python 2.. 6.. (Leandro Lucarella).. Use $CC instead of "ld" as the default link command.. 2009.. August 7.. Remove "Error" as an exception, it's undefined.. (Anotonio Colombo).. When "cvs commit" fails with an error "Up-to-date check failed" don't try adding it.. When using an automatic dependency, the attributes of the file were not properly used to detect the check type.. Happens for ":program hello : hello.. c" and there is a hello.. h file with a specified check attribute.. 089.. January 13.. Adjust exception argument types for Python 2.. 5.. (Darren Bane).. 2006.. 088.. March 1.. Added $GROUPCOUNT: number of files handled at a time for upload/download.. The ":del" command expanded variables with attributes.. That causes problems if for $(target).. tmp.. Now leave out the attributes.. Added the "follow" option to ":tree" to follow symlinks.. 087.. February 9.. Using a weird file name causes glob() to fail can cause an internal error.. Now report the error to the user.. A ":tree" command without following command block would generate an internal error.. The ":tree" command didn't escape special characters in $name.. A file name with spaces could not be used.. 086.. February 5.. Building a shared library from C++ code didn't work.. Avoid an endless loop in the cxx_builddll action.. Added the "installname" attribute.. (Adriaan de Groot).. 085.. January 17.. Fixed simple but letal mistake in the qt module.. Another mistake in the qt module: Setting the environment variable $QTDIR didn't work.. 084.. January 4.. When joining a file name to a path for a remote upload use the same path separator that's already in the path instead of the one for the current system.. Avoids resulting in a mix of path separators.. Not all ftp servers can create directories recursively.. Added code to check for failing to create a directory and create the directory above it.. Untested.. Internal error: "objname" could be used without being set.. Uploading over ftp for a file that cannot be opened resulted in an internal error.. 2005.. 082.. December 14.. Updated the qt module to use the new bdir() function and make it look in more sensible places to find Qt.. Using ":attr" with an argument without a node name resulted in an internal error.. Starting a root shell didn't always work.. Was reading from output instead of input.. 081.. December 4.. A dependency on a URL didn't work, the URL was expanded like a normal file.. Obtaining a timestamp for a URL doesn't always work.. In that case use a very old time (time == 1) to make difference from the file not existing (time == 0).. 080.. November 29.. The default.. aap recipe contained two names not in double quotes.. ":conf write header DIR/config.. h" now creates DIR when needed.. Added bdir() function.. ":usetool" and ":toolsearch" only used the first directory where a package could be found.. 079.. August 16.. BUILDDLL_ACTION was not used since version 1.. 074.. This broke the MSVC tool.. 078.. August 12.. "aap -k" crashed after a build error.. $HOME was set to ".. aap" instead of the directory where ".. aap" resides.. ":quit" and ":exit" now accept an argument, which is used as the exit value of the program.. 077.. June 1.. "aap install" didn't work for MS-Windows.. Executing command in double quotes didn't work on MS-Windows.. 076.. May 30.. When ":progsearch" cannot find a command would get a TypeError.. Don't check for space in the command name when there is no command name.. Fixed various warnings for PyChecker.. Use $AAPYTHON in aap.. bat to avoid setting $PYTHON.. (Walter Briscoe).. 075.. March ?.. Avoid that when using aap.. bat the exit code %errorlevel% is set or cleared.. (Nick Sabalausky).. Feb 3.. When automatically creating a node for CVS it may fail when there are special characters in the node name.. Put the name in double quotes.. Remove "assertpkg ddepcheck" from D module.. Fix ddepcheck compiling on Linux.. (Lars Ivar Igesund).. 2004.. 073.. Dec 28.. When using ":usetool gcc" C++ object files were not linked with g++.. Python 2.. 4 parses URLs with rsync, but not in the way Aap expects it.. 072.. Oct 23.. When there is a space in the path to "gcc" then testing for MingW will cause an error.. Put the path to gcc in double quotes.. Make the aap.. bat script work from any directory.. (Cory Dodt).. Add support for building DLLs and static libaries for MSVC.. (Thore Karlsen).. Fix problems in the D module.. Improve the D depencency checker.. Better support for dlls in the dmd tool.. 071.. Oct 2.. Expanding wildcards without a match resulted in the item with wildcards to be used.. Now the result is empty.. When recursively deleting a symlink that points to a directory, delete the symlink, not the directory and its contents.. 070.. Sep 10.. The "builddllaction" and "buildlibaction" attributes were not used in the D module.. Work around a problem with the module scope not being available when get_build_recdict() creates a new scope.. (Tim Hemel).. The :execute command did not pass on the --nobuild argument.. This caused building to be done in executed recipes when it was not wanted.. Pass on a selection of the command line options to executed recipes.. 069.. Aug 26.. When using an unrecognized source file name after ":program" there was an error message for $LTOBJSUF not defined.. Define $LTOBJSUF in default.. aap to avoid that.. Add "dll" to the types that the build action supports.. Makes it possible to directly link with a shared library in a ":program" command.. The "builddllaction" and "buildlibaction" attributes were not recognized like "buildaction".. 068.. July 7.. When a C++ source file is compiled, this changes the building of a static library to use the action specified with "buildaction", which uses the build action instead of the buildlib action.. Use a "buildlibaction" attribute instead.. 067.. June 21.. When a file has the "binary" attribute, adding it with CVS will use the "-kb" argument, so that CVS treats it as a binary file.. When using a ":cd dir" command the "changedir" message in the log was wrong, it included "dir" twice.. Fixed: ":tree {option}.. " crashed Aap instead of giving an error message.. Fixed: the ":tree" command crashed Aap when encountering a directory that can't be read.. Now a warning message is given.. When looking for an action and a deferred action is found, do take the input filetype into account when obtaining the output filetype, and the other way around.. Updated the dmd tool and the d module to use define_action().. 066.. June 12.. When building fails, give a message where the logfile can be found.. Allow defining an action with the Python function define_action().. This allows specifying more things, such as functions that return the currently supported input and output filetypes.. Useful when the action defers work to another action that supports a different set of filetypes.. Allow marking an action as "primary", which means that it is the preferred action to turn its input filetypes to its output filetypes.. When searching for a route, also use primary actions when no route defined with ":route" was found.. Use this in default.. aap for lex and yacc.. Fixed: lex and yacc actions did not use $target.. 065.. May 10.. When the first command in a recipe has indent give a clear error message.. Scanning a C file for dependencies does not look in the directory of the source file for includes that use double quotes.. Do not look in the current directory by default, require using "-I.. ".. Allow setting $HASGCC to avoid the check whether gcc can be used to do the dependency check.. Updated tools to set $HASGCC.. 064.. Apr 27.. Don't recognize.. lib as Cobol, it's a library on Win32 systems.. RC-style expansion fails to result in nothing when the variable does not exist at all.. When using an "add_CPPFLAGS" attribute on a file, it may be added several times when actions are involved.. Only use an "add_VAR" attribute when it does not create duplicates.. 063.. Apr 19.. Update to the dependency checker for D.. For the ":tree" command use the current scope instead of creating a new scope, so that "Files += $name" works.. 062.. Apr 15.. Small correction for the D module.. Added the {continue} option to ":copy", ":move", ":del" and ":chmod".. 061.. Apr 13.. Include enhanced version of MingW tool.. (Richard Boulton).. Using "$_recipe.. var" would search for "var" in parent recipe.. Support "$/var": replace all slashes with backslashes.. Useful for MS-Windows shell commands.. Could not use module name in Python commands: `m_rectest.. testfunc()`.. Line markers preceded by a space were not recognized, resulting in error messages reporting a line number that is too high.. "buildaction" was not set for objects from C++ sources when compilation was skipped, resulting in linking to fail.. Added " always", " build" and " nobuild" sections in build commands.. Also added optional attribute arguments to ":route".. 060.. Mar 18.. Get an error in samefile() when a file doesn't exist.. Remove the support for using $var and $?var in Python code again.. John Williams is working on a better solution.. 059.. Mar 8.. Get an error when there is no.. netrc file and attempting to open an ftp connection.. Ignore the error.. Support using $var and $?var in Python code.. (John Williams).. Support $PARENTDIR and $BASEDIR.. (John Williams) Also add the parentdir() and basedir() functions.. 058.. Mar 4.. A few more improvements for the dmd tool.. Expanding -L$*LIBS resulted in "-L" when $LIBS is empty.. That is not what people expect.. Make rc-style expansion result in an empty string if the expanded variable is empty.. Installing with Python 1.. 5 gives an error message for compiling aapre.. Do not compile that file unless running Python 2.. Use the ftplib instead of urlretrieve() for downloading through ftp.. Makes it work with Python 1.. Cache an already opened ftp connection to speed up downloading and uploading a sequence of files to the same server.. 057.. Feb 18.. Add the $DIMPLIB variable to the dmd tool.. Update the d module to reflect the changes in the dmd tool.. When checking out a module with CVS and the directory of the module already exists but doesn't have a "CVS" directory, Aap tries to check out a module with an empty name.. The "cvs" command could not be executed when the path includes a space.. 056.. Feb 17.. When building a shared library from C++ sources the wrong link command is invoked.. Added the cxx_builddll action.. Minor correction to the dmd tool.. When downloading and a cached file would not be used, don't store the file in the cache.. Avoids that the cache is filled with files that will never be used.. Fix: When executing a recipe is interrupted, don't dump the stack.. 055.. Feb 1.. When using "aap -f url://recipe" and answering "n" to the question whether an existing recipe should be overwritten, Aap continued with the old recipe.. Now exit with an error message.. Updated the dmd tool, mainly to fix building with static libs.. 054.. Jan 18.. Added documentation for install_files() and uninstall_files().. Allow attributes on destination directory.. When installing Aap and the destination directory $PREFIX doesn't exist, offer creating it.. Setting $DESTDIR had no effect for installing.. 053.. Jan 7.. ":assign" did not handle a scope name.. 2003.. 052.. Dec 18.. The gcc tool did not handle libobject and dllobject files.. Added rectest 17 for this.. 051.. Nov 14.. Adjust the "d" module to automatically compile the ddepcheck program when necessary.. 050.. Nov 11.. Change the import of the "re" module to automatically fix the problem with the "pre" module of Python 2.. Added the import_re.. py file for this, so that all the tricks are in one place.. 049.. Nov 10.. Include ddepcheck.. d version 0.. 9.. Detecting a Debian system didn't work.. Check for the /etc/debian_version file instead of directory.. Added the get_html_images() function: Get list of images used in a HTML file.. 048.. Nov 5.. d in the distribution, so that it can be build when there is no internet connection.. Expand variables in the command line targets, so that you can do "aap '$BDIR/foo.. o'" to build an object file.. 047.. Nov 3.. When turning a string into a dictlist and it starts with an attribute, make an item with an empty name.. Makes it possible to give better error messages, e.. for ":assertpkg {optional} name".. Added $OSNAME, the part of $BDIR after "build-".. 046.. Oct 30.. Added a dependency checker for the D language.. It's installed as a package.. Changed rectest 16 to import a special module "rectest" instead of the "d" module to avoid problems.. Support putting attributes just after the ":" in ":program" and similar commands.. They appy to all sources that follow.. Speed up execution by optimizing a few string handling functions and using the old pre module with Python 2.. Included aapre.. py to avoid a depreciation warning.. 045.. Oct 29.. The error message from the check for gcc can be annoying when there is no "cc" command.. Only write it to the log file.. Add $LIBS to the build command of the msvc tool.. Added the sufadd() function: add a suffix to items that do not have a suffix yet or to all items.. Changed sufreplace() to add a suffix to an item that doesn't have a suffix if the first argument is None.. 044.. Oct 28.. Fixed: The libtool module wasn't handling {installdir} and {keepdir} correctly.. Fixed: The libtool module was using "ltexe" instead of "ltprogram".. Allow an empty $PKGNAME for when data files have to go into various directories below "share".. 043.. Added the kde module.. Fixed: "aap install" didn't work.. Was using $INNSTALL_EXEC instead of $INSTALL_EXEC.. 042.. Oct 14.. Added the ":log" command: write a message to the log file.. Added the {onestep} attribute: Build a program directly from sources.. Implemented for the d module and the dmd tool.. When a shell command fails don't repeat the command.. It can be long, obscuring the relevant error message.. 041.. Oct 13.. Add {global} to the rules in languages modules, otherwise they are not used.. 040.. Oct 9.. Fixed: ":sysdepend" concatenated all include directories into one.. Use $LIBTOOL instead of $libtool to specify the libtool command to be used.. 039.. Oct 8.. Fixed: A ":copy {recursive}" command failed on an empty directory.. Support $DEBUG in the dmd tool and the d module.. Added a chapter to the reference manual for tools.. Explain the dmd tool.. 038.. Oct 3.. Implemented the "-I" or "--include" argument, which was already documented.. 037.. A few improvements in the libtool module.. Added the qt module.. A few modifications in the D language module.. 036.. Oct 1.. When src2obj() is given an invalid "sufname" argument give an error message instead of crashing.. Moved the support for libtool from default.. aap to the libtool module.. A few modifications to the D module.. (mostly by Lars Ivar Igesund).. For ":asroot" read one character at a time, so that prompts are echoed.. 035.. Sep 30.. Added $AAPSYSDIR, so that the system directory to look for startup recipes, tools and modules can be changed.. Expanded and corrected documentation for language modules.. Moved docs for standard modules to a new chapter in the reference manual.. 034.. Sep 29.. Renamed the "dlang" language module to "d".. Use the scope name "m_d" instead of "dlang".. Thus "m_" is prepended to the name of the module to get the scope name.. Instead of letting an imported module check if the module was already found elsewhere, let the ":import" command do this.. Fixed: do_Debian_pkg() used int() instead of ord().. When assigning to a variable name that is in use as a scope: give a warning.. When appending to a scope give an error.. When searching for tools, use directories in the user home directory, /usr/local and the Aap directory only.. Do not use the normal Python search path.. Fixed: Using ":program" and ":lib" with the same target name was not possible, even though the library would get a different file name.. 033.. Sep 25.. In the commands of an action, the "_up" scope now also searches in the recipe where the action was defined, its parent, etc.. Added the ":import" command.. (Adriaan de Groot) Added the "modules" directory and searching various directories for modules.. Added the ":toolsearch" command.. Replaces code in the startup recipe and makes it avaiable to modules.. Added the "dlang" language module and the dmd tool.. Added support for different build actions for ":lib" and ":dll" by setting $BUILDDLL_ACTION and $BUILDLIB_ACTION.. 032.. Sep 22.. Refactored some of the code to update targets.. It had grown into long and complicated code.. Added the ":sysdepend" command.. Used to figure out dependencies and handle error messages for missing files.. This was previously done in default.. It also handles searching in various directories, either explicitly specified or the directories from $INCLUDE.. Added the "searchpath" option to ":update": search for the target in a list of directories.. Fixed: When updating dependencies failed in such a way that an (invalid) output file was generated, the updating could be skipped with a next invocation of Aap, because old signatures could still be valid.. For the package recipes, allow specifying a version number.. For example: "aap --install aap Version=1.. 021".. Fixed: When an "objectprefix" was specified the "objectsuffix" was prepended.. src2obj() uses $FT_OBJSUF, where "FT" is the filetype of a source file.. Also works for $DLLOBJSUF, $LIBOBJSUF and $LTOBJSUF.. Allows a language to specify different object file suffixes.. 031.. Sep 16.. suffix() did not ignore attributes.. This made the test for adding "-E" to do a dependency check fail, causing gcc to fail for ".. h" files.. The gcc tool only defined a compile action.. Now also define a build action, otherwise linking doesn't work.. Also use "g++" or "gxx" for C++.. 030.. Sep 12.. Added test for automatic dependencies being generated and requiring to be scanned again.. Added test for building a source file twice with a different $CPPFLAGS attribute.. Also test the clean target.. 029.. Sep  ...   files, ignore differences in the scheme used, so that switching between "scp://" and "rsync://" does not cause all files to be published again.. NOTE: signatures of previous Aap versions will be invalid thus cause publishing everything again, use "aap --touch publish" to avoid that.. Made the MSVC tool work good enough that it passes the tests.. Still needs much more work!.. Fixed: Installing a package didn't work when the path to Aap includes a space.. Added quotes around Global.. aap_rootdir.. 148.. May 20.. Added the LOGENTRY variable: default message for CVS commands.. Especially useful when removing a file, since a file that is no longer used can't have a logentry attribute.. Made variable names a bit more consistent.. Use only upper case names for variables used by Aap itself.. Removed "CMD" from $CVSCMD, $RCPCMD, $SCPCMD and $RSYNCCMD.. Renamed $aapversion to $AAPVERSION.. Renamed $CACHE to $CACHEPATH.. Renamed $targetarg to $TARGETARG.. Renamed $cache_update to $CACHEUPDATE.. 147.. May 19.. Changed "abort" choice to "quit".. Makes it possible to add an "all" choice later.. Expand wildcards in places where a file name is expected.. This avoids the need to use the Python glob() function in most cases.. It does require escaping wildcards in rare situations.. Added the wildescape() function to avoid wildcards to be expanded.. Added the expand2list() and expand2dictlist() functions to expand wildcards in a string (usually a variable).. Special characters can now be escaped with $(x).. This works for all characters, that makes it very simple to use.. No need to lookup in the manual that, for example, $bar has to be used for "|".. Added initial support for up- and downloading with "rcp" and "rsync".. 146.. May 16.. When publishing to a local directory, create that directory when needed.. Makes it consistent with publishing to scp://.. Also add the {mkdir} attribute to the ":copy" and ":move" commands.. Removed the default checkin message "Done by A-A-P" for CVS.. If a file was modified you need to enter the message.. 145.. May 15.. When using CVS, create a ~/.. cvspass file when it doesn't exist.. Otherwise the first time CVS is used it will fail.. Put back "-E" in the gcc command to figure out dependencies.. Otherwise it won't work for header files.. Added the has_targetarg() function: check if a target has been specified as an argument.. 144.. May 13.. When generating dependencies with gcc don't use "-E -MM" but "-MM" only.. Works around a bug in gcc 3.. 1 on Mac OS X.. Improved the output of "aap comment".. Add targets from ":program", ":dll" and "lib".. Sort the list and insert spaces to align the comments.. When "{constant}" is used with ":fetch" this now implies "{usecache}".. If the file never changes we might as well use a cached copy.. Removed the support for renaming for the old "AAP" directory to "AAPDIR".. Added the $AAP variable: Command to start Aap.. Useful for a command like ":asroot $AAP install".. Made the ctags package available.. Uses Exuberant Ctags 5.. Should work on MS-Windows and Unix systems.. Fixed: When doing ":execute x.. aap all" and then ":execute x.. aap install" the targets would be build twice.. Use updated signatures when possible, the old signatures have been deleted when building a target.. Added the "cleanmore" target: also cleanup generated files that are distributed.. Replaces the confusing "distclean" target.. Added the "{nodist}" attribute for ":program", ":dll" and ":lib": don't add the file to $DISTFILES.. Useful for a generated file.. Added the has_build_target() function: returns zero when running configure is pointless.. Shortened the output of ":delete" a bit: don't use absolute paths when not needed.. 143.. May 12.. The buildcheck signature depended on $source, $target and $fname from surrounding scopes.. Could cause rebuilding when not needed.. Added the ":symlink" command.. When uninstalling also check $UNINSTALL_* variables, so that installed files from other variants can be uninstalled as well.. Add the "add_VAR" attributes: like "var_VAR" but append instead of overrule the value.. 142.. May 8.. The attributes 'signfile' and 'depdir' are expanded to absolute file names where they are defined, so that a ":cd" command doesn't confuse them.. Fixes that the signature for "doc/index.. html" wasn't included in "doc/mysign".. Renamed the "configure" virtual target to "config" to avoid confusion with the configure script that autoconf generates.. For the default install targets, use ":update" on the installed files so that "aap install" will build the files when needed.. Fixed using one of the new tools, there were several problems with it.. No longer consider it an error when using ":update" for a file that exists but does not have build commands.. Useful for install actions.. Made ":cd foo bar" change directory to "foo/bar".. Makes it easy to concatenate $DESTDIR and $PREFIX in a recipe.. 141.. May 5.. Added {usecache} attribute to ":fetch": use cached file if available.. Added a mechanism to automatically search for tools and use their actions.. The actual tools still need to be filled in.. Added the ":usetool" command to manually select a tool to be used.. Added the "Customizing Tools" chapter to the documentation.. 140.. May 1.. Added a chapter to the documentation about automatic package install.. 139.. Apr 29.. Made automatic installation of "scp" work.. When using "scp" on MS-Windows the prompt for the password was not displayed, because the output of the command was redirected.. That happens now, but catching the output to check for missing directories doesn't work.. 138.. Apr 28.. When an internal error is detected append the stack trace to the log file.. Implemented the "--install" argument: Install a package by downloading a recipe from the A-A-P web site.. Added ":assertpkg" command.. Made the "templ" package to try out installing a package.. Added ":asroot" command.. Fixed: value for "cache_update" wasn't found in a child recipe.. Use the fixed netrc.. py for Python 2.. 3 as aapnetrc.. py (with a change to make it work with Python 1.. 5).. Fixed: When Aap was started with ".. /Exec/aap" an ":execute" command didn't find the default recipe, causing $EXESUF to be undefined.. 137.. Apr 20.. Moved the Python functions that can be used in a recipe to a separate module: RecPython.. 136.. Apr 17.. Fixed: On MS-Windows rules were not found.. Make fname_fold() always use forward slashes.. Fixed: Didn't work with Python 1.. 135.. When passing a user scope to a dependency, rule and action don't let multiple scopes overrule another, but add all specified user scopes.. Thus a user scope on a dependency is used after a user scope specified for a source file.. Fixed: Recipes generated for automatic dependency checking were not added to $CLEANFILES.. Added ":cd", ":chdir", ":pushdir" and ":popdir" commands (mostly by Steve Howe).. 134.. Apr 16.. Handle running Aap through a symbolic link for Python 2.. 1 and earlier.. Implemented passing a user scope to a dependency, rule and action.. 133.. Support $DEBUG, $OPTIMIZE, $INCLUDE and $LIBS for a portable way to specify arguments to the C compiler.. Added ":totype" command: use routes to turn source files into a specified filetype.. 132.. Apr 14.. Added the aap_has() function: check if a command is supported.. Add the "contents" argument for ":tree": find files in which a pattern matches.. When checking if a file is inside $BDIR just check for "/build/" and "/build-*/".. This also finds $BDIR from recipes in other directories.. 131.. Apr 10.. Added the "cleanALL" target: drastic cleanup, deletes "AAPDIR" and "build-*" directories.. Added the ":tree" command: select files and directories in a tree and execute commands for them.. Made ":lib" and ":dll" work for Unix (with gcc).. Use os.. path.. normcase() for folding file names.. 130.. Apr 9.. Fixed: The tests failed with Python 1.. Made ":syseval" remove leading and trailing white space.. Added $TOPDIR, $CHILDDIR, topdir() and childdir().. Makes it easy to pass file names from a child to a parent or toplevel recipe.. Added default "install" and "uninstall" targets.. Added the ":pass" command: do nothing.. Fixed: ":progsearch" did not assign to a variable in the specified scope.. Fixed: Filetype detection for a file "foo.. 1" caused an error if the file was shorter than 5 lines.. Add the "-p" argument to "scp", so that file modes are preserved when installing an executable.. 129.. Apr 4.. Added the ":program", ":lib" and ":dll" commands.. These form a high level method to define what source files are used to produce a program, static library or dynamic (shared) library.. Replaces the special meaning of $SOURCE and $TARGET (they still work, this will be removed later).. ":lib" and ":dll" are not completely implemented yet.. Automatically add a "clean" rule in each recipe where it is not defined.. Uses $CLEANFILES and $CLEANDIRS, which are set by ":program".. Added the ":route" command: Define the steps how to produce a filetype from another file type.. Added simplistic support for handling lex and yacc files.. Changed the ":rule" command to delete an existing rule for the same sources and targets.. Added the {default} option to mark rules that can be redefined without a warning.. Added the {sourceexists} option to avoid the rule being used when a source file doesn't exist.. Moved the default rules from Python code to "default.. aap", so that they can easily be extended.. Added the ":delrule" command: Delete an existing rule.. Added the ":clearrules" command: Delete all rules.. 128.. When executing an action the scope of where the action was defined was used.. That doesn't work for variables like $CFLAGS, which should be obtained from the invoking scope.. This is also a problem for generating automatic dependencies.. Only use the _recipe scope from where the action is defined and the scope of where the action is invoked from otherwise.. 127.. Mar 28.. Get a warning for a non-existing file when computing the md5 checksum, that is annoying.. Only give a note in this situation.. 126.. Speedup of long scripts by using the cStringIO library for concatenating lots of lines into a single string.. Implemented design decision 26: Use a rule only in the scope where it is valid.. Added the {global} and {local} options to the ":scope" command.. Changed quite a few notes into warnings, so that the messages appear in the terminal.. This is for messages that probably indicate that something is wrong, but the rest of the recipe can still be executed.. 125.. Mar 27.. Added the ":changed" command and the "--changed" option.. Marks a file outdated even when it was not changed.. Added user scopes.. Fixed: A Python bug causes an "if" command to be restricted in length.. The Vim runtime recipe goes over this limit, causing a "com_backpatch" SystemError.. Work around this by not prepending "if 1:" to a block of build commands but removing some of the indent.. Mar 26.. Implemented scopes.. Removed the ":export", ":global" and ":local" commands.. Using $VAR.. txt no longer works, use $(VAR).. txt instead.. In Python commands "var" only uses the local scope.. Use "_no.. var" to search in surrounding scopes.. Better implementation for delayed expansion of variables for "$=".. Use a class ExpandVar for the variable value.. get_var_val() understands this.. In Python code use aap_expand() to handle the delayed expansion.. Added the message type "note".. The warnings are now displayed by default, notes are used for things that are probably OK.. When $HOME doesn't exist, AAPDIR/cache is used for the cache directory.. But this doesn't work when it doesn't exist.. Create it when needed.. Renamed Cvs.. py to VersContCvs.. py to avoid it's found when searching for the cvs program on MS-Windows.. Generating dependencies with gcc never actually worked on MS-Windows.. It wasn't noticed, because the signatures were not handled correctly either.. Fixed both these problems.. 123.. Mar 11.. Executing CVS commands with single quotes doesn't work on MS-Windows.. Use double quotes.. A home directory with spaces in it caused $CACHE to get a wrong value (both double and single quotes used).. 122.. Mar 10.. Use the "--" argument to stop recognizing options instead of "-".. file2string() didn't strip CR and VT from the lines.. (Stuart Rackham).. Fixed: When using Main.. execute() to build a target, the signatures were cached, thus a change in a source file was ignored.. Fixed: When a CVS remove command succeeded but the following commit failed, Aap would add the file again.. 121.. On MS-Windows a backslash may appear in a path, which doesn't work for ftp.. On MS-Windows uploading a file over ftp may give a wrong result for binary files.. Read the file in binary mode.. Moved some functionality that is also used by Agide to a separate function.. 120.. Feb 16.. When detecting file type for a directory return "directory" without checking the name.. "fetch" was in the list of virtual targets twice.. 119.. Jan 29.. When committing a tree into CVS, a new directory was not created automatically.. Was reacting to a non-zero exit code from cvs.. Also create more levels of directories, required for directories that only contain directories.. Call i18n_init() in Filetype.. py, so that it can be used standalone (from Agide).. 118.. Jan 23.. When updating a toplevel target which was already updated, give a message about it.. Makes it clear why ":update foo foo" only builds it once.. The locale module generates an error on the Mac.. Catch this error and ignore it (for now).. "aap install" did not create the right link for the A-A-P documentation directory.. 117.. Jan 13.. Fixed: Comparing file names on MS-Windows didn't always work, because only slashes were recognized.. Now also recognize backslashes as path separators.. On Cygwin the separator for $PATH is ':' but $PATHEXT still uses ';' to separate items.. Now use the ';' as a separator if it is present.. 116.. Jan 9.. 5, could not import the "pre" module.. Fixed: When updating a module already checked out from CVS could do this in the wrong directory.. Avoid using the whole path in CVS/Repository.. 115.. Jan 8.. Fixed: Virtual nodes would not always be found on MS-Windows, resulting in "Do not know how to build" errors.. Added 'expandtab' to the Vim modeline in the Python sources.. Over time tabs will be expanded to spaces.. Just to follow the Python style guide.. 114.. Made has_target() work backwards compatible, it was used in the Vim build recipe.. Did the same for src2obj() and redir_system().. Added: When using {f} or {force} with ":system" the exit value is available in $sysresult.. Fixed: Warning for shadowing use of "str2dictlist" in DoBuild.. Fixed: The result of updating "gcccheck" was not remembered when invoked from a child recipe.. Build commands for an autodependency did not use the global variables of the recipe the depend action was defined in.. Fixed: When using the "--nobuild" argument building automatic dependencies may fail if a file was not generated (happens with "aap -n install" for vim).. Ignore this error and continue.. 113.. Jan 6.. Added {force} attribute to the ":system" command: Ignore a non-zero exit value.. For non-Unix systems ignore case of file names and backslash vs slash when searching for a matching rule.. 112.. Jan 3.. Fixed: When invoking an action the "var_" attributes of source nodes were not used to set variables for the executed action.. Added: Also use "var_" attributes of $target in an invoked action to set variables.. Can be used to set $LDFLAGS of a target and use it in the build commands.. Fixed: ":export" only did set the value in the recipe where an action or dependency was defined at the end of the block of build commands.. Now do it right away, so that following invoked actions and dependencies use the new value.. The ":do" command accepted attribures for variable names, while in other places "var_" needs to be prepended to the attribute name.. Now also allow prepending "var_" for ":do" for consistency.. 111.. Jan 2.. Added the "--contents" or "-C" option: Only build or publish when the file contents was changed, not when only the build commands or the publish attribute changed.. Added a check for the bogus version of the pre.. py library.. Aap now exits with an error message if it is present.. 110.. CHANGED: Renamed the "AAP" directory to "AAPDIR" to avoid confusion with the "aap" program on systems that ignore case in file names.. Added code to automatically rename the old directory to the new name for backwards compatibility.. Added limited support for the "-k" argument: continue building after an error.. Fixed: when uploading one file to "ftp://mach/foobar" it used the file name "/foobar" instead of "foobar".. Added: for MS-Windows look for startup scripts in $HOME/aap/ or $HOMEDRIVE/$HOMEPATH/aap/.. Fixed: use of "endline" in port_makesum() was wrong.. Fixed: aap.. bat did not handle arguments on Win 9x.. When "cc" is used for $CC but it can't be found try using "gcc" instead.. 109.. Fixed: Get error for missing _exports dictionary key in aap_child_exe().. Added the ":proxy" command: define a proxy server.. Added the {update = no} and {recursive} attributes to support circular dependencies.. Added the get_attr() function: obtain a dictionary for the attributes of a node.. Can be used in the build commands of an action.. Removed the globals() argument of src2obj(), has_target() and redir_system().. The dictionary for global variables is now passed to build commands implicitly through Global.. globals.. Fixed: When generating automatic dependencies with gcc, a file name with a space caused problems, because gcc uses a backslash before the space.. Changed: in build commands $source no longer includes virtual items.. Thus $source only contains real files.. $depend has been added and takes over the previous meaning of $source.. 108.. Added {quiet} argument to ":include" for optionally included recipes.. ":execute" only passes variables from the current recipe to the executed recipe when the {pass} option is used.. Makes it possible to execute a recipe like it would be done when running aap separately.. Added "nopass" option to ":child".. Remove trailing white space from an attribute value, so that "{filetype = foo }" results in "foo" instead of "foo ".. Use $CXX instead of $CC and $CXXFLAGS instead of $CFLAGS for C++ files.. 107.. Fixed: Tests did not work on MS-Windows.. Fixed: Executing shell commands did not work on MS-Windows.. Fixed: Reading a dependency file did not work on MS-Windows.. 106.. Fixed: When uploading with scp fails because of a read-only file system this was not noted as an error.. Fixed: When uploading multiple files with scp and one or more failed, the signatures were updated anyway.. 105.. Improved performance by not computing the buildcheck signature for virtual targets.. Especially helps for the recipe that ":mkdownload" generates.. When evaluating a Python expression, replace " " with "$gt", " " with "$lt" and "|" with $bar, so that ":print" isn't confused.. Fixed: did not find Python modules in the directory of the top recipe.. 104.. Start of the version log..

    Original link path: /aapversionlog.html
    Open archive

  • Archived pages: 109