[cc65] Makefiles for large projects

From: Karri Kaksonen <karri1sipo.fi>
Date: 2007-03-21 13:04:39
Hi,

I thought of sharing a nice technique for large cc65 projects that I 
have found useful. And as I want ALL the files to be linked in I cannot 
use libraries.

When compiling a Multicart that contains hundred of files I split up the 
  games into seperate directories. In each directory I have a rule im my 
Makefile like:

objects= \
	al.o \
	door1.o \
	password.o

all: $(objects)
	$(TOUCH) objlist
	$(RM) objlist
	for obj in $(objects); \
	    do $(ECHO) ../password/$$obj >> objlist; \
	done

In the final stage where I need to link all these binaries to form a 
cart I have this in my Makefile:

objects= \
	lnxhdr.o \
	encrypt1024.o \
	directory.o \
	title.o

objlists = \
	../resident/objlist \
	../miniloader/objlist \
	../abcmusic/objlist \
	../soundtool/objlist \
	../intro/objlist \
	../password/objlist \
	../chopperx/objlist \
	../parafly/objlist \
	../pontiac/objlist \
	../blackjack/objlist \
	../lsketch/objlist \
	../dicee/objlist \
	../treasure/objlist \
	../music/objlist

others = \
	@../resident/objlist \
	@../miniloader/objlist \
	@../abcmusic/objlist \
	@../soundtool/objlist \
	@../intro/objlist \
	@../password/objlist \
	@../chopperx/objlist \
	@../parafly/objlist \
	@../pontiac/objlist \
	@../blackjack/objlist \
	@../lsketch/objlist \
	@../dicee/objlist \
	@../treasure/objlist \
	@../music/objlist

target = cart.lnx

all: $(target)

$(target) : $(objects) $(objlists)
	$(CL) -t $(SYS) -o $@ -m lynxcart.map -C lynxcart.cfg \
	$(objects) $(others) lynx.lib

The stuff runs from a U3 memory stick on Windows. I have native Windows 
binaries for "make", "touch", "rm", "echo" etc.

In case you want a closer look at a complete Atari Lynx developers cc65 
system on an USB stick have a look at http://sipo.fi/cc65.u3p
It contains most linux shell commands, make, a colored graphical source 
editor, Handy Lynx emulator and debugger with single-stepping, 
breakpoints etc. Plus all cc65 and Lynx specific tools of course.

To set the environment variables you need to type "source bashrc" after 
you click on the cc65 icon on the USB stick.

--
Karri
----------------------------------------------------------------------
To unsubscribe from the list send mail to majordomo@musoftware.de with
the string "unsubscribe cc65" in the body(!) of the mail.
Received on Wed Mar 21 12:35:28 2007

This archive was generated by hypermail 2.1.8 : 2007-03-21 12:35:31 CET