
# You should define these to reflect your installation
OPENWINHOME = /usr/X11R6
FORMSHOME = ../FORMS
FORMSLIB = $(FORMSHOME)/.
FORMSINC = $(FORMSHOME)/.
FDESIGN = ../DESIGN/fdesign

all: main 

main: main.o FormApp.o MyFormClass.o MyForm.o SubFormClass.o
	g++ -o main main.o FormApp.o MyFormClass.o MyForm.o SubFormClass.o -L$(FORMSLIB) -L$(OPENWINHOME)/lib -lforms -lX11 -lm 	

main.o: main.cc  MyFormClass.h FormApp.h MyForm.h.bak  SubFormClass.h
	g++ -c main.cc -I$(FORMSINC) -I$(OPENWINHOME)/include

FormApp.o: FormApp.cc FormApp.h
	g++ -c FormApp.cc -I$(FORMSINC) -I$(OPENWINHOME)/include

MyFormClass.o: MyFormClass.cc FormApp.h SubFormClass.h
	g++ -c MyFormClass.cc -I$(FORMSINC) -I$(OPENWINHOME)/include

SubFormClass.o: SubFormClass.cc FormApp.h
	g++ -c SubFormClass.cc -I$(FORMSINC) -I$(OPENWINHOME)/include

MyForm.o: MyForm.c MyForm.h.bak
	g++ -c MyForm.c -I$(FORMSINC) -I$(OPENWINHOME)/include

# This is a little hack to circumvent the fact that fdesign
# prototypes some callbacks. When the callbacks are C++
# static methods, it doesn't work !
MyForm.h.bak: MyForm.h
	$(FDESIGN) -I Classes.h -convert MyForm.fd
	perl -pi.bak -e 's/^extern void/\/\/ extern void /' MyForm.h
	touch MyForm.h.bak
