#
# pasm Makefile
#
# You may compile pasm without source code modifications for the
# following architectures:
# -DAmigaOS68k
# -DAmigaOSPPC
# -DNetBSD68k
# -DSolarisSparc
# -DSunOSSparc
# -DSCOi386
# -DLinuxi386
# -DLinuxAlpha


CC = vbcc://bin/vc
COPTS = -DAmigaOS68k -DOFMT_DEFAULT=OFMT_ELF
CLIBS = -lmieee
DIR = AmigaM68k

#############################################################################

PPCobjects = $(DIR)/main.o $(DIR)/support.o $(DIR)/pass.o $(DIR)/eval.o \
	     $(DIR)/tables.o $(DIR)/errors.o $(DIR)/instructions.o \
	     $(DIR)/directives.o $(DIR)/predefs.o $(DIR)/elfrelnames.o \
	     $(DIR)/output_abs.o $(DIR)/output_elf.o $(DIR)/output_ehf.o


pasm: $(PPCobjects)
	$(CC) $(COPTS) -c  -o $(DIR)/version.o version.c
	$(CC) $(COPTS) -o pasm $(PPCobjects) $(DIR)/version.o $(CLIBS)


$(DIR)/main.o: main.c ppcasm.h
	$(CC) $(COPTS) -c -o $@ main.c

$(DIR)/support.o: support.c ppcasm.h
	$(CC) $(COPTS) -c -o $@ support.c

$(DIR)/pass.o: pass.c ppcasm.h
	$(CC) $(COPTS) -c -o $@ pass.c

$(DIR)/eval.o: eval.c ppcasm.h
	$(CC) $(COPTS) -c -o $@ eval.c

$(DIR)/tables.o: tables.c ppcasm.h
	$(CC) $(COPTS) -c -o $@ tables.c

$(DIR)/errors.o: errors.c ppcasm.h
	$(CC) $(COPTS) -c -o $@ errors.c

$(DIR)/instructions.o: instructions.c ppcasm.h
	$(CC) $(COPTS) -c -o $@ instructions.c

$(DIR)/directives.o: directives.c ppcasm.h
	$(CC) $(COPTS) -c -o $@ directives.c

$(DIR)/predefs.o: predefs.c
	$(CC) $(COPTS) -c -o $@ predefs.c

$(DIR)/elfrelnames.o: elfrelnames.c
	$(CC) $(COPTS) -c -o $@ elfrelnames.c

$(DIR)/output_abs.o: output_abs.c ppcasm.h
	$(CC) $(COPTS) -c -o $@ output_abs.c

$(DIR)/output_elf.o: output_elf.c ppcasm.h elf.h
	$(CC) $(COPTS) -c -o $@ output_elf.c

$(DIR)/output_ehf.o: output_ehf.c ppcasm.h ehf.h
	$(CC) $(COPTS) -c -o $@ output_ehf.c
