226 lines
7.3 KiB
Plaintext
226 lines
7.3 KiB
Plaintext
================================================================================
|
|
|
|
BDiff / BPatch Build Instructions
|
|
|
|
================================================================================
|
|
|
|
|
|
Introduction
|
|
--------------------------------------------------------------------------------
|
|
|
|
BDiff / BPatch is written in Object Pascal and is targeted at Delphi XE. The
|
|
Delphi IDE can be used to modify the source and to perform test builds. Final
|
|
builds should be built using the provided makefile, but you can get away with
|
|
using the IDE if you don't change any resources.
|
|
|
|
These instructions only apply to building the current release of BDiff / BPatch.
|
|
Earlier releases back to v0.2.6a will have their own versions of this file.
|
|
|
|
|
|
Requirements
|
|
--------------------------------------------------------------------------------
|
|
|
|
You need the following tools to perform a full build and release of BDiff /
|
|
BPatch:
|
|
|
|
Delphi Command Line compiler (DCC32)
|
|
------------------------------------
|
|
|
|
The preferred version is Delphi XE. If you have this compiler please use it. The
|
|
DELPHIROOT environment variable must be set to the install path of the version
|
|
Delphi you are using. DCC32.exe must be present in the Bin sub-directory of the
|
|
path specified by DELPHIROOT. If DELPHIROOT is not set then Make will fail.
|
|
|
|
Alternatives:
|
|
|
|
+ Unicode versions of Delphi other than XE may work, but haven't been tested.
|
|
Non Unicode compilers will fail to compile the code.
|
|
|
|
+ Only versions of Delphi that ship with the DCC32 command line compiler can
|
|
be used with the make files.
|
|
|
|
+ As noted above you can compile Pascal code from the Delphi IDE instead of
|
|
running DCC32.
|
|
|
|
BRCC32 resource compiler (BRCC32)
|
|
---------------------------------
|
|
|
|
BRCC32 is distributed with Delphi. It is needed to compile resource files. The
|
|
Makefile expects to find BRCC32 in the same directory as DCC32.
|
|
|
|
Borland MAKE
|
|
------------
|
|
|
|
This is the make tool that ships with Delphi. You can use any version that
|
|
works. I've tested only the version that ships with Delphi XE. The makefile
|
|
calls Make recursively: it uses the same command line that you used to call it,
|
|
so there are no requirements as to the location of Make.
|
|
|
|
DelphiDabbler Version Information Editor (VIEd)
|
|
-----------------------------------------------
|
|
|
|
This program is required to convert the .vi files that specify version
|
|
information into an intermediate .rc file that is compiled by BRCC32. VIEd is
|
|
expected to be on the system path unless the VIEDROOT environment variable is
|
|
set to indicate VIEd's installation directory. You can get VIEd here:
|
|
http://delphidabbler.com/software/vied
|
|
|
|
Zip.exe
|
|
-------
|
|
|
|
This program is required to create the release exe file. Again it is assumed to
|
|
be on the path unless the ZIPROOT environment variable is set to its install
|
|
directory. You can get a Windows version at:
|
|
http://stahlforce.com/dev/index.php?tool=zipunzip
|
|
|
|
|
|
Dependencies
|
|
--------------------------------------------------------------------------------
|
|
|
|
The source depends only on the Delphi VCL, so provided you have Delphi
|
|
installed, the source should compile without building any other libraries.
|
|
|
|
|
|
Preparations
|
|
--------------------------------------------------------------------------------
|
|
|
|
Get the source code
|
|
-------------------
|
|
|
|
The source code of BDiff / BPatch is maintained in the delphidabbler/bdiff Git
|
|
repository on GitHub at https://github.com/delphidabbler/bdiff
|
|
|
|
Each release from v0.2.5 onwards is available from GitHub. You can download an
|
|
archive containing the required release. Note that releases prior to v0.2.7 were
|
|
originally maintained in a Subversion repository and therefore their
|
|
documentation will refer to Subversion rather than Git.
|
|
|
|
Once the source is cloned or forked you should end up with a folder structure
|
|
like this:
|
|
|
|
+--+ { root: .gitignore, this file, and some documentation}
|
|
|
|
|
+-- Docs { documentation files }
|
|
|
|
|
+-- Src { project group and master make files }
|
|
| |
|
|
| +-- BDiff { source and makefile for BDiff }
|
|
| |
|
|
| +-- BPatch { source and makefile for BPatch }
|
|
| |
|
|
| +-- Common { code common to both programs }
|
|
|
|
|
+-- Test { test scripts }
|
|
|
|
If, by chance you also have a Build directory and sub-directories don't worry.
|
|
Git users will also see the usual .git hidden directory.
|
|
|
|
Configure the source tree
|
|
-------------------------
|
|
|
|
Before you can get hacking, you need to prepare the code. Open a command
|
|
console, navigate into the Src sub-folder and do:
|
|
|
|
> Make config
|
|
|
|
You may need to replace "Make" above with the full path to Make if it isn't on
|
|
the path, or if the Make that runs isn't the Borland / CodeGear version.
|
|
|
|
Once "Make config" has completed your folder structure should have changed to:
|
|
|
|
+--+
|
|
|
|
|
+-- Build { contains files created in build process }
|
|
| |
|
|
| +-- Bin { parent of binary folders }
|
|
| | |
|
|
| | +-- BDiff { receives binary files for BDiff (.dcu and .res) }
|
|
| | |
|
|
| | +-- BPatch { receives binary files for BPatch (.dcu and .res) }
|
|
| |
|
|
| +-- Exe { receives executable files }
|
|
| |
|
|
| +-- Release { receives release zip file }
|
|
|
|
|
+-- Docs
|
|
|
|
|
+-- Src
|
|
| |
|
|
| +-- BDiff
|
|
| |
|
|
| +-- BPatch
|
|
|
|
|
+-- Test
|
|
|
|
Git has been configured to ignore the Build folder and its contents. In addition
|
|
Make will have created .cfg files from templates. These files are needed for
|
|
DCC32 to run correctly. The .cfg files will be ignored by Git.
|
|
|
|
If you are intending to use the Delphi IDE to compile code, you should also do:
|
|
|
|
> Make res
|
|
|
|
This compiles the resource files that the IDE needs to link into compiled
|
|
executables.
|
|
|
|
Modify the source
|
|
-----------------
|
|
|
|
If you plan to modify the source, you can do it now.
|
|
|
|
If you are using the Delphi IDE you should load the BDiff.groupproj project
|
|
group file from the Src folder into the IDE - this contains both the BDiff and
|
|
BPatch targets.
|
|
|
|
Compile
|
|
-------
|
|
|
|
Compile the code by doing
|
|
|
|
> Make exe
|
|
|
|
This builds the resources then builds the whole of the Pascal source using the
|
|
DCC32 command line compiler.
|
|
|
|
Even if you have built the code in the IDE you advised to run "Make exe".
|
|
|
|
At any time you can rebuild the resources using "Make res" or rebuild the pascal
|
|
code without also building resources by using "Make pascal".
|
|
|
|
Testing
|
|
-------
|
|
|
|
Some simple tests can be run to check that BDiff and BPatch are working
|
|
correctly. For details see ReadMe.txt in the Test folder.
|
|
|
|
Prepare the executable release file
|
|
-----------------------------------
|
|
|
|
If you want to create a zip file containing the executable programs and required
|
|
documentation do:
|
|
|
|
> Make release
|
|
|
|
This deletes any temporary files then creates the required zip file. You can
|
|
change the default name of the zip file by defining the RELEASEFILENAME
|
|
environment variable with the required name (excluding extension). For example,
|
|
to generate a release file named my-file.zip define RELEASEFILENAME as 'my-file'
|
|
or do:
|
|
|
|
> Make -DRELEASEFILENAME=myfile release
|
|
|
|
If you issue a Make with no target it will re-run config, build the executable
|
|
code and create the release.
|
|
|
|
Tidy up
|
|
-------
|
|
|
|
At any time you can tidy up temporary files by doing:
|
|
|
|
> Make clean
|
|
|
|
If you also want to remove the .cfg files generated from .cfg.tplt files along
|
|
with the entire Build directory you can do:
|
|
|
|
> Make deepclean
|