Previous mail
Next mail
Unformatted/full headers
Overview 10 days
Subject
Date
Thread
Author
From: Maurice Lombardi
Subject: Hi everyone - got a question about GPC
Date: 16 Feb 2010, 18:45:51
Rugxulo a écrit :
>
>>> 2). DJGPP has a habit of making both "blah" and "blah.exe" when you
>>> type "gpc blah.pas -o blah". This also affects your GP program. It's
>>> really only useful with *nix makefiles (so the target and file will be
>>> recognized), but it's pretty useless and annoying otherwise.
>> AFAIR, "blah" is the COFF executable which can be called from other
>> DJGPP programs,
>
> Honestly, nobody uses plain COFF files anymore. That's a relic from
> when a separate GO32.EXE was needed (DJGPP v1). But DJGPP can "call"
> (run) either plain COFF or .EXEs anyways.
>
>> and "blah.exe" is prefixed with a DOS loader (which
>> is done by the "stubify" program), so it can be called from plain
>> DOS programs as well. So depending on your needs, either or both may
>> be useful.
>>
>> But it's been long since I've used DJGPP, so in case this was
>> inaccurate or incomplete, Maurice will correct me, I hope.
>
> You're right in that it used to be that way. But somewhere along the
> line it changed. I'm not sure if it's correct, but I *think* BinUtils
> (e.g. LD) handles it differently now. At least, using DJGPP 2.04, GCC
> 4.4.2, LD 2.19.1, 'gcc -s -O blah.c -o blah" (simple "Hello, World!"
> example) produces "blah" and "blah.exe" that are 100% identical (with
> stub, i.e. both in .EXE format).
Correct, this was not the case for gcc 3.4.4 I use as backend for gpc.
In fact for that reason, in my personal works I always use the option -o
blah.exe.
This causes no extra typing because I work in an editor able to launch a
compiler with a single click through a script like
#! /bin/sh
echo $MSYSTEM
gp $(basename "$1" | tr [A-Z] [a-z]) \
-o $(basename "$1" | sed -e 's/\(.*\)\.[^.]*$/\1\.exe/') \
$2 -march=prescott \
--unit-path=. --unit-path=c:/lombardi/$MSYSTEM/gpc/pascal_u \
--unit-path=c:/$MSYSTEM/units \
--unit-destination-path=c:/lombardi/$MSYSTEM/o \
`head -n 1 "$1" | sed -e '/^[^"]*$/d;s/^[^"]*"//;s/"[^"]*$//'` \
2>&1 | sed ':1;s,/[^/.][^/]*/\.\./,/,;t 1'
MSYSTEM is either DJGPP or MINGW (set when launching the editor)
$2 is --autobuild or nothing
the next to last line recovers extra compilation parameters, program
dependent, which are putted in the first line between two " " as a
Pascal comment between {}
the last line (borrowed from mingw HOWTO) takes care of the annoying
../../ which are interspersed in pathes especially when you use the -v
option
All this depends on your habits in files organisation, default
parameters if any etc
As editor I have used in DOS/Windows TextPad, FPE, Context (which gave
me the idea of the parameters in the first line, in which it is built
in) and in Linux gedit, SCite (others more common editors are too C and
makefile oriented: there is really no reason now to use a makefile in
pascal).
These editors (at least those I use now) generate an error buffer and
are able to open directly the proper file and put the carret at proper
place when clicking on an error message.
Very probably there are many others (I never tried OS X for example),
and many are free.
Maurice
Previous mail
Next mail
Unformatted/full headers
Overview 10 days
Subject
Date
Thread
Author
Note: This page contains information that does not originate from the owner of this web site, but from the authors of the mails archived. The owner of this web site is not responsible for the content of such information. Any use of that infomation requires the consent of the respective author.
Where WWW addresses (URLs) in the mails archived are marked as hyperlinks, this is only for the comfort of the reader. The content of the web pages linked to like this does not necessarily reflect the opinion of the owner of this web site or of the authors of the mails archived. The owner of this web site is not responsible for the content of such web pages. Those pages are explicitly not to be considered as part of the content of this page, but merely as references.
This page was created by Crystal 0.999 (Linux 2.4.27/i686).