httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject Apache/Borland - MAKE.EXE options
Date Sun, 25 Jun 2000 19:51:50 GMT

Apache/Borland - MAKE.EXE options

This update concerns Borland MAKE.EXE build flags
ONLY and does not attempt to discuss any compiler
or linker flags.

Sorry the info is coming in dribs and drabs but
I'm taking things one step at a time whenever
I get a chance.

Borland MAKE.EXE info...

BC 5.5 uses MAKE.EXE v5.2 (c) 1987, 2000 Borland
BC 5.2 uses MAKE.EXE v5.0 (c) 1987, 1997 Borland
BC 4.0 uses MAKE.EXE v4.2 (c) 1987, 1995 Borland
BC 3.1 uses MAKE.EXE v3.1 (c) 1992 Borland

Notice that between 3.1 and 4.0 the copyright gets 
earlier. I believe that's because somewhere between
BC 3.1 ( Last best version for Windows 3.1 ) and 
BC 4.0 ( First weakest version for Win32 ) they 
actually changed the entire code base for MAKE.EXE
and it was subject to new copyrights. All the .ASM
looks different on an ICE machine and that's a sure
bet it's a differnt code base.

There are actually no MAJOR differences between any
of the versions of MAKE.EXE but there are some subtle
ones, which is what I was trying to discover.

MAKE -l 

-l = ( lowercase L in case you thought it was an I (EYE) )

-l enables the use of long command line arguments
without having to use any @xxxxx input files.

It is ON by default in MAKE 5.2 ( BC 5.5 ) but in prior 
versions of MAKE.EXE it is OFF by default and you have to 
specifically add it to your MAKE build options.

As a matter of fact... if you run 'MAKE /?' for both
version 5.2 (BC 5.5) and 5.0 (BC 5.2) the help screens
match byte for byte except for one character. In
the newer MAKE 5.2 the '-l' option now shows a plus
sign next to it '-l+' which means it is 'ON by default'
now. That's the ONLY visible change to the MAKE.EXE
help screens between version 5.0 and 5.2. There are no
'new' options at all ( at least not visible ).

It never hurts to have '-l' in there. Apache has some
HUGE command line output and bcc32.exe will bomb on just
about any Apache module if the controlling MAKE.EXE
does not have '-l' specified during the build.

NOTE: The '-l' option only appeared in MAKE.EXE 
versions that came with BC 4.0 and above.

You can STILL build Apache with BC 3.1 but without the '-l'
command line option which allows for very long command
lines you are forced to use @xxxxxx input files
for everything.

So that would be the 'back chain' on -l. All versions
of BC 4.0 and above will recognize it and use but 
BC 3.x will say 'Invalid MAKE flag' which is OK.

If anyone is trying to compile Apache as far back as 
BC 3.1 it only means they are probably as masochistic
as I am and they can just pull the -l flag off 
theselves and start whipping up the required 
@xxxxx LRF style input files.

MAKE -e 

Interesting option that goes back at least as far 
as MAKE.EXE v5.0 for BC 5.2.

It says that it 'Ignores redefinition of environment 
variable macros.' if specified. This relates to the
SOURCE= problem and it looks like it is 'on' by default
even though it doesn't list it that way.

I had experimented with it a lot in prior versions
but I thought they might have changed the way this
behaves in BC 5.5 because of the now infamous SOURCE=
thing in MSVC NMAKE files but no such luck.

I tried -e- to reverse the default but no effect.

It still doesn't help with the 'top down' versus
'bottom up' way the 2 different programs work nor
does it do anything new regarding re-use of 
same-name environment macros during the build 

It looks like the sequential renaming of SOURCE=
is going to have to remain for now.

MAKE -r 

I revisited the -r option to see if had any chance of
helping with the default build rules since -r 'Ignores
rules and macros defined in BUILTINS.MAK but nothing
new there... it's the same as was in MAK 5.0 and 
does nothing to provide any increase in compatibility

That's about it, really.

There are no other (visible) Borland MAKE.EXE options 
that really will affect anything to do with Apache and/or
increase MSVC DevStudio compatibility.

There aren't even any new 'secret' MAKE.EXE options
that will help, AFAIK. I put them all through an ICE 
machine and took them apart to see what 'secret' options 
there are. 

There are lots of them, but nothing that has anything
to do with increasing MSVC NMAKE.EXE compatibility.
Rats. I really was hoping an ICE machine on the newest
version would reveal the '-Pretend_We_Are_NMAKE' option
but no such luck ( at least not yet! ).

There are a few 'secret' MAKE.EXE parameters that I
haven't fully analyzed yet because the logic jumps 
are hard to trace but if they look like they have
anything to with NMAKE.EXE compatibility I will find 

If anyone has any clout with Borland then now's the
time to call in the favors. I can understand MS not
providing any compatibility for MAKE.EXE but somehow
I still can't believe there isn't a 'secret' 'Pretend
to be NMAKE' command switch for Borland's MAKE.EXE

It comes SO close it's hard to believe SOMEONE at
Borland woudln't have gone the extra yard to 
make it work 100%, even if they had to keep it
'secret' for legal reasons or something.


Looks like the following will be Apache's 'best bet'
MAKE.EXE options that should never have to be touched
again and will work with as many versions of Borland
as possible...

MAKE -s -l -N -f foo.mak

-s = Silent ( Borland equivalent of MSVC /nologo )
-l = (lowercase L) Allow long command lines ( Required for Apache )
-N = Increase NMAKE.EXE compatibility ( Required for MSVC files )
-f = Standard 'name of file' common to both MAKE and NMAKE.


Kevin Kiley
CTO, Remote Communications, Inc. - Online Internet Content Compression Server

View raw message