(gettext.info)Makefile


Next: src/Makefile Prev: config.h.in Up: Adjusting Files
Enter node , (file) or (file)node

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.

  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. Add file ‘ABOUT-NLS’ to the ‘DISTFILES’ definition, so the file
     gets distributed.

  3. 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’ in ‘Makefile.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 the ‘libintl.h’ header file.  For this reason,
     here we mention ‘intl’ before ‘lib’ and ‘src’.

  4. 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’.


automatically generated by info2www version 1.2.2.9