# GNU OCTAL Makefile
# (C) 2000 by David O'Toole
# $Source: /cvsroot/octal/octal/Makefile,v $
# $Date: 2001/06/26 01:44:27 $
# $Revision: 1.5 $

CFLAGS= -g -Wall `gtk-config --cflags` -I. -I./view -I./machine
WITH_GTK= `gtk-config --libs` 
OBJECTS= core.o package.o output.o main.o machine.o octal.o engine.o mixer.o gui/engine_view.o gui/control_box.o

LIBDL= -rdynamic -ldl
LIBS = -lpthread
STDHEADERS= octal.h machine.h
DIST= release

%.o: %.c %.h $(STDHEADERS)
	gcc $(CFLAGS) -c $< -o $@

all:  $(OBJECTS) squaregen.so delay.so noise.so
	ctags -R *
	gcc $(CFLAGS) $(WITH_GTK) $(OBJECTS) $(LIBS) $(LIBDL) -ooctal

squaregen.so: squaregen.c octal.o $(STDHEADERS) 
	gcc $(CFLAGS) -shared squaregen.c -o squaregen.so

delay.so: delay.c octal.o machine.o
	gcc $(CFLAGS) -shared delay.c -o delay.so

noise.so: noise.c octal.o machine.o
	gcc $(CFLAGS) -shared noise.c -o noise.so

clean: 
	- rm *.o *.so view/*.o octal core 
	- rm doc/*.aux doc/*.dvi doc/*.log doc/*.toc

doc: ox_api_main.dvi

ox_api_main.dvi:
	(cd doc; make; cd ..;)

dist: all
	cp *.[ch] *.cc Makefile CHANGES COPYING DOC_COPYING README TODO HACKING $(DIST)
	cp ./doc/*.tex $(DIST)/doc
	cp gui/*.[ch] $(DIST)/gui

	tar -cvzf octal-beta-`date +%Y%m%d`.tar.gz $(DIST)/*
	scp *.tar.gz gnuftp.gnu.org:/home/ftp/gnu/octal
	rm *.tar.gz





