Changes between Version 3 and Version 4 of pm-project-make


Ignore:
Timestamp:
Jun 2, 2006 9:28:46 PM (14 years ago)
Author:
andreasw
Comment:

cleaned up

Legend:

Unmodified
Added
Removed
Modified
  • pm-project-make

    v3 v4  
    3535 * One should always start with a copyright note and author information, and include the {{{svn:keyword}}} "{{{$Id}}}".  The line with the keyword should start with "{{{##}}}" so that it is not copied into the generated {{{Makefile.in}}} file, which causes some confusion for subversion.
    3636
    37  * As for the [wiki:pm-base-make base directory Makefile.am file], we first specify, in the '''SUBDIRS''' variable, the subdirectories  into which to recurse in order to compile the libraries, programs, and whatever other products this project has to offer.  In this examples, it is only one directory, but in order to organize your code, you might want to split the source files into different directories, in which case you need to specify them all here.  These lines with the {{{ALWAYS_FALSE}}} Automake conditional (which is always false :) are a trick to skip recursion into the {{{test}}} subdirectory for a usual run of {{{make}}} to build the products, but it will cause a {{{make dist}}} to pick up the files in the {{{test}}} directory (even though we don't use the {{{make dist}}} mechanism to generate the COIN tarballs.)
     37 * Like in a [wiki:pm-base-make base directory Makefile.am file], we first specify, in the '''SUBDIRS''' variable the subdirectories into which to recurse in order to compile the libraries, programs, and whatever other products this project has to offer.  In this examples, this is only one directory, but in order to organize your code, you might want to split the source files into different directories, in which case you need to specify them all here.  These lines with the {{{ALWAYS_FALSE}}} Automake conditional (which is always false :) are a trick to skip recursion into the {{{test}}} subdirectory for a usual run of {{{make}}} to build the products, but it will cause a {{{make dist}}} to pick up the files in the {{{test}}} directory (even though we don't use the {{{make dist}}} mechanism to generate the COIN tarballs.)
    3838
    3939{{{
     
    8282In this section we define some extra targets:
    8383
    84  * The '''test''' (and '''unitTest''') target, which first makes sure that everything has been compiled (since it depends on {{{all}}}), and then changes into the {{{test}}} subdirectory, where it runs the {{{test}}} target.  If the project does not provide a unit test, this is of course not there.
     84 * The '''test''' (and '''unitTest''') target, which first makes sure that everything has been compiled (since it depends on {{{all}}}), changes into the {{{test}}} subdirectory, where it runs the {{{test}}} target.  If the project does not provide a unit test, this should of course not be there.
    8585
    86  * The '''clean-local''' and '''distclean-local''' targets are special Automake targets.  They are "called", when the user does a "{{{make clean}}}" and "{{{make distclean}}}".  It allows us to specify additional actions for that case.  Here, we want to make sure that also the {{{test}}} subdirectory is cleaned; by default it is not, since it is not included in the {{{SUBDIRS}}} variable, since the {{{ALWAYS_FALSE}}} Automake conditional is always false.  The command line simply checks if the Makefile in the {{{test}}} subdirectory exists, and if it does, the corresponding target is made.
     86 * The '''clean-local''' and '''distclean-local''' targets are special Automake targets.  They are "called", when the user does a "{{{make clean}}}" and "{{{make distclean}}}", respectively. It allows us to specify additional actions for those default targets.  Here, we want to make sure that also the {{{test}}} subdirectory is cleaned; by default it is not, since it is not included in the {{{SUBDIRS}}} variable, because the {{{ALWAYS_FALSE}}} Automake conditional is always false.  The command line simply checks if the Makefile in the {{{test}}} subdirectory exists, and if it does, the corresponding target is made.
    8787
    8888{{{
     
    100100}}}
    101101
    102  * Those lines make sure that the '''..._addlibs.txt''' files is installed.  This is the file containing additionally required library link flags in order to link with the library generated by this project's Makefiles.  You only have to adapt the '''addlibsfile''' variable.
     102 * Those lines make sure that the '''..._addlibs.txt''' files is installed.  This is the file containing additionally required library link flags in order to link with the library generated by this project's Makefiles.  You only have to adapt the '''addlibsfile''' variable to use this in your own {{{Makefile.am}}}.
    103103
    104104{{{