Mail Archives: djgpp/1997/01/15/18:55:38
Leath Muller <leathm AT gbrmpa DOT gov DOT au> wrote:
> > Nope - it was MSVC compiled.
>
> Ummm... hello? Anybody home? ;)
Not me...certainly not in this neighborhood :-)).
> If your using a true DOS app, not one created from the MSVC AppWizard,
> (true being with a DOS compiler, such as DJGPP, or TC, etc etc), you
I told MSVC 4.1 on NT4 to create a new workspace to do a "Console mode
app" and hand entered a main() function that goes thru its argv like this:
#include <stdio.h>
#include <errno.h>
#include <io.h>
...
while (argc > 0) {
ff_ret = _findfirst (*argv, &fileinfo);
if (ff_ret == -1) {
printf ("_findfirst(\"%s\") returns errno=%d", errno);
}
else {
while (_findnext(ff_ret, &fileinfo) == 0) {
printf ("\"%s\"\n", fileinfo.name);
}
}
argc--; argv++;
}
and I get LFNs out.
> can't use LFN because NT effectively uses DOS 5, which doesn't support
> LFN. DOS 7 is the only DOS that does, ie: Win95...
I guess that could explain the lack of LFN support from DJGPP.
> > I've considered switching to the Cygnus gnu-win32 stuff, but from what I
> > remember, they require POSIX style directory paths (using forward slashes,
> > etc) and I need to use some DOS tools (e.g. MS C, et al) that probably
> > wouldn't care much for filenames like //c/directory/file.c.
>
> Write a simple parser... :)
Actually, I was thinking of adding a "dosify" function to GNU make that
could do string conversions...
DOS_INCLUDE_DIRS := $(dosify $(INCLUDE_DIRS))
MSVC_INCLUDE_OPTS := $(addprefix /I ,$(DOS_INCLUDE_DIRS))
or something like that...but using the GNU make in DJGPP has saved me from
needing to do that particular task. I have no need for any of my build
tools to get anywhere near Win16 (much less DOS) - I just need a 'GNU
make' program that can run from command prompt in Win95 and WinNT 4.x. I
want to use the same makefiles between Win32 and Unix platforms and I'm
familiar with GNU make and the others working on this stuff know general
"makefile" syntax (as opposed to "cookfile" or whatever), so it's a
natural choice. And the DJGPP supplied toolset lets me do that under
Win95...it's just now that I'm trying to get these to work with NT 4.0
that I'm having problems.
What we have been using for other projects is the [Unix] vendor-supplied
"make" tool and the [Windoze] MKS Toolkit supplied "make". This has
problems because the fancier things that you might want to do in a
makefile have different syntaxes (or availability) in the "make" tools
across platforms. Recommendations for other approaches would be welcome,
but I never seem to have time to do more drastic changes...I think it'll
end up being feasible to use the Cygnus stuff, but it's a little work and
it'd be a lot easier if someone else did the work of getting DJGPP to do
the trick under NT 4 (which I would do, but I'm severely lacking in the
background necessary to put it together).
Has anyone seen any other "DOS apps" that can show long filenames under NT
4.0? If so, then maybe some code could be borrowed form there?
> > Hmmm...have the GNU make sources made it to a point where they just build
> > (and work) using native MS tools?
>
> Ouch, I would consider that a backward step to say the least... *GRIN*
Not if it works...
Thanx,
Scott
- Raw text -