# To use this Makefile:
# 1. For linux, change the definitions of LINCOMPILE and LINLINK to
#    point to your compiler.
# 2. For SunOS, change the definitions of SUNCOMPILE and SUNLINK to
#    point to your compiler.
# 3. bison and flex must be available if source files are to be made.

LINCOMPILE = /usr/bin/g++ -c -v -g -Wall
LINLINK = /usr/bin/g++ -v

SUNCOMPILE = /usr/sfw/bin/g++ -c -v -g -Wall
SUNLINK = /usr/sfw/bin/g++ -v

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

# debnf2pars YACC and Lex processing

source/debnf2parsLex.cc : source/debnf2pars.lex
	flex -L -t source/debnf2pars.lex > source/debnf2parsLex.cc

source/debnf2parsYACC.cc : source/debnf2pars.y
	bison -d -l -o source/debnf2parsYACC.cc source/debnf2pars.y

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

# debnf2pars executable for linux

../../utilityComponents/linuxSun/binLinux/debnf2pars : \
                      ofilesLinux/debnf2parsYACC.o\
                      ofilesLinux/debnf2parsLex.o\
                      ofilesLinux/ebnfClasses.o
	$(LINLINK) -o ../../utilityComponents/linuxSun/binLinux/debnf2pars\
                      ofilesLinux/debnf2parsYACC.o\
                      ofilesLinux/debnf2parsLex.o\
                      ofilesLinux/ebnfClasses.o

ofilesLinux/debnf2parsLex.o : source/debnf2parsLex.cc\
                              source/debnf2parsYACC.hh
	$(LINCOMPILE) -o ofilesLinux/debnf2parsLex.o source/debnf2parsLex.cc

ofilesLinux/debnf2parsYACC.o : source/debnf2parsYACC.cc\
                               source/debnf2parsYACC.hh\
                               source/ebnfClasses.hh
	$(LINCOMPILE) -o ofilesLinux/debnf2parsYACC.o\
                       source/debnf2parsYACC.cc

ofilesLinux/ebnfClasses.o : source/ebnfClasses.hh source/ebnfClasses.cc
	$(LINCOMPILE) -o ofilesLinux/ebnfClasses.o source/ebnfClasses.cc

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

# generateMore executable for linux

../../utilityComponents/linuxSun/binLinux/generateMore : \
                      ofilesLinux/generateMore.o
	$(LINLINK) -o ../../utilityComponents/linuxSun/binLinux/generateMore\
                      ofilesLinux/generateMore.o

ofilesLinux/generateMore.o: source/generateMore.cc
	$(LINCOMPILE) -o ofilesLinux/generateMore.o source/generateMore.cc

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

# debnf2pars executable for Sun

../../utilityComponents/linuxSun/binSun/debnf2pars : \
                      ofilesSun/debnf2parsYACC.o\
                      ofilesSun/debnf2parsLex.o\
                      ofilesSun/ebnfClasses.o
	$(SUNLINK) -o ../../utilityComponents/linuxSun/binSun/debnf2pars\
                      ofilesSun/debnf2parsYACC.o\
                      ofilesSun/debnf2parsLex.o\
                      ofilesSun/ebnfClasses.o

ofilesSun/debnf2parsLex.o : source/debnf2parsLex.cc\
                            source/debnf2parsYACC.hh
	$(SUNCOMPILE) -o ofilesSun/debnf2parsLex.o source/debnf2parsLex.cc

ofilesSun/debnf2parsYACC.o : source/debnf2parsYACC.cc\
                             source/debnf2parsYACC.hh\
                             source/ebnfClasses.hh
	$(SUNCOMPILE) -o ofilesSun/debnf2parsYACC.o source/debnf2parsYACC.cc

ofilesSun/ebnfClasses.o : source/ebnfClasses.hh source/ebnfClasses.cc
	$(SUNCOMPILE) -o ofilesSun/ebnfClasses.o source/ebnfClasses.cc

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

# generateMore executable for sun

../../utilityComponents/linuxSun/binSun/generateMore : \
                      ofilesSun/generateMore.o
	$(SUNLINK) -o ../../utilityComponents/linuxSun/binSun/generateMore\
                      ofilesSun/generateMore.o

ofilesSun/generateMore.o: source/generateMore.cc
	$(SUNCOMPILE) -o ofilesSun/generateMore.o source/generateMore.cc

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

