Man Linux: Main Page and Category List

NAME

       gpt-setup - Create automake and autoconf files to convert software into
       a package

SYNOPSIS

       gpt-setup name version [directory_containing_source_code]
       [build_directory]

DESCRIPTION

       gpt-setup creates Makefile.am files and a configure.in file as well as
       other stuff that is used to convert a software distribution into a
       globus package.  name is the name of the package. version is the
       version of the package.  directory_containing_source_code is the top
       source directory for the distribution (the default is the current
       directory).  build_directory is the top level directory containing the
       resulting binaries (default is the source directory).  The resulting
       build depends on other files from the globus packaging tools (GPT) as
       well as the globus_core package.  NOTE that the files that gpt-setup
       creates need to be edited by hand in order for the packaging to be
       complete. The idea behind gpt-setup is simple; "It is easier to edit
       than to create.".

Description of the Files that gpt-setup Creates

       Makefile.am.  gpt-setup creates a Makefile.am in the top level
       directory and every subdirectory except for those called CVS or RCS.
       The Makefile.am files contain a list of sources, subdirectories,
       libraries, programs, and scripts.  All libraries will be built as
       libtool libraries.  NOTE that all of the sources found will be included
       in all of the targets found.  All libraries and executables have flags
       from the autoconf variables GPT_INCLUDES, GPT_CFLAGS, GPT_LDFLAGS, and
       GPT_LIBS added to them.  All of the Makefiles contain directives to
       include files from globus_core that contain standard make targets and
       rules.
       configure.in gpt-setup creates a top level configure.in containing the
       standard GLOBUS_* macros from globus_core. The script detects the
       occurance of *.in files and headers and adds them to AM_CONFIG_HEADER
       and AC_OUTPUT.
       bootstrap gpt-setup creates a top level bootstrap script which is used
       to invoke aclocal, automake, autoheader, and autoconf in the correct
       order.
       pkgdata gpt-setup creates a pkgdata directory that contains the
       following:
           pkg_data_src.gpt.in is a file that contains the packaging metadata
           for the newly created package.  gpt-setup inserts the name and
           version of the package as well as a list of all of the libraries
           that the package provides.
           MyFilelists.pm is a perl module that is used by gpt_sort_file_list
           to sort the installed files from the source package into binary
           packages.  The module can be modified to take care of special
           files.
           Makefile.am is a makefile that assembles the filelists and
           packaging data into the various files.

Post gpt-setup Tasks (What is Left to the Developer)

       gpt-setup does not do everything that is needed to compile a package.
       Some tasks need a developer’s touch.  Here is a checklist of tasks that
       may need to be done by hand:

       Dependencies need to be added to pkgdata/pkg_data_src.gpt.in
           You can use the GUI tool gpt-edit or edit the file by hand.  The
           format is explained in Package, SourceDependency, and Version.

       Build Environment flags need to be added to configure.in
           Use the autoconf macros GPT_SET_CFLAGS, GPT_SET_INCLUDES,
           GPT_SET_LIBS pass build environment flags to both the Makefiles and
           the packaging metadata. With the exception of GPT_SET_CFLAGS, these
           flags will be included in the packaging metadata and used when
           packages using this package are built.  See Package for details on
           the build environment metadata.

       Source needs to be assigned to programs and libraries in the
       Makefile.am’s.
           gpt-edit automatically assigns all source found in a directory to
           all of the targets found in a directory.  For example:

             Sources = \
                    foo.c \
                    foo.h \
                    fee.c \
                    fee.h

             bin_programs = foo fee

             foo_SOURCES = $(Sources)
             fee_SOURCES = $(Sources)

           As you can see both programs fee and foo wind up being built with
           the same set of sources.  This is of course wrong and needs to be
           corrected for every directory where more than one program or
           library is built.

       Autoconf defines need to be tested for
           Use gpt-undefines to identify all of the preprocesser macros that
           are used in the source code which are not defined internally.  This
           list will highlight the autoconf tests that need to be added to the
           configure.in script.

SEE ALSO

       gpt-edit(8) gpt-undefines(8) automake(1) autoconf(1) Package(3)
       Version(3) SourceDependency(3)

AUTHOR

       Michael Bletzinger <mbletzin.ncsa.uiuc.edu> and Eric Blau
       <eblau.ncsa.uiuc.edu>