Re: [cc65] Compile problem

Date view Thread view Subject view

From: Mike McCarty (jmccarty_at_ssd.usa.alcatel.com)
Date: 2002-01-08 01:41:11


Been on vacation, so sorry this is late. I thought this might help the
OP. 

On Wed, 12 Dec 2001, Ullrich von Bassewitz wrote:

> Hi!
> 
> On Tue, Dec 11, 2001 at 08:40:01PM +0100, groepaz wrote:
> > 1) at program start, get current working dir and remember that
> 
> It's not as simple as that, since DOS has a current directory per drive.
> Things like
> 
>         d:..\..\include
> 
> are completely legal. The example above would be a path relative to the
> current directory on drive d:

[snip]

> Path handling in Windows/DOS is a mess, especially of you start to add UNC
> network paths (which are also legal paths).
> 
> So I would be really glad if you could find another solution for your
> problem :-)

Another way to solve this is to make part of the path come from
ENVIRONMENT VARIABLES, which most MAKE programs can read. One executes
a command to set a given build environment, which sets the environment
variables. These are read by the make program, and get put into the -I
paths. I have used this technique regularly. It keeps path names out of
my source (where it is a major pain), and allows my makefiles to be
generic as well (where the pain is a little less acute, but still
present).

As an example, one could have

   -I$(INCLPATH1)/ -I$(INCLPATH2)/

The environment variables for a DOS machine with target 1 might be

INCLPATH1=D:\CC65\INCLUDE\SYSTEM1
INCLPATH2=F:\COMPILERS\MYSTUFF\SYSTEM1

and for target 2 (or debug environment 2)

INCLPATH1=D:\CC65\INCLUDE\SYSTEM2
INCLPATH2=F:\COMPILERS\MYSTUFF\SYSTEM2

whereas on a Unix machine they might be

INCLPATH1=/cc65/include/system1
INCLPATH2=/compilers/mystuff/system1

and

INCLPATH1=/cc65/include/system2
INCLPATH2=/compilers/mystuff/system2


Note that 

#include <../debug.h>

Works just fine using this technique.

Naturally, one would pick different names for the paths, indicating
their use. They might be DEBUG_INCLUDE_PATH and MY_STANDARD_STUFF_PATH.

Mike
--  
char *p="char *p=%c%s%c;main(){printf(p,34,p,34);}";main(){printf(p,34,p,34);}
This message made from 100% recycled bits.
I can explain it for you, but I can't understand it for you.
I don't speak for Alcatel      <- They make me say that.


----------------------------------------------------------------------
To unsubscribe from the list send mail to majordomo_at_musoftware.de with
the string "unsubscribe cc65" in the body(!) of the mail.


Date view Thread view Subject view

This archive was generated by hypermail 2.1.3 : 2002-01-08 01:43:27 CET