Page 1 of 1

BUG: Makefile

Posted: Sat 22 Mar 2008 12:46
by Horace
ATTN: Developers

There is a bug in your makefile at the path Source\Make.bat of your latest sources v6.25.2.14 (and in earlier versions).

When the Delphi IDE is installed under non standard path, any *.dcp file
DOES NOT have its creation path defined.

For Example when the make.bat Line 94 issues the command:
"L:\Delphi7\Bin\dcc32.exe" -LE. dacvcl70.dpk
The following error occurs:

Code: Select all

Fatal: Could not create output file 'e:\default_programs\borland\delphi7\Projects\Bpl\dacvcl70.dcp'
This is because you forgot to sepecify the output path for the *.dcp files !!!
The option -LE does NOT tell the compiler where to put the *.dcp files. See:
http://safari.oreilly.com/1565926595/appa-1-fm2xml
You should add the -LN option which exists exactly for this purpose.
Like this:

Code: Select all

"L:\Delphi7\Bin\dcc32.exe" -LE. -LN. dacvcl70.dpk
I would suggest that you add the -LN. option not only to this line, but anywhere where *.dcp file gets created.

I tried this on Delphi 7 ( of course I corrected the IDE path in Source\Delphi7\Make.bat file)

I am enlosing the full debug output of the orignal Source\Make.bat file.
I enabled the Echo On.

Regards,
Horace


Code: Select all

rem *****************************************
*****************************

rem *

rem * ODAC

rem *

rem * Tasks:

rem *   1) Compile DAC packages;

rem *   2) Compile CRControls package;

rem *   2) Compile ODAC packages;

rem *

rem * Command line:

rem *   call ..\_Make.bat IDEName IDEVer CLR


rem *

rem * Parameters:

rem *   IDEName = (Delphi, CBuilder)

rem *   IDEVer = (5, 6, 7, 8, 9, 10, 11)

rem *   CLR = (CLR, WIN32) WIN32 - default

rem *****************************************
*****************************

rem Prepare =================================
=============================

rem =========================================
=============================

set IDEName=Delphi

set IDEVer=7

set CLR=

set PrjName=Odac

set PrjNameL=odac

set PrjNameU=ODAC

pushd

rem Test IDEName

if DelphiA == DelphiA goto IDENameOK

rem Test IDEVer

if 7A == 5A goto IDEVerOK

if 7A == 6A goto IDEVerOK

if 7A == 7A goto IDEVerOK

set PkgVer=70

rem Test CLR

if A == CLRA goto CLROK

set CLR=WIN32

rem Make paths ==============================
=============================

rem Create common paths

mkdir Odac

mkdir Odac\Lib

mkdir Odac\CRGrid

if 7A == 10A mkdir Odac\Include

rem Create CBuilder specific paths

if DelphiA == DelphiA goto SkipCBPaths

rem del /Q/S Odac\*.*

if DelphiA == CBuilderA goto CBuilder

if WIN32A == CLRA goto Delphi8

rem Compile =================================
=============================

rem Compile DAC packages ====================
=============================

"L:\Delphi7\Bin\dcc32.exe" -LE. dac70.dpk
Borland Delphi Version 15.0
Copyright (c) 1983,2002 Borland Software Corporation
G:\!\DEV\Delphi\Multiversion Components\ODAC\v6.25.2.14\src\Source\Dac.inc(224)
G:\!\DEV\Delphi\Multiversion Components\ODAC\v6.25.2.14\src\Source\Dac.inc(224)
G:\!\DEV\Delphi\Multiversion Components\ODAC\v6.25.2.14\src\Source\CLRClasses.pas(1173)
G:\!\DEV\Delphi\Multiversion Components\ODAC\v6.25.2.14\src\Source\Dac.inc(224)
G:\!\DEV\Delphi\Multiversion Components\ODAC\v6.25.2.14\src\Source\Dac.inc(224)
G:\!\DEV\Delphi\Multiversion Components\ODAC\v6.25.2.14\src\Source\DAConsts.pas(122)
G:\!\DEV\Delphi\Multiversion Components\ODAC\v6.25.2.14\src\Source\MemUtils.pas(1811)
G:\!\DEV\Delphi\Multiversion Components\ODAC\v6.25.2.14\src\Source\MTSCall.pas(271)
G:\!\DEV\Delphi\Multiversion Components\ODAC\v6.25.2.14\src\Source\Dac.inc(224)
G:\!\DEV\Delphi\Multiversion Components\ODAC\v6.25.2.14\src\Source\Dac.inc(224)
G:\!\DEV\Delphi\Multiversion Components\ODAC\v6.25.2.14\src\Source\CRParser.pas(1056)
G:\!\DEV\Delphi\Multiversion Components\ODAC\v6.25.2.14\src\Source\MemData.pas(9159)
G:\!\DEV\Delphi\Multiversion Components\ODAC\v6.25.2.14\src\Source\Dac.inc(224)
G:\!\DEV\Delphi\Multiversion Components\ODAC\v6.25.2.14\src\Source\CRConnectionPool.pas(726)
G:\!\DEV\Delphi\Multiversion Components\ODAC\v6.25.2.14\src\Source\CRAccess.pas(2129)
G:\!\DEV\Delphi\Multiversion Components\ODAC\v6.25.2.14\src\Source\Dac.inc(224)
G:\!\DEV\Delphi\Multiversion Components\ODAC\v6.25.2.14\src\Source\Dac.inc(224)
G:\!\DEV\Delphi\Multiversion Components\ODAC\v6.25.2.14\src\Source\Dac.inc(224)
G:\!\DEV\Delphi\Multiversion Components\ODAC\v6.25.2.14\src\Source\Dac.inc(224)
G:\!\DEV\Delphi\Multiversion Components\ODAC\v6.25.2.14\src\Source\CRXml.pas(1047)
G:\!\DEV\Delphi\Multiversion Components\ODAC\v6.25.2.14\src\Source\MemDS.pas(4019)
G:\!\DEV\Delphi\Multiversion Components\ODAC\v6.25.2.14\src\Source\Dac.inc(224)
G:\!\DEV\Delphi\Multiversion Components\ODAC\v6.25.2.14\src\Source\Win32Timer.pas(165)
G:\!\DEV\Delphi\Multiversion Components\ODAC\v6.25.2.14\src\Source\Dac.inc(224)
G:\!\DEV\Delphi\Multiversion Components\ODAC\v6.25.2.14\src\Source\Dac.inc(224)
G:\!\DEV\Delphi\Multiversion Components\ODAC\v6.25.2.14\src\Source\Dac.inc(224)
G:\!\DEV\Delphi\Multiversion Components\ODAC\v6.25.2.14\src\Source\DBMonitorIntf.pas(118)
G:\!\DEV\Delphi\Multiversion Components\ODAC\v6.25.2.14\src\Source\DBMonitorClient.pas(140)
G:\!\DEV\Delphi\Multiversion Components\ODAC\v6.25.2.14\src\Source\DASQLMonitor.pas(1142)
G:\!\DEV\Delphi\Multiversion Components\ODAC\v6.25.2.14\src\Source\DBAccess.pas(11284)
G:\!\DEV\Delphi\Multiversion Components\ODAC\v6.25.2.14\src\Source\DALoader.pas(621)
G:\!\DEV\Delphi\Multiversion Components\ODAC\v6.25.2.14\src\Source\Dac.inc(224)
G:\!\DEV\Delphi\Multiversion Components\ODAC\v6.25.2.14\src\Source\VirtualTable.pas(2005)
G:\!\DEV\Delphi\Multiversion Components\ODAC\v6.25.2.14\src\Source\DacVer.inc(5)
G:\!\DEV\Delphi\Multiversion Components\ODAC\v6.25.2.14\src\Source\DAVersionInfo.pas(45)
G:\!\DEV\Delphi\Multiversion Components\ODAC\v6.25.2.14\src\Source\Dac.inc(224)
G:\!\DEV\Delphi\Multiversion Components\ODAC\v6.25.2.14\src\Source\DAScript.pas(988)
G:\!\DEV\Delphi\Multiversion Components\ODAC\v6.25.2.14\src\Source\Dac.inc(224)
G:\!\DEV\Delphi\Multiversion Components\ODAC\v6.25.2.14\src\Source\DADump.pas(417)
G:\!\DEV\Delphi\Multiversion Components\ODAC\v6.25.2.14\src\Source\Dac.inc(224)
G:\!\DEV\Delphi\Multiversion Components\ODAC\v6.25.2.14\src\Source\CRBatchMove.pas(695)
G:\!\DEV\Delphi\Multiversion Components\ODAC\v6.25.2.14\src\Source\Dac.inc(224)
G:\!\DEV\Delphi\Multiversion Components\ODAC\v6.25.2.14\src\Source\DATransaction.pas(311)
dac70.dpk(58)
43989 lines, 0.58 seconds, 309856 bytes code, 1005 bytes data.

if 7A == 4A goto SkipDVcl

if 7A == 5A goto SkipDVcl

"L:\Delphi7\Bin\dcc32.exe" -LE. dacvcl70.dpk			****  THE PROBLEM IS HERE.  The -LN. option is MISSING  ***

Borland Delphi Version 15.0
Copyright (c) 1983,2002 Borland Software Corporation
G:\!\DEV\Delphi\Multiversion Components\ODAC\v6.25.2.14\src\Source\Dac.inc(224)
G:\!\DEV\Delphi\Multiversion Components\ODAC\v6.25.2.14\src\Source\DacGui.inc(459)
G:\!\DEV\Delphi\Multiversion Components\ODAC\v6.25.2.14\src\Source\DacVcl.pas(17)
dacvcl70.dpk(37)
Fatal: Could not create output file ''e:\default_programs\borland\delphi7\Projects\Bpl\dacvcl70.dcp'

pause
Press any key to continue . . .
P.S.
Below is an additional BENIGN error in the makefile.
Despite compiling for Delphi7 VCL, the makefile attempts to copy *.hpp files which belong to CBuilder.
This error gives the false impression that something went wrong in the makefile for users that never worked with CBuilder and have no idea about *.hpp files.

Code: Select all

copy ..\..\CRGrid\Source\CRControlsReg.hpp    Odac\Include 
The system cannot find the file specified.

copy ..\..\CRGrid\Source\CRGrid.hpp    Odac\Include 
The system cannot find the file specified.

if not 7A == 10A goto SkipD10BCCLib 

goto end 

popd

Posted: Mon 24 Mar 2008 09:03
by Plash
We have fixed the value of -LN parameter in dacvcl70.cfg file. The fix will be included in the next build of ODAC.