From 93352d9a8bd4159c1655e812460c656053dbc50d Mon Sep 17 00:00:00 2001
From: Yavor Doganov <yavor@gnu.org>
Date: Tue, 5 Dec 2023 10:00:02 +0200
Subject: [PATCH] Fix PDF generation with texinfo/7.1

---
 ChangeLog                             |  6 ++
 Documentation/gnustep-filesystem.texi | 84 ++++++++++++++-------------
 Documentation/gnustep-make.texi       | 76 ++++++++++++------------
 3 files changed, 88 insertions(+), 78 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 6f5e6a4e..16ccbce1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2023-12-05  Yavor Doganov  <yavor@gnu.org>
+
+	* Documentation/gnustep-make.texi: Fix PDF generation with
+	texinfo/7.1; reorder sectioning commands.
+	* Documentation/gnustep-filesystem.texi: Likewise.
+
 2022-02-06  Richard Frith-Macdonald <rfm@gnu.org>
 
 	* Instance/Documentation/texi.make: for index.html specify explicit
diff --git a/Documentation/gnustep-filesystem.texi b/Documentation/gnustep-filesystem.texi
index 11a584ac..82eb4227 100644
--- a/Documentation/gnustep-filesystem.texi
+++ b/Documentation/gnustep-filesystem.texi
@@ -26,10 +26,11 @@ any later version published by the Free Software Foundation.
 @contents
 
 
-@node Top, The System Domain, (dir), (dir)
-@chapter GNUstep Filesystem Hierarchy
+@node Top
+@top GNUstep Filesystem Hierarchy
  
 @menu
+* Introduction::
 * The System Domain::           
 * The Local Domain::            
 * The Network Domain::          
@@ -38,6 +39,9 @@ any later version published by the Free Software Foundation.
 * Configuration::                 
 @end menu
 
+@node Introduction
+@chapter Introduction
+
 On GNUstep, there are four separate places where files related to
 GNUstep are installed: these places are called "domains".  These four
 domains are the System domain, the Network domain, the Local domain,
@@ -83,7 +87,7 @@ filesystem layout is now the FHS (Unix) layout rooted in
 @file{/usr/local}.
 
 @node The System Domain, The Local Domain, Top, Top
-@section The System Domain
+@chapter The System Domain
 
 The System domain contains all files which were included in the
 default GNUstep installation or distribution.  These files are
@@ -105,7 +109,7 @@ the @file{System} folder of the GNUstep installation.
 
 
 @node The Local Domain, The Network Domain, The System Domain, Top
-@section The Local Domain
+@chapter The Local Domain
 
 The Local domain is meant as the location for installing software
 which was not included with your GNUstep distribution and which you or
@@ -125,7 +129,7 @@ In the GNUstep filesystem layout the entire Local domain is installed
 as the @file{Local} folder of your GNUstep installation.
 
 @node The Network Domain, The Users Domain, The Local Domain, Top
-@section The Network Domain
+@chapter The Network Domain
 
 The @file{Network} domain is optional and is usually coalesced with
 the @file{Local} domain by default; this is particularly appropriate
@@ -151,7 +155,7 @@ domain, in which case the entire Network domain is installed as the
 
 
 @node The Users Domain, Structure of a Domain, The Network Domain, Top
-@section The Users Domain
+@chapter The Users Domain
 
 The main purpose of the Users domain is to hold GNUstep related files
 which shall not be available to other users on the system but only to
@@ -167,7 +171,7 @@ User domain is completely contained in a subdirectory of the user's
 home directory called @file{GNUstep}.
 
 @node Structure of a Domain, Configuration, The Users Domain, Top
-@section Structure of a Domain
+@chapter Structure of a Domain
 
 In this section we examine the interesting locations in a domain.  We
 will enumerate the locations, and discuss what should be installed in
@@ -192,7 +196,7 @@ GNUstep filesystem layout and in a general filesystem layout.
 @end menu
 
 @node The GNUstep Filesystem Layout, Accessing Domain Locations, Structure of a Domain, Structure of a Domain
-@subsection The GNUstep Filesystem Layout
+@section The GNUstep Filesystem Layout
 
 We quickly present the GNUstep filesystem layout for a domain first
 because it is an essential reference for all discussions on the
@@ -234,7 +238,7 @@ point for all discussions.  For example, every domain must have a
 'Library' location.
 
 @node Accessing Domain Locations, Applications, The GNUstep Filesystem Layout, Structure of a Domain
-@subsection Accessing Domain Locations
+@section Accessing Domain Locations
 
 In order to install and run software that uses some resources, you
 need to be able to install the resources in the appropriate location,
@@ -277,7 +281,7 @@ that can be used to access them.
 
 
 @node Applications, Admin Applications , Accessing Domain Locations, Structure of a Domain
-@subsection Applications
+@section Applications
 
 The @file{Applications} location contains applications. Applications
 are programs that typically have a GUI interface and contain
@@ -306,7 +310,7 @@ using the @code{NSApplicationDirectory} directory key for
 
 
 @node Admin Applications, Web Applications, Applications, Structure of a Domain
-@subsection Admin Applications
+@section Admin Applications
 
 The @file{Admin Applications} location contains applications that are
 only useful to the system administrator.  A normal user wouldn't have
@@ -326,7 +330,7 @@ by using the @code{NSAdminApplicationDirectory} directory key for
 
 
 @node Web Applications, Tools, Admin Applications, Structure of a Domain
-@subsection Web Applications
+@section Web Applications
 
 The @file{Web Applications} location contains web applications that
 were created using GSWeb or SOPE.  These are programs contained with
@@ -347,7 +351,7 @@ by using the @code{GSWebApplicationDirectory} directory key for
 
 
 @node Tools, Admin Tools, Web Applications, Structure of a Domain
-@subsection Tools
+@section Tools
 
 The @file{Tools} location contains tools and executable scripts. Tools
 are programs which generally have a command-line interface. Most are
@@ -376,7 +380,7 @@ In gnustep-base, the @file{Tools} locations are available by using the
 
 
 @node Admin Tools, Library, Tools, Structure of a Domain
-@subsection Admin Tools
+@section Admin Tools
 
 The @file{Admin Tools} location contains tools and executable scripts
 that are only useful to the system administrator.  A normal user
@@ -397,7 +401,7 @@ using the @code{GSAdminToolsDirectory} directory key for
 
 
 @node Library, Headers, Admin Tools, Structure of a Domain
-@subsection Library
+@section Library
 
 The @file{Library} location contains most of the resources that are
 located and loaded at runtime.  These resources are organized in
@@ -435,7 +439,7 @@ using the @code{NSLibraryDirectory} directory key for
 
 
 @node Headers, Libraries, Library, Structure of a Domain
-@subsection Headers
+@section Headers
 
 The @code{Headers} location contains header files associated with a
 library located in @code{Libraries}.
@@ -453,7 +457,7 @@ available.
 
 
 @node Libraries, Documentation, Headers, Structure of a Domain
-@subsection Libraries
+@section Libraries
 
 The @code{Libraries} location contains libraries (shared/static object
 files that are linked into programs).  (NOTE: In the GNUstep
@@ -481,7 +485,7 @@ the @code{GSLibrariesDirectory} directory key for
 
 
 @node Documentation, Documentation (Info), Libraries, Structure of a Domain
-@subsection Documentation
+@section Documentation
 
 The @code{Documentation} location contains documentation for
 libraries, applications, etc.
@@ -499,7 +503,7 @@ using the @code{NSDocumentationDirectory} directory key for
 
 
 @node Documentation (Info), Documentation (Man Pages), Documentation, Structure of a Domain
-@subsection Documentation (Info)
+@section Documentation (Info)
 
 The @code{Documentation (Info)} location contains documentation in
 info format.
@@ -517,7 +521,7 @@ currently available.
 
 
 @node Documentation (Man Pages), Folders inside Library, Documentation (Info), Structure of a Domain
-@subsection Documentation (Man Pages)
+@section Documentation (Man Pages)
 
 
 The @code{Documentation (Man Pages)} location contains Unix man pages.
@@ -535,7 +539,7 @@ currently available.
 
 
 @node Folders inside Library, , Documentation (Man Pages), Structure of a Domain
-@subsection Folders inside Library
+@section Folders inside Library
 
 In this section we discuss the standard folders that are available
 inside the @code{Library} location.  To find any of these folders,
@@ -570,7 +574,7 @@ All such cases should be documented here.
 @end menu
 
 @node ApplicationSupport, Bundles, Folders inside Library, Folders inside Library
-@subsubsection ApplicationSupport
+@subsection ApplicationSupport
 
 This directory contains bundles and other resources that are provided
 for an application, but that are not specifically distributed with
@@ -595,7 +599,7 @@ by using the @code{NSApplicationSupportDirectory} directory key for
 @code{NSSearchPathForDirectoriesInDomains()}.
 
 @node Bundles, ColorPickers, ApplicationSupport, Folders inside Library
-@subsubsection Bundles
+@subsection Bundles
 
 This directory contains bundles. Bundles are collections of executable
 code and associated resources that may be loaded at runtime by an
@@ -615,7 +619,7 @@ folder inside the @code{Library} location.
 
 
 @node ColorPickers, Colors, Bundles, Folders inside Library
-@subsubsection ColorPickers
+@subsection ColorPickers
 
 This directory contains bundles that are used by the color picking
 system. They may include code that implements picking colors from a
@@ -625,7 +629,7 @@ This folder is accessed as the @code{ColorPickers} folder inside
 @code{Library}.
 
 @node Colors, DTDs, ColorPickers, Folders inside Library
-@subsubsection Colors
+@subsection Colors
 
 This directory contains files that define specific color mappings for
 use within libraries or applications that require color definitions.
@@ -634,7 +638,7 @@ This folder is accessed as the @code{Colors} folder inside
 @code{Library}.
 
 @node DTDs, DocTemplates, Colors, Folders inside Library
-@subsubsection DTDs
+@subsection DTDs
 
 This directory contains any Document Type Definitions
 required for document parsing. 
@@ -643,7 +647,7 @@ This folder is accessed as the @code{DTDs} folder inside
 @code{Library}.
 
 @node DocTemplates, Fonts, DTDs, Folders inside Library
-@subsubsection DocTemplates
+@subsection DocTemplates
 
 This directory contains text templates for automatic documentation, as
 generated by autodoc.  Any additional documentation template types
@@ -657,7 +661,7 @@ This folder is accessed as the @code{DocTemplates} folder inside
 @code{Library}.
 
 @node Fonts, Frameworks, DocTemplates, Folders inside Library
-@subsubsection Fonts
+@subsection Fonts
 
 This directory contains fonts and files for organizing font information.
 
@@ -665,7 +669,7 @@ This folder is accessed as the @code{Fonts} folder inside
 @code{Library}.
 
 @node Frameworks, Images, Fonts, Folders inside Library
-@subsubsection Frameworks
+@subsection Frameworks
 
 This directory contains frameworks.  Frameworks are a type of bundle,
 which include, within their directory structure, a shared library
@@ -692,10 +696,10 @@ using the @code{GSFrameworksDirectory} directory key for
 @code{NSSearchPathForDirectoriesInDomains()}.
 
 @node Images, Libraries/Java, Frameworks, Folders inside Library
-@subsubsection Images
+@subsection Images
 
 @node Libraries/Java, Libraries/Resources, Images, Folders inside Library
-@subsubsection Libraries/Java
+@subsection Libraries/Java
 
 This directory contains Java classes.  If you are using Java with
 GNUstep, you probably want to make sure these directories are in your
@@ -712,7 +716,7 @@ In gnustep-base, you can access the @code{Libraries/Java} location as
 the @code{Libraries/Java} folder inside the @code{Library} location.
 
 @node Libraries/Resources, KeyBindings, Libraries/Java, Folders inside Library
-@subsubsection Libraries/Resources
+@subsection Libraries/Resources
 
 This directory contains resources used by shared libraries.  In
 GNUstep a shared library can have an associated resource bundle (a
@@ -736,10 +740,10 @@ library by using the @code{[NSBundle +bundleForLibrary:]} method (it
 is a GNUstep extension).
 
 @node KeyBindings, PostScript, Libraries/Resources, Folders inside Library
-@subsubsection KeyBindings
+@subsection KeyBindings
 
 @node PostScript, Services, KeyBindings, Folders inside Library
-@subsubsection PostScript
+@subsection PostScript
 
 This directory contains directories for specific PostScript document
 types and definitions, allowing applications written using the GNUstep
@@ -750,7 +754,7 @@ This folder is accessed as the @code{PostScript} folder inside
 @code{Library}.
 
 @node Services, Sounds, PostScript, Folders inside Library
-@subsubsection Services
+@subsection Services
 
 This directory contains bundles that are specifically built to provide
 functionality between different programs (for example, spell checking,
@@ -768,12 +772,12 @@ In gnustep-base, you can access the @code{Services} location as a
 folder inside the @code{Library} location.
 
 @node Sounds, Tools/Resources, Services, Folders inside Library
-@subsubsection Sounds
+@subsection Sounds
 
 This directory contains sound files.
 
 @node Tools/Resources,  , Sounds, Folders inside Library
-@subsubsection Tools/Resources
+@subsection Tools/Resources
 
 This directory contains resources used by tools.  In GNUstep a tool
 can have an associated resource bundle (a bundle only composed of
@@ -796,7 +800,7 @@ semantic is a GNUstep extension).
 
 
 @node Configuration,  , Structure of a Domain, Top
-@section Configuration
+@chapter Configuration
 
 GNUstep supports arbitrary filesystem layouts to map the locations in
 the various domains to directories on the filesystem.
@@ -841,7 +845,7 @@ them.
 @end menu
 
 @node File Format, Windows (MINGW), Configuration, Configuration
-@subsection File Format
+@section File Format
 
 By default, the configuration file is called GNUstep.conf; it
 typically exists in /etc/GNUstep or /usr/local/etc/GNUstep (depending
@@ -865,7 +869,7 @@ up-to-date list of all the variables that you can change with
 explanations of what they do.
 
 @node Windows (MINGW), , File Format, Configuration
-@subsection Windows (MINGW)
+@section Windows (MINGW)
 
 On ms-windows, for software development, you are likely to want to have an
 extra configuration file.  This is because of the limitations of the
diff --git a/Documentation/gnustep-make.texi b/Documentation/gnustep-make.texi
index 41ffccc3..49cf88fa 100644
--- a/Documentation/gnustep-make.texi
+++ b/Documentation/gnustep-make.texi
@@ -44,7 +44,7 @@ any later version published by the Free Software Foundation.
 
 @c Makefile Package Chapter
 @node Top, Makefile Introduction, (dir), (dir)
-@chapter Makefile Package
+@top Makefile Package
 
 @menu
 * Makefile Introduction::       
@@ -58,7 +58,7 @@ any later version published by the Free Software Foundation.
 @end menu
 
 @node Makefile Introduction, Makefile Structure, Top, Top
-@section Introduction
+@chapter Introduction
 
 The Makefile package is a system of make commands that is designed to
 encapsulate all the complex details of building and installing various types
@@ -68,7 +68,7 @@ a fairly simple main makefile need to be written which specifies the
 type of project and files involved in the project.
 
 @node Makefile Structure, Running Make, Makefile Introduction, Top
-@section Structure of a Makefile
+@chapter Structure of a Makefile
 
 Here is an example makefile (named GNUmakefile to emphasis the fact that it relies on special features of the GNU make program).
 
@@ -98,7 +98,7 @@ This is all that is necessary to define the project.
 
 
 @node Running Make, Project Types, Makefile Structure, Top
-@section Running Make
+@chapter Running Make
 @menu
 * Debug Information::           
 * Profile Information::         
@@ -111,7 +111,7 @@ the package, and the package is compiled without any additional
 interaction.  
 
 @node Debug Information, Profile Information, Running Make, Running Make
-@subsection Debug Information
+@section Debug Information
 
 By default the Makefile Package tells the compiler to generate
 debugging information when compiling Objective-C and C files.  The
@@ -124,7 +124,7 @@ make debug=no
 @end smallexample
 
 @node Profile Information, Library Types, Debug Information, Running Make
-@subsection Profile Information
+@section Profile Information
 
 By default the Makefile Package does not tell the compiler to generate
 profiling information when compiling Objective-C and C files.  The
@@ -137,7 +137,7 @@ make profile=yes
 @end smallexample
 
 @node Library Types,  , Profile Information, Running Make
-@subsection Static, Shared, and Dynamic Link Libraries
+@section Static, Shared, and Dynamic Link Libraries
 
 By default the Makefile Package will generate a shared library if it is
 building a library project type, and it will link with shared libraries
@@ -157,7 +157,7 @@ DLLs will be built by default unless the Makefile Package is told to
 build using static libraries instead, as in the above command.
 
 @node Project Types, GNUmakefile.preamble, Running Make, Top
-@section Project Types
+@chapter Project Types
 @menu
 * aggregate.make::              
 * application.make::            
@@ -200,7 +200,7 @@ types) is in resource-set.make.
 
 
 @node aggregate.make, application.make, Project Types, Project Types
-@subsection Aggregate (@file{aggregate.make})
+@section Aggregate (@file{aggregate.make})
 
 An Aggregate project is a project that consists of several
 subprojects. Each subproject can be of any other valid project type
@@ -213,46 +213,46 @@ that the Aggregate project should build.
 @end defvr
 
 @node application.make, bundle.make, aggregate.make, Project Types
-@subsection Graphical Applications (@file{application.make})
+@section Graphical Applications (@file{application.make})
 
 An application is an Objective-C program that includes a GUI component,
 and by default links in all the GNUstep libraries required for GUI
 development, such as the Base and Gui libraries.
 
 @node bundle.make, ctool.make, application.make, Project Types
-@subsection Bundles (@file{bundle.make})
+@section Bundles (@file{bundle.make})
 
 A bundle is a collection of resources and code that can be used to
 enhance an existing application or tool dynamically using the NSBundle
 class from the GNUstep base library.
 
 @node ctool.make, documentation.make, bundle.make, Project Types
-@subsection Command Line C Tools (@file{ctool.make})
+@section Command Line C Tools (@file{ctool.make})
 
 A ctool is a project that only uses C language files.
 Otherwise it is similar to the ObjC project type.
 
 @node documentation.make, framework.make, ctool.make, Project Types
-@subsection Documentation (@file{documentation.make})
+@section Documentation (@file{documentation.make})
 
 The Documentation project provides rules to use various types of
 documentation such as texi and LaTeX documentation, and convert them
 into finished documentation (info, PostScript, HTML, etc). 
 
 @node framework.make, java.make, documentation.make, Project Types
-@subsection Frameworks (@file{framework.make})
+@section Frameworks (@file{framework.make})
 
 A Framework is a collection of resources and a library that provides
 common code that can be linked into a Tool or Application. In many
 respects it is similar to a Bundle.
 
 @node java.make, library.make, framework.make, Project Types
-@subsection Java (@file{java.make})
+@section Java (@file{java.make})
 
 This project provides rules for building java programs. It also makes it
 easy to make java projects that interact with the GNUstep libraries.
 
-@subsubsection Project Variables
+@subsection Project Variables
 
 @defvr {Java project} JAVA_PACKAGE_NAME
 @code{JAVA_PACKAGE_NAME} is the reverse DNS style Java package name that
@@ -295,7 +295,7 @@ with all dots replaced by hyphens.
 @end defvr
 
 @node library.make, native-library.make, java.make, Project Types
-@subsection Libraries (@file{library.make})
+@section Libraries (@file{library.make})
 @menu
 * library.make variables::      
 * Example Library Makefile::    
@@ -308,7 +308,7 @@ Static libraries are supported on all platforms; while, shared libraries
 and DLLs are only supported on some platforms.
 
 @node library.make variables, Example Library Makefile, library.make, library.make
-@subsubsection Project Variables
+@subsection Project Variables
 
 @defvr {Library project} LIBRARY_NAME
 @code{LIBRARY_NAME} should be assigned the list of name of libraries to
@@ -446,7 +446,7 @@ Replace the @strong{xxx} with the name of the library as listed by the
 @end defvr
 
 @node Example Library Makefile,  , library.make variables, library.make
-@subsubsection Example Makefile
+@subsection Example Makefile
 
 This example makefile illustrates two libraries, @file{libone} and
 @file{libtwo}, that are to be generated.
@@ -514,7 +514,7 @@ located, and the header files will be installed into the @file{two}
 subdirectory within @code{GNUSTEP_HEADERS}.
 
 @node native-library.make, nsis.make, library.make, Project Types
-@subsection Native Library (@file{native-library.make})
+@section Native Library (@file{native-library.make})
 
 A "native library" is a project which is to be built as a shared
 library on most targets and as a framework on Darwin.  (Currently
@@ -541,7 +541,7 @@ This will be converted into -L../MyPath/$(GNUSTEP_OBJ_DIR) flag
 on for most targets and into -F../MyPath flag for apple-apple-apple.
 
 @node nsis.make, objc.make, native-library.make, Project Types
-@subsection NSIS Installer (@file{nsis.make})
+@section NSIS Installer (@file{nsis.make})
 
 The NSIS make project provides rules for automatically generating NSIS
 installers for Windows operating systems. In order to get this functionality,
@@ -592,7 +592,7 @@ If not set it defaults to @code{LOCAL}.
 @end defvr
 
 @node objc.make, palette.make, nsis.make, Project Types
-@subsection Objective-C Programs (@file{objc.make})
+@section Objective-C Programs (@file{objc.make})
 @menu
 * objc.make variables::         
 * Example ObjC Makefile::       
@@ -604,7 +604,7 @@ Objective-C programs which only use the Objective-C Runtime Library and
 the classes it defines are candidates for this project type.
 
 @node objc.make variables, Example ObjC Makefile, objc.make, objc.make
-@subsubsection Project Variables
+@subsection Project Variables
 
 Most of the project variables work the same as in Library
 projects (see @ref{library.make}).
@@ -630,7 +630,7 @@ of the program as listed by the @code{OBJC_PROGRAM_NAME} variable.
 @end defvr
 
 @node Example ObjC Makefile,  , objc.make variables, objc.make
-@subsubsection Example Makefile
+@subsection Example Makefile
 
 This makefile illustrates two Objective-C programs, @file{simple} and
 @file{list} that are to be generated.
@@ -677,13 +677,13 @@ Runtime library; presumably @file{simple.m} has code which is dependent
 upon the Objective-C Runtime.
 
 @node palette.make, rpm.make, objc.make, Project Types
-@subsection Palettes (@file{palette.make})
+@section Palettes (@file{palette.make})
 
 A palette is a Bundle that provides some kind of GUI functionality.
 Otherwise it is similar to the Bundle project.
 
 @node rpm.make, service.make, palette.make, Project Types
-@subsection RPMs (@file{rpm.make})
+@section RPMs (@file{rpm.make})
 
 The RPM project provides rules for automatically generating RPM spec
 files in order to make RPM distributions. Note that this project
@@ -740,25 +740,25 @@ Library containing the Objective-C runtime.
 @end example
 
 @node service.make, subproject.make, rpm.make, Project Types
-@subsection Services (@file{service.make})
+@section Services (@file{service.make})
 
 A Service is like a Tool that provides a service to a running GNUstep program.
 
 @node subproject.make, tool.make, service.make, Project Types
-@subsection Subprojects (@file{subproject.make})
+@section Subprojects (@file{subproject.make})
 
 A Subproject provides a way to organize code in a large application into
 subunits. The code in the subproject is merged in with the main tool
 or application.
 
 @node tool.make,  , subproject.make, Project Types
-@subsection Command Line Tools (@file{tool.make})
+@section Command Line Tools (@file{tool.make})
 
 A tool is an ObjC project that by default links in the GNUstep base
 library. Otherwise it is similar to the ObjC project type.
 
 @node GNUmakefile.preamble, GNUmakefile.postamble, Project Types, Top
-@section Global Variables (@file{GNUmakefile.preamble})
+@chapter Global Variables (@file{GNUmakefile.preamble})
 
 @file{GNUmakefile.preamble} is an optional file that may be put within the
 package for declaring global makefile variables for the package.  The
@@ -977,7 +977,7 @@ LIBRARIES_DEPEND_UPON = -lsimple $(FND_LIBS) $(OBJC_LIBS) $(SYSTEM_LIBS)
 
 
 @node GNUmakefile.postamble, Common Variables, GNUmakefile.preamble, Top
-@section Global Rules (@file{GNUmakefile.postamble})
+@chapter Global Rules (@file{GNUmakefile.postamble})
 
 The @file{GNUmakefile.postamble} file is an optional file you may
 include in your package to define additional rules that should be
@@ -993,7 +993,7 @@ You can even define additional rules such as ones that a particular to
 your specific package or that are to be used by developers only.
 
 @node Common Variables, Other Variables, GNUmakefile.postamble, Top
-@section Common Variables (@file{common.make})
+@chapter Common Variables (@file{common.make})
 @menu
 * Directory Paths::             
 * Scripts::                     
@@ -1013,7 +1013,7 @@ defined variables as the resultant behaviour of the Makefile Package is
 undefined.
 
 @node Directory Paths, Scripts, Common Variables, Common Variables
-@subsection Directory Paths
+@section Directory Paths
 
 @defvar GNUSTEP_MAKEFILES
 @code{GNUSTEP_MAKEFILES} is the absolute path to the directory where the
@@ -1180,7 +1180,7 @@ where the binary file is located.
 @end defvar
 
 @node Scripts, Platform Information, Directory Paths, Common Variables
-@subsection Scripts
+@section Scripts
 
 @defvar CONFIG_GUESS_SCRIPT
 @code{CONFIG_GUESS_SCRIPT} is the absolute path to the
@@ -1263,7 +1263,7 @@ script; it is used internally by the Makefile Package.
 @end defvar
 
 @node Platform Information, Library Combination, Scripts, Common Variables
-@subsection Host and Target Platform Information
+@section Host and Target Platform Information
 
 @defvar GNUSTEP_HOST
 @code{GNUSTEP_HOST} is the canonical host platform name; i.e. the name
@@ -1340,7 +1340,7 @@ platform, see Cross Compiling.
 @end defvar
 
 @node Library Combination, Overridable Flags, Platform Information, Common Variables
-@subsection Library Combination
+@section Library Combination
 
 @defvar OBJC_RUNTIME_LIB
 @code{OBJC_RUNTIME_LIB} is assigned the code that indicates the
@@ -1489,7 +1489,7 @@ there is not backend library; i.e. @code{GUI_BACKEND_LIB} is
 @end defvar
 
 @node Overridable Flags,  , Library Combination, Common Variables
-@subsection Overridable Flags
+@section Overridable Flags
 
 @defvar OBJCFLAGS
 @code{OBJCFLAGS} are flags that are passed to the compiler when
@@ -1576,7 +1576,7 @@ make documentation=no
 @end smallexample
 
 @node Other Variables,  , Common Variables, Top
-@section Other Variables
+@chapter Other Variables
 
 Since gnustep-make is a system of scripts rather than compiled code,
 all the source is always present and available to read, so the main
-- 
2.43.0

