* Initial import:: First import of Gnulib modules.
* Modified imports:: Changing the import specification.
* Simple update:: Tracking Gnulib development.
-* CVS Issues:: Integration with CVS.
+* VCS Issues:: Integration with Version Control Systems.
@end menu
File list:
lib/dummy.c
lib/strdup.c
- lib/string_.h
+ lib/string.in.h
m4/absolute-header.m4
m4/extensions.m4
m4/gnulib-common.m4
Creating directory ./m4
Copying file lib/dummy.c
Copying file lib/strdup.c
-Copying file lib/string_.h
+Copying file lib/string.in.h
Copying file m4/absolute-header.m4
Copying file m4/extensions.m4
Copying file m4/gnulib-common.m4
@example
...
-AM_CPPFLAGS = -I$(top_srcdir)/lib -I$(top_builddir)/lib
+AM_CPPFLAGS = -I$(top_builddir)/lib -I$(top_srcdir)/lib
...
LDADD = lib/libgnu.a
...
@samp{restrict} to be the empty string on a pre-C99 host, or a macro
like @samp{_FILE_OFFSET_BITS} that affects the layout of data
structures, the definition is consistent for all include files.
-Another reason why @file{config.h} must be included before any other
-include file is that it may define macros like @samp{_GNU_SOURCE}
-or @samp{_FILE_OFFSET_BITS} which, on glibc systems, have an effect only
-if defined before the first system header file is included.
-
-A final word of warning: Gnulib currently assumes it will be
-responsible for @emph{all} functions that end up in the Autoconf
-@code{@@LIBOBJS@@} variables (and/or @code{@@LTLIBOBJS@@} if using
-Libtool), e.g., those specified in @code{AC_REPLACE_FUNCS} in your
-@file{configure.ac}. Therefore, if you have any functions which are
-not covered by Gnulib which need that treatment, you have to
-essentially reimplement AC_REPLACE_FUNCS using different names; for an
-example, see the Findutils sources. Perhaps this will be improved in
-the future.
+Also, on some platforms macros like @samp{_FILE_OFFSET_BITS} and
+@samp{_GNU_SOURCE} may be ineffective, or may have only a limited
+effect, if defined after the first system header file is included.
+
+Finally, note that you can not use @code{AC_LIBOBJ} or
+@code{AC_REPLACE_FUNCS} in your @file{configure.ac} and expect the
+resulting object files to be automatically added to @file{lib/libgnu.a}.
+This is because your @code{AC_LIBOBJ} and @code{AC_REPLACE_FUNCS} invocations
+from @file{configure.ac} augment a variable @code{@@LIBOBJS@@} (and/or
+@code{@@LTLIBOBJS@@} if using Libtool), whereas @file{lib/libgnu.a}
+is build from the contents of a different variable, usually
+@code{@@gl_LIBOBJS@@} (or @code{@@gl_LTLIBOBJS@@} is using Libtool).
@node Modified imports
This will create, update or remove files, as needed.
-@node CVS Issues
-@section CVS Issues
+@node VCS Issues
+@section Issues with Version Control Systems
+
+If a project stores its source files in a version control system (VCS),
+such as CVS, SVN, or Git, one needs to decide which files to commit.
All files created by @code{gnulib-tool}, except @file{gnulib-cache.m4},
should be treated like generated source files, like for example a
@item
In projects which commit all source files, whether generated or not, into
-CVS, the @code{gnulib-tool} generated files should all be committed.
+their VCS, the @code{gnulib-tool} generated files should all be committed.
Gnulib also contains files generated by @command{make} (and removed by
-@code{make clean}, using information determined by @command{configure}
-They should not be checked into CVS, but instead added to
+@code{make clean}), using information determined by @command{configure}
+They should not be checked into the VCS, but instead added to
@file{.cvsignore}. When you have a Gnulib source file of the form
@file{lib/foo_.h}, the corresponding @file{lib/foo.h} is such a file.
-
@item
-In projects which customarily omit from the CVS all files that generated
+In projects which customarily omit from their VCS all files that are generated
from other source files, all these files and directories would not be
-added into CVS. The only file that must be added to CVS is
+added into the VCS. The only file that must be added to the VCS is
@file{gnulib-cache.m4} in the M4 macros directory. Also, the script for
-restoring files not in CVS, customarily called @file{autogen.sh} or
+restoring files not in the VCS, customarily called @file{autogen.sh} or
@file{bootstrap.sh}, will typically contain the statement for restoring
the omitted files: