Browse Source

+ Adapted to latest version

michael 25 years ago
parent
commit
54ae1063a4
2 changed files with 325 additions and 3 deletions
  1. 8 2
      install/man/fpcmake.1
  2. 317 1
      install/man/fpcmake.5

+ 8 - 2
install/man/fpcmake.1

@@ -4,7 +4,7 @@ fpcmake \- The Free Pascal makefile constuctor program.
 
 
 .SH SYNOPSIS
 .SH SYNOPSIS
 
 
-.B fpcmake
+.B fpcmake [filename [filename [filename]]]
 
 
 .SH DESCRIPTION
 .SH DESCRIPTION
 
 
@@ -24,7 +24,13 @@ for making X projects.
 .SH USAGE
 .SH USAGE
 
 
 .B fpcmake
 .B fpcmake
-takes no options at this time. It just attempts to read the file 
+accepts filenames of makefile description files as it's command-line
+arguments. For each of these files it will create a 
+.I Makefile 
+in the same directory where the file is located, overwriting any other 
+existing file.
+
+If no options are given, it just attempts to read the file 
 .I Makefile.fpc
 .I Makefile.fpc
 in the current directory and tries to construct a Makefile from it.
 in the current directory and tries to construct a Makefile from it.
 any previously existing 
 any previously existing 

+ 317 - 1
install/man/fpcmake.5

@@ -3,6 +3,11 @@
 Makefile.fpc \- Configuration file for fpcmake.
 Makefile.fpc \- Configuration file for fpcmake.
 
 
 .SH SYNOPSIS
 .SH SYNOPSIS
+.I Makefile.fpc
+is a configuration file for the fpcmake command. Starting from this file a
+.I Makefile 
+is created to compile Free Pascal units and programs.
+
 .SH DESCRIPTION
 .SH DESCRIPTION
 
 
 .B Makefile.fpc
 .B Makefile.fpc
@@ -66,24 +71,335 @@ of the
 entry.
 entry.
 .TP
 .TP
 .B libs
 .B libs
-
+This section specifies what units should be merged into a library, and what
+external libraries are needed. It can contain the following keywords:
+.RS
+.TP
+.I libname
+the name of the library that should be created.
+.TP
+.I libunits
+a comma-separated list of units that should be moved into one library.
+.TP
+.I needgcclib
+a boolean value that specifies whether the gcc library is needed. This will
+make sure that the path to the GCC library is inserted in the library search
+path.
+.TP
+.I needotherlib
+a boolean value that tells the makefile that other library directories will 
+be needed.
+.RE
 .TP
 .TP
 .B packages
 .B packages
+Which packages must be used. This section can contain the following keywords:
+.RS
+.TP 
+.I packages
+A comma-separated list of packages that are needed to compile the targets.
+Valid for all platforms. In order to differentiate between platforms, you
+can prepend the keyword
+.I packages
+with the OS you are compiling for, e.g. 
+.I linuxpackages
+if you want the makefile to use the listed packages on linux only.
+.TP
+.I fcl
+This is a boolean value (0 or 1) that indicates whether the FCL is used.
+.TP
+.I rtl
+This is a boolean value (0 or 1) that indicates whether the RTL should be
+recompiled.
+.RE
 .TP
 .TP
 .B postsettings
 .B postsettings
+Anything that is in this section will be inserted as-is in the makefile
+.I after
+the makefile rules that are generated by fpcmake, but 
+.I before
+the general configuration rules.
+. In it, you cannot use variables that are defined by fpcmake rules, but you
+can define additional rules and configuration variables. 
 .TP
 .TP
 .B presettings
 .B presettings
+Anything that is in this section will be inserted as-is in the makefile
+.I before
+the makefile target rules that are generated by fpcmake. This means that 
+you cannot use any variables that are normally defined by 
 .TP
 .TP
 .B rules
 .B rules
+In this section you can insert dependency rules and any other targets 
+you wish to have. Do not insert 'default rules' here.
 .TP
 .TP
 .B sections
 .B sections
+Here you can specify which 'rule sections' should be included in the Makefile. 
+The sections consist of a series of boolean keywords; each keyword decies
+whether a particular section will be written to the makefile. By default,
+all sections are written.
+ 
+You can have the following boolean keywords in this section.
+.RS
+.TP
+.I none
+If this is set to true, then no sections are written.
+.TP
+.I units
+If set to 
+.I false
+, 
+.B fpcmake 
+omits the rules for compiling units.
+.TP
+.I exes
+If set to 
+.I false
+, 
+.B fpcmake 
+omits the rules for compiling executables.
+.TP
+.I loaders
+If set to 
+.I false
+, 
+.B fpcmake 
+omits the rules for assembling assembler files.
+.TP
+.I examples
+If set to 
+.I false
+, 
+.B fpcmake 
+omits the rules for compiling examples.
+.TP
+.I package
+If set to 
+.I false
+, 
+.B fpcmake 
+omits the rules for making packages.
+.TP
+.I compile
+If set to 
+.I false
+, 
+.B fpcmake 
+omits the generic rules for compiling pascal files.
+.TP
+.I depend
+If set to 
+.I false
+, 
+.B fpcmake 
+omits the dependency rules.
+.TP
+.I install
+If set to 
+.I false
+, 
+.B fpcmake 
+omits the rules for installing everything.
+.TP
+.I sourceinstall
+If set to 
+.I false
+, 
+.B fpcmake 
+omits the rules for installing the sources.
+.TP
+.I zipinstall
+If set to 
+.I false
+, 
+.B fpcmake 
+omits the rules for installing archives.
+.TP
+.I clean
+If set to 
+.I false
+, 
+.B fpcmake 
+omits the rules for cleaning the directories.
+.TP
+.I libs
+If set to 
+.I false
+, 
+.B fpcmake 
+omits the rules for making libraries.
+.TP
+.I command
+If set to 
+.I false
+, 
+.B fpcmake 
+omits the rules for composing the command-line based on the various
+variables.
+.TP
+.I exts
+If set to 
+.I false
+, 
+.B fpcmake 
+omits the rules for making libraries.
+.TP
+.I dirs
+If set to 
+.I false
+, 
+.B fpcmake 
+omits the rules for running make in subdirectories..
+.TP
+.I tools
+If set to 
+.I false
+, 
+.B fpcmake 
+omits the rules for running some tools as the erchiver, UPX and zip.
+.TP
+.I info
+If set to 
+.I false
+, 
+.B fpcmake 
+omits the rules for generating information.
+.RE
 .TP
 .TP
 .B targets
 .B targets
+In this section you can define the various targets. The following keywords
+can be used there:
+.RS
+.TP
+.I dirs
+A space separated list of directories where make should also be run.
+.TP
+.I examples
+A space separated list of example programs that need to be compiled when
+the user asks to compile the examples. Do not specify an extension, 
+the extension will be appended.
+.TP
+.I loaders
+A space separated list of names of assembler files that must be assembled.
+Don't specify the extension, the extension will be appended.
+.TP
+.I programs
+A space separated list of program names that need to be compiled. Do not
+specify an extension, the extension will be appended.
+.TP
+.I rst
+a list of 
+.I rst
+files that needs to be converted to 
+.I .po 
+files for use with GNU 
+.B gettext
+and internationalization routines.
+.TP
+.I units
+A space separated list of unit names that need to be compiled. Do not
+specify an extension, just the name of the unit as it would appear un a 
+.I uses
+clause is sufficient.
+.RE
 .TP
 .TP
 .B tools
 .B tools
+In this section you can specify which tools are needed. Definitions to
+use each of the listed tools will be inserted in the makefile, depending
+on the setting in this section.
+
+Each keyword is a boolean keyword; you can switch the use of a tool on or
+off with it.
+
+The following keywords are recognised:
+.RS
+.TP
+.I toolppdep
+Use 
+.B ppdep 
+the dependency tool. 
+.I True
+by default.
 .TP
 .TP
+.I toolppumove
+Use
+.B ppumove
+the Free Pascal unit mover.
+.I True
+by default.
+.TP
+.I toolppufiles
+Use the 
+.B ppufile
+tool to determine dependencies of unit files.
+.I True
+by default.
+.TP
+.I toolsed
+Use 
+.B sed
+the stream line editor.
+.I False
+by default.
+.TP
+.I tooldata2inc
+use the 
+.B data2inc 
+tool to create include files from data files.
+.I False
+by default.
+.TP
+.I tooldiff
+Use the GNU 
+.B diff
+tool.
+.I False
+by default.
+.TP
+.I toolcmp
+Use the 
+.B cmp
+file comparer tool
+.I False
+by default.
+.TP
+.I toolupx
+Use the
+.B upx
+executable packer
+.I True
+by default.
+.TP
+.I tooldate
+use the 
+.B date
+date displaying tool.
+.I True
+by default.
+.TP
+.I toolzip
+Use the
 .B zip
 .B zip
+file archiver. This is used by the zip targets.
+.I True
+by default.
+.RE
+.TP
+.B zip
+This section can be used to make zip files from the compiled units and
+programs. By default all compiled units are zipped. The zip behaviour can
+be influencd with the presettings and postsettings sections.
 
 
+The following keywords can be used in this unit:
+.RS
+.TP
+.I zipname
+this file is the name of the zip file that will be produced.
+.TP
+.I ziptarget
+is the name of a makefile target that will be executed before the zip is
+made. By default this is the 
+.I install
+target.
+.RE
 .SH SEE ALSO
 .SH SEE ALSO
 .IP 
 .IP 
 .BR  fpcmake (1)
 .BR  fpcmake (1)