gettext: Makefile

 
 13.4.10 ‘Makefile.in’ at top level
 ----------------------------------
 
    Here are a few modifications you need to make to your main, top-level
 ‘Makefile.in’ file.
 
   1. 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@
 
   2. Wherever you process subdirectories in your ‘Makefile.in’, be sure
      you also process the subdirectory ‘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’ in ‘Makefile.in’ for it to be
      further used in the ‘dist:’ goal.
 
           SUBDIRS = doc lib src po
 
   3. A delicate point is the ‘dist:’ goal, as ‘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’.