[comp.sys.mac.programmer] All USEd up: problems getting TML Pascal to generate proper MPW build order

ra_robert@gsbacd.uchicago.edu (04/27/89)

I recently got a copy of MPW 3.0 bundled along with TML Pascal II 3.0 (it's a
good deal), 'cause I wanted to learn about MPW.  I'm trying to port a project
over from LSP, but have mainly been tearing my hair out. :->

My problem seems to be that I can't get TML Pascal to make the make file
correctly.  It's supposed to do it automatically within its project manager. 
Since the makefile isn't made right, I keep getting errors like:

# 19:58:32 ----- Build project: pencil2.
    TMLPascal setup.p
#			
MemTypes,QuickDraw,OSIntf,ToolIntf,PackIntf,globals,errors;
#			                                                    ?
### Error 502 Dependent unit "GLOBALS" has been recompiled since the last
compilation of "ERRORS".
#-------------------------------------------------------------------------------
    File "setup.p"; Line 7
#-------------------------------------------------------------------------------
### MPW Shell - Execution of pencil2.projout terminated.
### MPW Shell - Execution of TMLBuildProject terminated.


This is because the files "globals" and "errors" should have been compiled
first.

I'd very much appreciate it if someone could take a look at what I'm doing and
see if I'm making an error.  If I'm not, I'll call up TML tomorrow and ask what
gives.

These are my USES clauses; to be _very_ defensive, I've made everything later
in the project use everything earlier in the project. I know this ins't
necessary, and is probably not good style, but I wanted to be very sure of what
I was doing. I don't think this should hose things.


unit Globals;



interface

uses
MemTypes,QuickDraw,OSIntf,ToolIntf,PackIntf;

***********************************************************************************

unit errors;

interface

	uses
MemTypes,QuickDraw,OSIntf,ToolIntf,PackIntf,globals;


***********************************************************************************
	unit Setup;

interface


	uses
MemTypes,QuickDraw,OSIntf,ToolIntf,PackIntf,globals,errors;


***********************************************************************************

unit utils;

interface
	uses
MemTypes,QuickDraw,OSIntf,ToolIntf,PackIntf,globals,errors,setup;

***********************************************************************************

unit draw;


interface

	uses
MemTypes,QuickDraw,OSIntf,ToolIntf,PackIntf,globals,errors,setup, utils;

***********************************************************************************

unit scroll;

interface

	uses
MemTypes,QuickDraw,OSIntf,ToolIntf,PackIntf,globals,errors,setup, utils, draw;

***********************************************************************************

unit edit;


interface
	uses
MemTypes,QuickDraw,OSIntf,ToolIntf,PackIntf,globals,errors,setup,
utils,draw,scroll;

***********************************************************************************

unit pallete;


interface

	uses
MemTypes,QuickDraw,OSIntf,ToolIntf,PackIntf,globals, errors, setup, utils,
draw,
scroll,edit;

***********************************************************************************

unit content;


interface

	uses
		MemTypes,QuickDraw,OSIntf,ToolIntf,PackIntf,globals, errors,
setup, 
		utils, draw, scroll,edit, pallete;

***********************************************************************************

unit files;

interface

	uses
MemTypes,QuickDraw,OSIntf,ToolIntf,PackIntf,globals,errors, setup,
utils, draw, scroll,edit, pallete, content;

***********************************************************************************

unit window;

interface

	uses
MemTypes,QuickDraw,OSIntf,ToolIntf,PackIntf,globals, errors, setup, 
utils, draw, scroll,edit, pallete, content, files;

***********************************************************************************

unit menu;


interface

	uses
MemTypes,QuickDraw,OSIntf,ToolIntf,PackIntf,globals, errors, setup,
utils, draw, scroll,edit, pallete, content, files, window;

***********************************************************************************

unit event;


interface

	uses
MemTypes,QuickDraw,OSIntf,ToolIntf,PackIntf,globals, errors, setup,
utils, draw, scroll,edit, pallete, content, files, window, menu;

***********************************************************************************

program Pencil2;

	uses
MemTypes,QuickDraw,OSIntf,ToolIntf,PackIntf,globals, errors, setup,
utils, draw, scroll,edit, pallete, content, files, window, menu, event;
**********************************

And this is the make file it produces (I think this is the make file; in any
case it's the .proj that TMLP uses).  As you can see, the dependencies are
mixed up from what they were in the original project:


#############################################################
#
#   Created:      Monday, April 24, 1989 13:30:02
#
#   Project Name: pencil2
#   Project Type: Application
#
#   Finder Type:     APPL
#   Finder Creator:  ????
#   Set Bundle Bit:  FALSE
#
#   Project Source Files:
#      content.p
#      draw.p
#      edit.p
#      Errors.p
#      event.p
#      files.p
#      Globals.p
#      menu.p
#      pallete.p
#      pencil2.p
#      scroll.p
#      setup.p
#      utils.p
#      window.p

content.p.o D pencil2.Proj 6
	globals.p 6
	utils.p 6
	draw.p 6
	edit.p 6
	pallete.p 6
	scroll.p 6
	content.p
		TMLPascal content.p  

draw.p.o D pencil2.Proj 6
	globals.p 6
	utils.p 6
	draw.p
		TMLPascal draw.p  

edit.p.o D pencil2.Proj 6
	globals.p 6
	utils.p 6
	draw.p 6
	scroll.p 6
	edit.p
		TMLPascal edit.p  

Errors.p.o D pencil2.Proj 6
	globals.p 6
	Errors.p
		TMLPascal Errors.p  

event.p.o D pencil2.Proj 6
	globals.p 6
	setup.p 6
	utils.p 6
	draw.p 6
	edit.p 6
	pallete.p 6
	content.p 6
	window.p 6
	menu.p 6
	event.p
		TMLPascal event.p  

files.p.o D pencil2.Proj 6
	globals.p 6
	setup.p 6
	utils.p 6
	files.p
		TMLPascal files.p  

Globals.p.o D pencil2.Proj 6
	Globals.p
		TMLPascal Globals.p  

menu.p.o D pencil2.Proj 6
	globals.p 6
	setup.p 6
	utils.p 6
	draw.p 6
	edit.p 6
	pallete.p 6
	content.p 6
	window.p 6
	menu.p
		TMLPascal menu.p  

pallete.p.o D pencil2.Proj 6
	globals.p 6
	utils.p 6
	draw.p 6
	pallete.p
		TMLPascal pallete.p  

pencil2.p.o D pencil2.Proj 6
	globals.p 6
	setup.p 6
	utils.p 6
	draw.p 6
	edit.p 6
	pallete.p 6
	content.p 6
	window.p 6
	menu.p 6
	event.p 6
	pencil2.p
		TMLPascal pencil2.p  

scroll.p.o D pencil2.Proj 6
	Globals.p 6
	Setup.p 6
	utils.p 6
	draw.p 6
	scroll.p
		TMLPascal scroll.p  

setup.p.o D pencil2.Proj 6
	Globals.p 6
	setup.p
		TMLPascal setup.p  

utils.p.o D pencil2.Proj 6
	globals.p 6
	utils.p
		TMLPascal utils.p  

window.p.o D pencil2.Proj 6
	globals.p 6
	setup.p 6
	utils.p 6
	draw.p 6
	edit.p 6
	pallete.p 6
	content.p 6
	window.p
		TMLPascal window.p  

pencil2 DD   pencil2.Proj	 6
	globals.p.o	 6
	setup.p.o	 6
	utils.p.o	 6
	draw.p.o	 6
	edit.p.o	 6
	pallete.p.o	 6
	content.p.o	 6
	window.p.o	 6
	menu.p.o	 6
	event.p.o 6
	Errors.p.o 6
	files.p.o 6
	scroll.p.o 6
	pencil2.p.o
		Link -w -t 'APPL' -c '????' 6
			pencil2.p.o 6
			content.p.o 6
			draw.p.o 6
			edit.p.o 6
			Errors.p.o 6
			event.p.o 6
			files.p.o 6
			Globals.p.o 6
			menu.p.o 6
			pallete.p.o 6
			scroll.p.o 6
			setup.p.o 6
			utils.p.o 6
			window.p.o 6
			"{Libraries}"Runtime.o 6
			"{Libraries}"Interface.o 6
			"{TMLPLibraries}"TMLPasLib.o 6
			"{TMLPLibraries}"SANELib.o 6
			-o pencil2




So, I just don't see the "error of my ways". :->.  If someone could point it
out, I'd be _very_ grateful.  Or if there is no error evident, I'd like to know
that too, 'cause I'd like to give TML a call then.

Thanks,


Robert
 
Robert
------
ra_robert@gsbacd.uchicago.edu
------
generic disclaimer: all my opinions are mine

ra_robert@gsbacd.uchicago.edu (04/27/89)

In article <2931@tank.uchicago.edu>, ra_robert@gsbacd.uchicago.edu writes...
 
> 
>I recently got a copy of MPW 3.0 bundled along with TML Pascal II 3.0 (it's a
>good deal), 'cause I wanted to learn about MPW.  I'm trying to port a project
>over from LSP, but have mainly been tearing my hair out. :->

I guess it's not stricly necessary, but I just thought I'd add one comment to
my previous message, particularly since I've gotten some mail asking why am I
switching from THINK to TML. I'm not porting from THINK Pascal to TML because I
prefer TML, but rather because I'm trying to learn a bit about MPW.

TML Pascal seems quite nice, and if you're writing multi-language programs, or
need to use MPW, it might be better for your purposes than THINK.  But for
Pascal compilers, I think THINK is a much more elegant environment, has
exceptional debugging facilities, and is  -- in my opinion -- more in keeping
with the spirit of the Mac's "easy to use" interface.  I prefer THINK, but
knowledge never hurts. :->




Robert
------
ra_robert@gsbacd.uchicago.edu
------
generic disclaimer: all my opinions are mine