#
# gcc Makefile for ca65
#

# ------------------------------------------------------------------------------

# The executable to build
EXE  	= ca65

# Library dir
COMMON	= ../common

# Several search paths. You may redefine these on the command line
CA65_INC = \"/usr/lib/cc65/asminc/\"

#
CC	= gcc
CFLAGS 	= -g -O2 -Wall -W -std=c89
override CFLAGS += -I$(COMMON)
override CFLAGS += -DCA65_INC=$(CA65_INC)
EBIND	= emxbind
LDFLAGS	=

# Perl script for macro file conversion
CVT=macpack/cvt-mac.pl

# -----------------------------------------------------------------------------
# List of all object files

OBJS =  anonname.o      \
	asserts.o       \
	condasm.o	\
	dbginfo.o	\
	ea65.o	      	\
	easw16.o        \
	enum.o          \
	error.o	      	\
	expr.o	      	\
	feature.o	\
	filetab.o	\
	fragment.o	\
	global.o       	\
	incpath.o      	\
	instr.o	       	\
	istack.o       	\
	lineinfo.o	\
	listing.o      	\
	macpack.o      	\
	macro.o	       	\
	main.o 	       	\
	nexttok.o      	\
	objcode.o      	\
	objfile.o      	\
	options.o      	\
	pseudo.o       	\
	repeat.o	\
	scanner.o	\
        segdef.o        \
	segment.o       \
	sizeof.o        \
	span.o          \
	spool.o         \
	struct.o        \
	studyexpr.o     \
	symentry.o      \
	symbol.o        \
	symtab.o	\
	token.o         \
	toklist.o      	\
	ulabel.o

# -----------------------------------------------------------------------------
# List of all macro files

INCS =	atari.inc       \
	cbm.inc		\
	cpu.inc		\
	generic.inc	\
	longbranch.inc

LIBS = $(COMMON)/common.a

# ------------------------------------------------------------------------------
# Makefile targets

# Main target - must be first
.PHONY: all
ifeq (.depend,$(wildcard .depend))
all:  	$(EXE)
include .depend
else
all:	depend
	@$(MAKE) -f make/gcc.mak all
endif

$(EXE):	$(INCS) $(OBJS) $(LIBS)
	$(CC) $(LDFLAGS) $(OBJS) $(LIBS) -o $@
	@if [ $(OS2_SHELL) ] ;	then $(EBIND) $(EXE) ; fi

inc:	$(INCS)

clean:
	$(RM) *~ core.* *.map

zap:	clean
	$(RM) *.o $(EXE) $(INCS) .depend

# ------------------------------------------------------------------------------
# Make the dependencies

.PHONY: depend dep
depend dep:	$(INCS) $(OBJS:.o=.c)
	@echo "Creating dependency information"
	$(CC) $(CFLAGS) -MM $(OBJS:.o=.c) > .depend

# -----------------------------------------------------------------------------
# Rules to make config includes

atari.inc:	macpack/atari.mac
	@$(CVT) $< $@ MacAtari

cbm.inc:	macpack/cbm.mac
	@$(CVT) $< $@ MacCBM

cpu.inc:	macpack/cpu.mac
	@$(CVT) $< $@ MacCPU

generic.inc:   	macpack/generic.mac
	@$(CVT) $< $@ MacGeneric

longbranch.inc:	macpack/longbranch.mac
	@$(CVT) $< $@ MacLongBranch










