delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-workers/1996/09/12/21:27:24

Date: Thu, 12 Sep 1996 21:24:05 -0400
From: dj (DJ Delorie)
Message-Id: <199609130124.VAA20839@delorie.com>
To: fighteer AT cs DOT com
CC: djgpp-workers AT delorie DOT com
In-reply-to: <3238BCDA.A78@cs.com> (fighteer@cs.com)
Subject: Re: DJGPP Installation Diagnostic Program

We have a unix program like this at work called "verify-workstation".
Over the years, we've taught it how to detect and suggest corrections
for *ALL* known configuration issues that cause problems with the
common software we use.  I think such a program for djgpp would be of
great value.

> 1) Would it be better to design the program as a plain text program or
> using some sort of windowing interface?  The latter would be more familiar
> to many users, but I have far less experience with it.  If you think this
> is a good idea, I would welcome pointers to sample code to implement a
> text-based windowing system (using conio functions or whatever).

Plain text makes less demands on the system, and thus is more likely
to run.  I think it should operate in three modes:

* The user runs it and it prints out a summary of their system, what's
  available to djgpp, and a list of stuff that needs to be fixed.

* The user puts it at the end of their autoexec.bat, and it prints a
  warning if something changes that might cause a problem, else it's
  silent.

* The user wants a summary of their configuration to post to the 'net

Perhaps the default (no parameters) would be to print a screen full of
options for what they are trying to use djgpp for (C, C++, Quake, Ada,
graphics, sound, performance, etc).

> 2) Should I even write the program with djgpp?  A significant number of
> users fail to install a DPMI host when they install their files, yet the
> program would require DPMI to run.

I think you can write it with djgpp IF you modify the stub to include
verbose error messages with instructions on correcting the errors.

> 3) As an alternative to #2, I could use the 'pmode' stub to make the
> program standalone.  Is this a good solution?

Not if there are errors that prevent pmode programs from running.
This program *must* be useful on all systems.

>  - DJGPP files present

The basic development ones, at least.  With V2 there aren't any
runtime files (like go32.exe).  The minimum would be libc, gcc, cpp,
cc1, as, ld, specs, stdio.h.

>  - DJGPP files installed in the correct directory structure

DJGPP unzipped with pkunzip and without -d.

>  - Environment variables set

Set to meaningful values, to!

>  - DJGPP version

Hard to detect, but libc does have a version stamp in it.  Printing
this would be useful.

>  - Available memory

and what type of memory it is.

>  - Evaluate PATH to look for other compilers' progs

And what type of program "make.exe" turns out to be.

>  - Trivial program compilation

V1 had one of these also.

>   Recommendations on the ordering of these tests?

(1) Can the system run djgpp?
(2) Is the system configured according to the directions?
(3) Stuff that might cause problems (bcc, etc)
(4) performance issues.

> 5) Here are some additional ideas for things to look at, but I'm not sure
> how workable/necessary they would be:
> 
>  - Look for old v1.x installations

make, ld, and gcc at least.

>  - Check Windows 95 LFN support (I don't have Win95 to test this...)

Perhaps as part of the status dump, but I don't know of too many
problems that depend on LFN (emacs?)

>  - Checklist for necessary djgpp tools/packages

This is where that screen full of options comes into play.

>  - Refer problem areas to relevant FAQ sections

I'd recommend limiting this to mentioning
http://www.delorie.com/djgpp/ The FAQ has already changed URLs once
(from V1 to V2).

>  - Debug autoexec.bat/config.sys

Tricky.

>  - Debug DJGPP.ENV

Useful, but keep in mind that just relying on environment settings
within your program will skip all the other sections.  Make sure
that $DJGPP points to the installation area, and that it points
to djgpp.env, and that the $DJGPP and $DIDIR set within djgpp.env
haven't been tampered with.

>  - Implement recommended changes to system files

This scares me.  I never let programs mess with my system files.
However, an option to produce a log file with the changes in it is a
good idea.

> 7) What should I call it?  ;)  "DJDIAG" comes to mind, but I understand
> that only DJ himself is allowed to write programs starting with his initials.

Hee hee.  For packages, at least, I reserve dj*.  Good names...

	djverify	djcheck		djgpp_ok	djpcscan

They all seem to start with dj, don't they?  I think it's important to
have a name that definitely ties it to djgpp, so that people don't
confuse it with the myriad other system checkers out there.

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019