#----------------------------------------------------------------------------
# Makefile for GNU make
# Generated by m2 at 12-Mar-2006/20:21:55+1:00
# Project: orca
#----------------------------------------------------------------------------


#------ Compiler and tools

CC       = gcc
CXX      = g++
LINK	 = gcc
LINK_CXX = g++
TAR      = tar -cf
GZIP	 = gzip -9f
MOC      = $(QTDIR)/bin/moc


#------ Target settings

ORCA0_CFLAGS   = -DOR_CONFIG_BYTECODE -DOR_CONFIG_COMPRESS -DOR_CONFIG_HEX_TOKEN -DOR_CONFIG_MATH3D -std=gnu99 -DLANG_ORCA -pipe -Wall -W -g -DDEBUG 
ORCA0_CXXFLAGS = $(ORCA0_CFLAGS) 
ORCA0_INCPATH  = -Iunix -I.
ORCA0_LFLAGS   = 
ORCA0_LIBS     =  
ORCA0_SOURCES  = 	ovalue.c \
	context.c \
	array.c \
	parse.c \
	charset.c \
	series.c \
	op.c \
	error.c \
	tokenize.c \
	bytecode.c \
	gc.c \
	print.c \
	math.c \
	math3d.c \
	files.c \
	support/mt19937ar.c \
	unix/os.c \
	stdio.c

ORCA0_OBJECTS  = 	obj/ovalue.o \
	obj/context.o \
	obj/array.o \
	obj/parse.o \
	obj/charset.o \
	obj/series.o \
	obj/op.o \
	obj/error.o \
	obj/tokenize.o \
	obj/bytecode.o \
	obj/gc.o \
	obj/print.o \
	obj/math.o \
	obj/math3d.o \
	obj/files.o \
	obj/mt19937ar.o \
	obj/os.o \
	obj/stdio.o



ORCA_CFLAGS   = -DOR_CONFIG_BYTECODE -DOR_CONFIG_COMPRESS -DOR_CONFIG_HEX_TOKEN -DOR_CONFIG_MATH3D -std=gnu99 -pipe -Wall -W -g -DDEBUG 
ORCA_CXXFLAGS = $(ORCA_CFLAGS) 
ORCA_INCPATH  = -Iunix
ORCA_LFLAGS   =  $(LDFLAGS)
ORCA_LIBS     = -L. -lorca0 -lm -lbz2
ORCA_SOURCES  = 	console.c

ORCA_OBJECTS  = 	obj/console.o


ARCHIVE = orca
DIST_FILES = \
	README \
	LICENSE \
	ChangeLog \
	TODO \
	config.r \
	boot.r \
	boot_str.r \
	boot_bin.r \
	unix \
	win32 \
	tests/Makefile \
	tests/run_test \
	tests/working \
	tests/orca_test \
	tests/orca \
	support/bzip2 \
	util \
	qt/project.r \
	qt/qorca.h \
	qt/main.cpp \
	qt/qorca.cpp \
	qt/win32console.cpp \
	qt/oconf.r \
	gl/*.c \
	gl/*.h \
	gl/*.r \
	gl/glv \
	gl/demo \
	boot.c \
	charset.h \
	internal.h \
	math3d.h \
	ovalue.h \
	unix/os.h \
	unix/os_math.h


#------ Build rules

all: liborca0.a orca
 
liborca0.a: $(ORCA0_OBJECTS)
	ar rc $@ $(ORCA0_OBJECTS) $(ORCA0_LFLAGS)
	ranlib $@
 
orca: $(ORCA_OBJECTS) liborca0.a
	$(LINK) -o $@ $(ORCA_LFLAGS) $(ORCA_OBJECTS) $(ORCA_LIBS)


Makefile: project.r
	m2 project.r

.PHONY: dist
dist:
	$(TAR) $(ARCHIVE).tar --exclude CVS --exclude .svn --exclude *.o project.r obj/ $(ORCA0_SOURCES) $(ORCA_SOURCES) $(DIST_FILES)
	mkdir /tmp/$(ARCHIVE)
	tar -C /tmp/$(ARCHIVE) -xf $(ARCHIVE).tar
	tar -C /tmp -cf $(ARCHIVE).tar $(ARCHIVE)
	rm -rf /tmp/$(ARCHIVE)
	$(GZIP) $(ARCHIVE).tar

.PHONY: clean
clean:
	-rm -f core
	-rm -f liborca0.a $(ORCA0_OBJECTS)
	-rm -f orca $(ORCA_OBJECTS)


#------ Compile rules

obj/ovalue.o: ovalue.c \
	boot.c \
	internal.h \
	ovalue.h \
	unix/os.h
	$(CC) -c $(ORCA0_CFLAGS) -o obj/ovalue.o $(ORCA0_INCPATH) ovalue.c

obj/context.o: context.c \
	internal.h \
	ovalue.h \
	unix/os.h
	$(CC) -c $(ORCA0_CFLAGS) -o obj/context.o $(ORCA0_INCPATH) context.c

obj/array.o: array.c \
	ovalue.h \
	unix/os.h
	$(CC) -c $(ORCA0_CFLAGS) -o obj/array.o $(ORCA0_INCPATH) array.c

obj/parse.o: parse.c \
	charset.h \
	ovalue.h \
	unix/os.h
	$(CC) -c $(ORCA0_CFLAGS) -o obj/parse.o $(ORCA0_INCPATH) parse.c

obj/charset.o: charset.c
	$(CC) -c $(ORCA0_CFLAGS) -o obj/charset.o $(ORCA0_INCPATH) charset.c

obj/series.o: series.c \
	charset.h \
	internal.h \
	ovalue.h \
	unix/os.h
	$(CC) -c $(ORCA0_CFLAGS) -o obj/series.o $(ORCA0_INCPATH) series.c

obj/op.o: op.c \
	ovalue.h \
	unix/os.h
	$(CC) -c $(ORCA0_CFLAGS) -o obj/op.o $(ORCA0_INCPATH) op.c

obj/error.o: error.c \
	internal.h \
	ovalue.h \
	unix/os.h
	$(CC) -c $(ORCA0_CFLAGS) -o obj/error.o $(ORCA0_INCPATH) error.c

obj/tokenize.o: tokenize.c \
	charset.h \
	ovalue.h \
	unix/os.h
	$(CC) -c $(ORCA0_CFLAGS) -o obj/tokenize.o $(ORCA0_INCPATH) tokenize.c

obj/bytecode.o: bytecode.c \
	ovalue.h \
	unix/os.h
	$(CC) -c $(ORCA0_CFLAGS) -o obj/bytecode.o $(ORCA0_INCPATH) bytecode.c

obj/gc.o: gc.c \
	internal.h \
	ovalue.h \
	unix/os.h
	$(CC) -c $(ORCA0_CFLAGS) -o obj/gc.o $(ORCA0_INCPATH) gc.c

obj/print.o: print.c \
	internal.h \
	ovalue.h \
	unix/os.h
	$(CC) -c $(ORCA0_CFLAGS) -o obj/print.o $(ORCA0_INCPATH) print.c

obj/math.o: math.c \
	internal.h \
	ovalue.h \
	unix/os_math.h
	$(CC) -c $(ORCA0_CFLAGS) -o obj/math.o $(ORCA0_INCPATH) math.c

obj/math3d.o: math3d.c \
	math3d.h \
	ovalue.h \
	unix/os.h \
	unix/os_math.h
	$(CC) -c $(ORCA0_CFLAGS) -o obj/math3d.o $(ORCA0_INCPATH) math3d.c

obj/files.o: files.c \
	ovalue.h \
	unix/os.h
	$(CC) -c $(ORCA0_CFLAGS) -o obj/files.o $(ORCA0_INCPATH) files.c

obj/mt19937ar.o: support/mt19937ar.c
	$(CC) -c $(ORCA0_CFLAGS) -o obj/mt19937ar.o $(ORCA0_INCPATH) support/mt19937ar.c

obj/os.o: unix/os.c \
	ovalue.h \
	unix/os.h
	$(CC) -c $(ORCA0_CFLAGS) -o obj/os.o $(ORCA0_INCPATH) unix/os.c

obj/stdio.o: stdio.c \
	ovalue.h
	$(CC) -c $(ORCA0_CFLAGS) -o obj/stdio.o $(ORCA0_INCPATH) stdio.c

obj/console.o: console.c \
	ovalue.h
	$(CC) -c $(ORCA_CFLAGS) -o obj/console.o $(ORCA_INCPATH) console.c


#EOF
