# Makefile for UNIX wxBuilder
# Valid targets: xview, motif or hp. These should produce
# the executables wxbuild_ol, wxbuild_motif and wxbuild_hp respectively.

WXDIR = ../../..

# All common UNIX compiler flags and options are now in
# this central makefile.
include $(WXDIR)/src/make.env

WXBUILDDIR = ..

PROLOGDIR = $(WXDIR)/utils/prologio
PROLOGINC = $(PROLOGDIR)/src
PROLOGLIB = $(PROLOGDIR)/lib/libproio$(GUISUFFIX).a

IMAGEDIR = $(WXDIR)/utils/image
IMAGEINC = $(IMAGEDIR)/src
IMAGELIB = $(IMAGEDIR)/lib/libimage$(GUISUFFIX).a

TREEDIR = $(WXDIR)/utils/wxtree
TREEINC = $(TREEDIR)/src
TREELIB = $(TREEDIR)/lib/libwxtree$(GUISUFFIX).a

OBJECTS = $(OBJDIR)/wxbuild.$(OBJSUFF) $(OBJDIR)/bapp.$(OBJSUFF) $(OBJDIR)/bmenu.$(OBJSUFF) $(OBJDIR)/bframe.$(OBJSUFF) $(OBJDIR)/bsubwin.$(OBJSUFF) \
 $(OBJDIR)/bgencpp.$(OBJSUFF) $(OBJDIR)/namegen.$(OBJSUFF) $(OBJDIR)/bitem.$(OBJSUFF) $(OBJDIR)/bwin.$(OBJSUFF) $(OBJDIR)/btoolbar.$(OBJSUFF) \
 $(OBJDIR)/bactions.$(OBJSUFF) $(OBJDIR)/btree.$(OBJSUFF) $(OBJDIR)/bgdi.$(OBJSUFF) $(OBJDIR)/shapes.$(OBJSUFF)

INC = $(COMPPATHS) -I$(WXDIR)/include/x -I$(WXDIR)/include/base -I$(PROLOGINC) -I$(TREEINC) -I$(IMAGEINC)

XVIEWLDLIBS = -lproio_ol -lwxtree_ol -lwx_ol -lxview -lolgx -lX11 -lm $(COMPLIBS)
MOTIFLDLIBS = -lproio_motif -lwxtree_motif -lwx_motif -lXm -lXt -lX11 -lm $(COMPLIBS)
HPLDLIBS = -lproio_hp -lwxtree_hp -lwx_hp -lXm -lXt -lX11 -lm $(HPCOMPLIBS)
# Default
LDLIBS=$(XVIEWLDLIBS)

CPPFLAGS = $(XINCLUDE) $(INC) $(OPTIONS) $(GUI) -DDEBUG='$(DEBUG)' $(DEBUGFLAGS) $(WARN) $(OPT) -L$(PROLOGDIR)/lib \
  -L$(TREEDIR)/lib -L$(IMAGEDIR)/lib

# Make the utilities for converting Latex to other formats
utils:	$(OBJDIR) $(TEX2ANYLIB) wxbuild$(GUISUFFIX)

.SUFFIXES:

motif:
	cd $(WXDIR)/src/x; $(MAKE) -f makefile.unx motif OPT='$(OPT)'
	cd $(PROLOGDIR)/src; $(MAKE) -f makefile.unx motif OPT='$(OPT)'
	cd $(TREEDIR)/src; $(MAKE) -f makefile.unx motif OPT='$(OPT)'
	cd $(IMAGEDIR)/src; $(MAKE) -f makefile.unx motif OPT='$(OPT)'
	$(MAKE) -f makefile.unx utils GUI=-Dwx_motif GUISUFFIX=_motif OPT='$(OPT)' \
           LDLIBS='$(MOTIFLDLIBS)' XVIEW_LINK=

motifquick:
	$(MAKE) -f makefile.unx utils GUI=-Dwx_motif GUISUFFIX=_motif OPT='$(OPT)' \
           LDLIBS='$(MOTIFLDLIBS)' XVIEW_LINK=

xview:
	cd $(WXDIR)/src/x; $(MAKE) -f makefile.unx xview OPT='$(OPT)'
	cd $(PROLOGDIR)/src; $(MAKE) -f makefile.unx xview OPT='$(OPT)'
	cd $(IMAGEDIR)/src; $(MAKE) -f makefile.unx xview OPT='$(OPT)'
	cd $(TREEDIR)/src; $(MAKE) -f makefile.unx xview OPT='$(OPT)'
	$(MAKE) -f makefile.unx utils GUI=-Dwx_xview OPT='$(OPT)'

hp:
	cd $(WXDIR)/src/x; $(MAKE) -f makefile.unx hp OPT='$(OPT)'
	cd $(PROLOGDIR)/src; $(MAKE) -f makefile.unx hp OPT='$(OPT)'
	cd $(TREEDIR)/src; $(MAKE) -f makefile.unx hp OPT='$(OPT)'
	$(MAKE) -f makefile.unx GUI=-Dwx_motif GUISUFFIX=_hp CC=CC DEBUGFLAGS='' WARN='-w' \
           XINCLUDE='$(HPXINCLUDE)' XLIB='$(HPXLIB)' XVIEW_LINK='' CCLEX='cc' \
           LDLIBS='$(HPLDLIBS)'

$(OBJDIR):
	mkdir $(OBJDIR)

bwin.h: bactions.h

$(OBJDIR)/bapp.$(OBJSUFF): bapp.$(SRCSUFF) bapp.h wxbuild.h bmenu.h bsubwin.h bframe.h namegen.h bwin.h bactions.h btree.h
	$(CC) -c $(CPPFLAGS) -o $@ bapp.$(SRCSUFF)

$(OBJDIR)/wxbuild.$(OBJSUFF): wxbuild.$(SRCSUFF) wxbuild.h bapp.h bmenu.h bsubwin.h bframe.h namegen.h bwin.h\
  rcload.h
	$(CC) -c $(CPPFLAGS) -o $@ wxbuild.$(SRCSUFF)

$(OBJDIR)/bmenu.$(OBJSUFF): bmenu.$(SRCSUFF) wxbuild.h bapp.h bmenu.h bframe.h namegen.h bwin.h
	$(CC) -c $(CPPFLAGS) -o $@ bmenu.$(SRCSUFF)

$(OBJDIR)/bframe.$(OBJSUFF): bframe.$(SRCSUFF) wxbuild.h bapp.h bmenu.h bframe.h bsubwin.h namegen.h bwin.h bactions.h
	$(CC) -c $(CPPFLAGS) -o $@ bframe.$(SRCSUFF)

$(OBJDIR)/bsubwin.$(OBJSUFF): bsubwin.$(SRCSUFF) wxbuild.h bapp.h bsubwin.h bframe.h namegen.h bwin.h
	$(CC) -c $(CPPFLAGS) -o $@ bsubwin.$(SRCSUFF)

$(OBJDIR)/bitem.$(OBJSUFF): bitem.$(SRCSUFF) wxbuild.h bapp.h bsubwin.h bframe.h namegen.h bitem.h bwin.h bactions.h
	$(CC) -c $(CPPFLAGS) -o $@ bitem.$(SRCSUFF)

$(OBJDIR)/bwin.$(OBJSUFF): bwin.$(SRCSUFF) wxbuild.h bwin.h bactions.h bactions.h
	$(CC) -c $(CPPFLAGS) -o $@ bwin.$(SRCSUFF)

$(OBJDIR)/btoolbar.$(OBJSUFF): btoolbar.$(SRCSUFF) wxbuild.h bwin.h
	$(CC) -c $(CPPFLAGS) -o $@ btoolbar.$(SRCSUFF)

$(OBJDIR)/bgencpp.$(OBJSUFF): bgencpp.$(SRCSUFF) wxbuild.h bapp.h bframe.h bgencpp.h namegen.h bwin.h
	$(CC) -c $(CPPFLAGS) -o $@ bgencpp.$(SRCSUFF)

$(OBJDIR)/namegen.$(OBJSUFF): namegen.$(SRCSUFF) namegen.h
	$(CC) -c $(CPPFLAGS) -o $@ namegen.$(SRCSUFF)

$(OBJDIR)/bactions.$(OBJSUFF): bactions.$(SRCSUFF) bactions.h wxbuild.h bwin.h
	$(CC) -c $(CPPFLAGS) -o $@ bactions.$(SRCSUFF)

$(OBJDIR)/bgdi.$(OBJSUFF): bgdi.$(SRCSUFF) bgdi.h wxbuild.h bwin.h
	$(CC) -c $(CPPFLAGS) -o $@ bgdi.$(SRCSUFF)

$(OBJDIR)/btree.$(OBJSUFF): btree.$(SRCSUFF) btree.h bwin.h wxbuild.h bapp.h
	$(CC) -c $(CPPFLAGS) -o $@ btree.$(SRCSUFF)

$(OBJDIR)/shapes.$(OBJSUFF): shapes.$(SRCSUFF) shapes.h
	$(CC) -c $(CPPFLAGS) -o $@ shapes.$(SRCSUFF)

# $(OBJDIR)/rcload.$(OBJSUFF): rcload.$(SRCSUFF) rcload.h
# 	$(CC) -c $(CPPFLAGS) -o $@ rcload.$(SRCSUFF)

wxbuild$(GUISUFFIX):	$(OBJECTS) $(WXLIB) $(PROLOGLIB) $(IMAGELIB) $(TREELIB)
	$(CC) $(LDFLAGS) -o wxbuild$(GUISUFFIX) $(XVIEW_LINK) $(OBJECTS) $(LDLIBS)

wx:
	cd $(WXDIR)/src/x; $(MAKE) -f makefile.unx

docs:	ps xlp txt
ps:	$(WXBUILDDIR)/docs/wxbuild.ps
txt:	$(WXBUILDDIR)/docs/wxbuild.txt
xlp:	$(WXBUILDDIR)/docs/wxbuild.xlp
html:	wxbuildhtml wxbuildhtml
wxbuildhtml:	$(WXBUILDDIR)/docs/wxbuild_contents.html
wxbuildhtml:	$(WXBUILDDIR)/docs/wxbuild_contents.html

$(WXBUILDDIR)/docs/wxbuild.xlp:	$(WXBUILDDIR)/docs/wxbuild.tex
	cd ../docs; tex2rtf wxbuild.tex tmp.xlp -twice -xlp
	sed -e "s/WXHELPCONTENTS/wxBuilder Manual/g" < $(WXBUILDDIR)/docs/tmp.xlp > $(WXBUILDDIR)/docs/wxbuild.xlp
	/bin/rm -f $(WXBUILDDIR)/docs/tmp.xlp

$(WXBUILDDIR)/docs/wxbuild.dvi:	$(WXBUILDDIR)/docs/wxbuild.tex
	cd ../docs; latex wxbuild; latex wxbuild; makeindex wxbuild; latex wxbuild

$(WXBUILDDIR)/docs/wxbuild.ps:	$(WXBUILDDIR)/docs/wxbuild.dvi
	cd ../docs; dvips -f -r < wxbuild.dvi > wxbuild.ps

$(WXBUILDDIR)/docs/wxbuild.txt:	$(WXBUILDDIR)/docs/wxbuild.dvi
	cd $(WXBUILDDIR)/docs; dvi2tty wxbuild.dvi > wxbuild.txt

$(WXBUILDDIR)/docs/wxbuild_contents.html:	$(WXBUILDDIR)/docs/wxbuild.tex
	cd ../docs; tex2rtf wxbuild.tex wxbuild.html -twice -html
	/bin/cp ../docs/*.html /user/11/jacs/html/wxbuild
	/bin/rm -f ../docs/*.html

cleaneach:
	rm -f $(OBJDIR)/*.$(OBJSUFF) test$(GUISUFFIX) wxbuild$(GUISUFFIX) core

clean_motif:
	$(MAKE) -f makefile.unx GUISUFFIX=_motif cleaneach 

cleanall_motif:
	$(MAKE) -f makefile.unx GUISUFFIX=_motif cleaneach 
	cd $(WXDIR)/src/x; $(MAKE) -f makefile.unx clean_motif OPT='$(OPT)'
	cd $(PROLOGDIR)/src; $(MAKE) -f makefile.unx clean_motif OPT='$(OPT)'
	cd $(TREEDIR)/src; $(MAKE) -f makefile.unx clean_motif OPT='$(OPT)'
	cd $(IMAGEDIR)/src; $(MAKE) -f makefile.unx clean_motif OPT='$(OPT)'

cleanall_ol:
	$(MAKE) -f makefile.unx GUISUFFIX=_ol cleaneach 
	cd $(WXDIR)/src/x; $(MAKE) -f makefile.unx clean_ol OPT='$(OPT)'
	cd $(PROLOGDIR)/src; $(MAKE) -f makefile.unx clean_ol OPT='$(OPT)'
	cd $(TREEDIR)/src; $(MAKE) -f makefile.unx clean_ol OPT='$(OPT)'
	cd $(IMAGEDIR)/src; $(MAKE) -f makefile.unx clean_ol OPT='$(OPT)'

cleanmost_ol:
	$(MAKE) -f makefile.unx GUISUFFIX=_ol cleaneach 
	cd $(PROLOGDIR)/src; $(MAKE) -f makefile.unx clean_ol OPT='$(OPT)'
	cd $(TREEDIR)/src; $(MAKE) -f makefile.unx clean_ol OPT='$(OPT)'
	cd $(IMAGEDIR)/src; $(MAKE) -f makefile.unx clean_ol OPT='$(OPT)'

clean_ol:
	$(MAKE) -f makefile.unx GUISUFFIX=_ol cleaneach 

clean_hp:
	$(MAKE) -f makefile.unx GUISUFFIX=_hp cleaneach 


