I hope that you have been able to figure this out, since you asked so long ago, but here's what I'd do:
# Simple Makefile for building a3a.exe
all: a3a.exe
a3a.exe: a3driver.obj
g++ -o a3a.exe a3driver.obj
a3driver.obj: a3driver.cpp /user/cse232/Examples/example32.sequence.cpp
g++ -c a3driver.cpp
- `all` is the first "target" in the Makefile. (In the absence of any other instruction, make will attempt to build the first target found in the Makefile.) `all` depends on a3a.exe, so to satisfy `all`, make must build `a3a.exe`, so it looks for a rule for target `a3a.exe`.
- `a3a.exe` depends on `a3driver.obj`, so to satisfy `a3a.exe`, make must first (a) build `a3driver.obj`, and then execute the command `g++ -o a3a.exe a3driver.obj`, which links the .obj to create the .exe.
- `a3driver.obj` depends on 2 files, a3driver.cpp and /user/cse232/Examples/example32.sequence.cpp (which I assume is being included by a3driver.cpp; if not, this Makefile is incorrect....). Make has no targets for either of these files, but it *does* make sure that they both exist, and in the case of a3driver.cpp, makes sure that if a3driver.obj *already* exists, that it doesn't need to recreate a3driver.obj, unless either a3driver.cpp or /user/cse232/Examples/example32.sequence.cpp are newer than a3driver.obj. If so, it executes the command `g++ -c a3driver.cpp` to create a3driver.obj.
Whew...!