1GPT-SETUP(8) User Contributed Perl Documentation GPT-SETUP(8)
2
3
4
6 gpt-setup - Create automake and autoconf files to convert software into
7 a package
8
10 gpt-setup name version [directory_containing_source_code]
11 [build_directory]
12
14 gpt-setup creates Makefile.am files and a configure.in file as well as
15 other stuff that is used to convert a software distribution into a
16 globus package. name is the name of the package. version is the
17 version of the package. directory_containing_source_code is the top
18 source directory for the distribution (the default is the current
19 directory). build_directory is the top level directory containing the
20 resulting binaries (default is the source directory). The resulting
21 build depends on other files from the globus packaging tools (GPT) as
22 well as the globus_core package. NOTE that the files that gpt-setup
23 creates need to be edited by hand in order for the packaging to be
24 complete. The idea behind gpt-setup is simple; "It is easier to edit
25 than to create.".
26
28 Makefile.am. gpt-setup creates a Makefile.am in the top level
29 directory and every subdirectory except for those called CVS or RCS.
30 The Makefile.am files contain a list of sources, subdirectories,
31 libraries, programs, and scripts. All libraries will be built as
32 libtool libraries. NOTE that all of the sources found will be included
33 in all of the targets found. All libraries and executables have flags
34 from the autoconf variables GPT_INCLUDES, GPT_CFLAGS, GPT_LDFLAGS, and
35 GPT_LIBS added to them. All of the Makefiles contain directives to
36 include files from globus_core that contain standard make targets and
37 rules.
38 configure.in gpt-setup creates a top level configure.in containing the
39 standard GLOBUS_* macros from globus_core. The script detects the
40 occurance of *.in files and headers and adds them to AM_CONFIG_HEADER
41 and AC_OUTPUT.
42 bootstrap gpt-setup creates a top level bootstrap script which is used
43 to invoke aclocal, automake, autoheader, and autoconf in the correct
44 order.
45 pkgdata gpt-setup creates a pkgdata directory that contains the
46 following:
47 pkg_data_src.gpt.in is a file that contains the packaging metadata
48 for the newly created package. gpt-setup inserts the name and
49 version of the package as well as a list of all of the libraries
50 that the package provides.
51 MyFilelists.pm is a perl module that is used by gpt_sort_file_list
52 to sort the installed files from the source package into binary
53 packages. The module can be modified to take care of special
54 files.
55 Makefile.am is a makefile that assembles the filelists and
56 packaging data into the various files.
57
59 gpt-setup does not do everything that is needed to compile a package.
60 Some tasks need a developer's touch. Here is a checklist of tasks that
61 may need to be done by hand:
62
63 Dependencies need to be added to pkgdata/pkg_data_src.gpt.in
64 You can use the GUI tool gpt-edit or edit the file by hand. The
65 format is explained in Package, SourceDependency, and Version.
66
67 Build Environment flags need to be added to configure.in
68 Use the autoconf macros GPT_SET_CFLAGS, GPT_SET_INCLUDES,
69 GPT_SET_LIBS pass build environment flags to both the Makefiles and
70 the packaging metadata. With the exception of GPT_SET_CFLAGS, these
71 flags will be included in the packaging metadata and used when
72 packages using this package are built. See Package for details on
73 the build environment metadata.
74
75 Source needs to be assigned to programs and libraries in the
76 Makefile.am's.
77 gpt-edit automatically assigns all source found in a directory to
78 all of the targets found in a directory. For example:
79
80 Sources = \
81 foo.c \
82 foo.h \
83 fee.c \
84 fee.h
85
86 bin_programs = foo fee
87
88 foo_SOURCES = $(Sources)
89 fee_SOURCES = $(Sources)
90
91 As you can see both programs fee and foo wind up being built with
92 the same set of sources. This is of course wrong and needs to be
93 corrected for every directory where more than one program or
94 library is built.
95
96 Autoconf defines need to be tested for
97 Use gpt-undefines to identify all of the preprocesser macros that
98 are used in the source code which are not defined internally. This
99 list will highlight the autoconf tests that need to be added to the
100 configure.in script.
101
103 gpt-edit(8) gpt-undefines(8) automake(1) autoconf(1) Package(3)
104 Version(3) SourceDependency(3)
105
107 Michael Bletzinger <mbletzin.ncsa.uiuc.edu> and Eric Blau
108 <eblau.ncsa.uiuc.edu>
109
110
111
112perl v5.12.3 2011-03-24 GPT-SETUP(8)