CC	= hcp
LD      = $(CC)
CCOPTS  = -c -g -Wall $(GCC_FLAGS) -DLINUX -DHAVE_MPI
#CCOPTS  = -c -O -fomit-frame-pointer -Wall $(GCC_FLAGS) -DLINUX -DHAVE_MPI
GCC_FLAGS = -Wstrict-prototypes -Wpointer-arith -Wcast-align \
  -Wtraditional\
#  -Wconversion\
  -Waggregate-return\
  -Wmissing-prototypes\
  -Wnested-externs

LDOPTS	= -g
OBJS	= netchaos.o child.o util.o EditField.o Rubberband.o ppm.o \
		about.o callback.o fselect.o message.o option.o quit.o size.o \
        comm.o semlib.o
OBJS1	= netchaos-calc.o asm-i386.o iter.o

all    : netchaos

netchaos : $(OBJS) $(OBJS1)
	$(LD) $(LDOPTS) $(OBJS) $(OBJS1) -o netchaos -lmpi -L/usr/X11R6/lib -lICE -lXaw3d -lXt -lX11 -lm
	rm -f netchaos-shm
	ln netchaos netchaos-shm

iter-test.o: iter.c
	$(CC) -c -g -o iter-test.o -DLINUX -D_TEST $<

iter-test: iter-test.o asm-i386.o util.o
	$(LD) $(LDOPTS) -o iter-test iter-test.o asm-i386.o util.o -lm

%.o    : %.c
	$(CC) $(CCOPTS) $<

%.o  : %.asm
	nasm -f elf $<

clean	:
	rm -f core *.o netchaos netchaos-shm

DANG.sgml: dummy
	-rm DANG.sgml
	sh -c 'DANG -c doc/config'

DANG.html: DANG.sgml
	format -Thtml DANG | prehtml | fixref > /tmp/DANG.html
	format -Thtml DANG | prehtml >> /tmp/DANG.html
	cat /tmp/DANG.html | html2html DANG > DANG.html
	rm /tmp/DANG.html
	fix_html.pl DANG

DANG.tex: DANG.sgml
	format -Tlatex DANG > DANG.tex

DANG.dvi: DANG.tex
	cat DANG.tex | qtex -d > DANG.dvi

DANG.ps: DANG.dvi
	dvips -o DANG.ps DANG.dvi

DANG.nroff: DANG.sgml
	format -Tnroff DANG > DANG.nroff

DANG.txt: DANG.nroff
	cat DANG.nroff | qroff > DANG.txt

doc: dummy
	@echo Make doc.html or doc.latex

doc.html: dummy
	doc++ -p -v -d HTML -f *.[ch]

doc.latex: dummy
	doc++ -p -v -t -o documentation.latex *.[ch]

dummy:

netchaos.o :  dialog.h EditField.h Rubberband.h mdefs.h netchaos.h netchaos.c
netchaos-calc.o :  mdefs.h netchaos.h netchaos-calc.c
util.o :  mdefs.h netchaos.h util.c
iter.o :    mdefs.h netchaos.h iter.c
#	$(CC) -c -g -O6 -m486 -fomit-frame-pointer -Wall -I/usr/include/X11 -DLINUX $*.c
EditField.o : EditField.h EditField.c
Rubberband.o : Rubberband.h Rubberband.c
ppm.o :     netchaos.h ppm.c
about.o :   about.c
message.o : message.c
option.o :  EditField.h netchaos.h option.c
quit.o :    quit.c
size.o :    EditField.h netchaos.h size.c
fselect.o : EditField.h dialog.h netchaos.h fselect.c

