[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
13.4.11 ‘Makefile.in’ at top level
Here are a few modifications you need to make to your main, top-level ‘Makefile.in’ file.
-
Add the following lines near the beginning of your ‘Makefile.in’,
so the ‘dist:’ goal will work properly (as explained further down):
PACKAGE = @PACKAGE@ VERSION = @VERSION@
-
Add file ‘ABOUT-NLS’ to the
DISTFILES
definition, so the file gets distributed. -
Wherever you process subdirectories in your ‘Makefile.in’, be sure
you also process the subdirectories ‘intl’ and ‘po’. Special
rules in the ‘Makefiles’ take care for the case where no
internationalization is wanted.
If you are using Makefiles, either generated by automake, or hand-written so they carefully follow the GNU coding standards, the effected goals for which the new subdirectories must be handled include ‘installdirs’, ‘install’, ‘uninstall’, ‘clean’, ‘distclean’.
Here is an example of a canonical order of processing. In this example, we also define
SUBDIRS
inMakefile.in
for it to be further used in the ‘dist:’ goal.SUBDIRS = doc intl lib src po
Note that you must arrange for ‘make’ to descend into the
intl
directory before descending into other directories containing code which make use of thelibintl.h
header file. For this reason, here we mentionintl
beforelib
andsrc
. -
A delicate point is the ‘dist:’ goal, as both
‘intl/Makefile’ and ‘po/Makefile’ will later assume that the
proper directory has been set up from the main ‘Makefile’. Here is
an example at what the ‘dist:’ goal might look like:
distdir = $(PACKAGE)-$(VERSION) dist: Makefile rm -fr $(distdir) mkdir $(distdir) chmod 777 $(distdir) for file in $(DISTFILES); do \ ln $$file $(distdir) 2>/dev/null || cp -p $$file $(distdir); \ done for subdir in $(SUBDIRS); do \ mkdir $(distdir)/$$subdir || exit 1; \ chmod 777 $(distdir)/$$subdir; \ (cd $$subdir && $(MAKE) $@) || exit 1; \ done tar chozf $(distdir).tar.gz $(distdir) rm -fr $(distdir)
Note that if you are using GNU automake
, ‘Makefile.in’ is
automatically generated from ‘Makefile.am’, and all needed changes
to ‘Makefile.am’ are already made by running ‘gettextize’.
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated on June 7, 2014 using texi2html 5.0.