The workspace ("dsw") file is analogous to a top-level Makefile. It
contains references to all the project ("dsp") files and allows you to look
at them all at the same time. You can also build all of the projects at the
same time using the "Batch Build" command in MSVC.
The project ("dsp") file is analogous to an individual program's Makefile.
It contains all the information needed to create a specific binary
(executable or library).
There are two typical use cases that I am familiar with. In the first, I
load a workspace into MSVC and compile all the projects at once. In the
second, I load an individual project into MSVC (and it automatically creates
a workspace file in the same directory as the project file). To support the
second use case, I would like the project file in the lowest directory that
contains all the source code in its subdirectory tree. To support the first
use case, I would like the workspace file in the lowest directory that
contains all the project files in its subdirectory tree.
Thus, for example, the "freeglut.dsp" file would go in the "freeglut"
directory because its source code is found in "freeglut\src" and
"freeglut\include\GL". The other project file, "freeglut_static.dsp", would
also go in the "freeglut" directory because it uses exactly the same sources
and includes. The workspace file "freeglut.dsw" would go in the same
directory because that is the lowest directory that contains both of the
In the demo programs, the project file "lorenz.dsp" would go in the
"freeglut\progs\demos\lorenz" directory because that is the directory that
contains all of its source code. The other project files are analogous.
The workspace file "demos.dsw" would go in the "freeglut\progs\demos"
directory because that is the lowest directory that contains all the project
files in subdirectories.
John F. Fay
From: Steve Baker [mailto:sjbaker1@...]
Sent: Wednesday, July 09, 2003 7:39 PM
Subject: Re: [Freeglut-developer] Problems with freeglut-2.0.0.rc1 on
Nigel Stewart wrote:
> I would expect that the most common use-case is
> to build the freetype libraries, then build all
> the demos. Having dsw's match the granularity
> of the distribution archvies, makes some sense.
> Have individual dsw's for each demo program
> sounds troublesome.
Can't you use dsw's like Makefiles where you have a 'master' script
at the top level that invokes each of the lower level files in turn?
That's the best of both worlds (and what we always do with Makefile's).