#
# Imakefile for xpaint 2.6.7
#
# $Id: Imakefile,v 1.2 2002/11/13 21:38:03 demailly Exp $

#include "./.version"

#include "./Local.config"
#include "./Local.xawdefs"

DEFINES = $(ARCH_DEFINES) $(EXTRA_DEFINES) $(XAWLIB_DEFINES) $(XPM_INCLUDE) \
          "-DEDITOR=\"$(EDITOR)\"" \
          "-DSHAREDIR=\"$(SHAREDIR)\"" \
          "-DXAPPLOADDIR=\"$(XAPPLOADDIR)\"" \
	  "-DXPAINT_VERSION=\"$(VERSION)\""

#########################
# Nothing to change below here

XPSRC = chroma.c color.c colorEdit.c dialog.c fatBitsEdit.c \
	fileName.c fontSelect.c grab.c graphic.c hash.c help.c \
	image.c imageComp.c iprocess.c main.c menu.c misc.c \
	operation.c palette.c pattern.c print.c protocol.c readRC.c size.c \
	snapshot.c text.c texture.c typeConvert.c 

XPOBJ = chroma.o color.o colorEdit.o dialog.o fatBitsEdit.o \
	fileName.o fontSelect.o grab.o graphic.o hash.o help.o \
	image.o imageComp.o iprocess.o main.o menu.o misc.o \
	operation.o palette.o pattern.o print.o protocol.o readRC.o size.o \
	snapshot.o text.o texture.o typeConvert.o

OPSRC = arcOp.c blobOp.c boxOp.c brushOp.c circleOp.c fillOp.c \
	fontOp.c lineOp.c pencilOp.c polyOp.c splineOp.c selectOp.c \
	sprayOp.c dynPenOp.c

OPOBJ = arcOp.o blobOp.o boxOp.o brushOp.o circleOp.o fillOp.o \
	fontOp.o lineOp.o pencilOp.o polyOp.o splineOp.o selectOp.o \
	sprayOp.o dynPenOp.o

XPWIDSRC = Colormap.c Paint.c PaintEvent.c PaintRegion.c PaintUndo.c
XPWIDOBJ = Colormap.o Paint.o PaintEvent.o PaintRegion.o PaintUndo.o

RWSRC =	rw/libpnmrw.c rw/readGIF.c rw/readJPEG.c rw/readTIFF.c \
	rw/readWritePNM.c rw/readWriteSGI.c rw/readWriteXBM.c \
	rw/readWriteXPM.c rw/readWriteXWD.c rw/rwTable.c \
	rw/writeGIF.c rw/writeJPEG.c rw/writePS.c rw/writeTIFF.c \
	rw/libpnmrw.h rw/rwTable.h 
RWOBJ =	rw/libpnmrw.o rw/readGIF.o rw/readJPEG.o rw/readTIFF.o \
	rw/readWritePNM.o rw/readWriteSGI.o rw/readWriteXBM.o \
	rw/readWriteXPM.o rw/readWriteXWD.o rw/rwTable.o \
	rw/writeGIF.o rw/writePS.o rw/writeTIFF.o 

SRCS = $(XPSRC) $(OPSRC) $(XPWIDSRC)
OBJS = $(XPOBJ) $(OPOBJ) $(XPWIDOBJ)

HDRS =	Colormap.h ColormapP.h hash.h Paint.h \
	PaintP.h palette.h xpaint.h menu.h \
	text.h region.h image.h patchlevel.h \
	misc.h rc.h ops.h color.h graphic.h operation.h protocol.h 

OPBDIR = bitmaps/tools
OPBITMAPS = $(OPBDIR)/clineOp.xpm $(OPBDIR)/lassoOp.xpm $(OPBDIR)/rayOp.xpm \
	$(OPBDIR)/selpolyOp.xpm $(OPBDIR)/selectOp.xpm $(OPBDIR)/arcOp.xpm \
	$(OPBDIR)/boxOp.xpm $(OPBDIR)/brushOp.xpm \
	$(OPBDIR)/dotPenOp.xpm $(OPBDIR)/eraseOp.xpm $(OPBDIR)/fboxOp.xpm \
	$(OPBDIR)/ffreehandOp.xpm $(OPBDIR)/fillOp.xpm $(OPBDIR)/fovalOp.xpm \
	$(OPBDIR)/fpolyOp.xpm $(OPBDIR)/freehandOp.xpm $(OPBDIR)/lineOp.xpm \
	$(OPBDIR)/ovalOp.xpm $(OPBDIR)/pencilOp.xpm $(OPBDIR)/polyOp.xpm \
	$(OPBDIR)/smearOp.xpm $(OPBDIR)/sprayOp.xpm $(OPBDIR)/textOp.xpm \
	$(OPBDIR)/tfillOp.xpm $(OPBDIR)/dynPenOp.xpm

BRBDIR = bitmaps/brushes
BRUSHBITMAPS = $(BRBDIR)/paintA.xpm \
	$(BRBDIR)/paintB.xpm $(BRBDIR)/paintC.xpm $(BRBDIR)/paintD.xpm \
	$(BRBDIR)/paintE.xpm $(BRBDIR)/paintF.xpm $(BRBDIR)/paintG.xpm \
	$(BRBDIR)/paintH.xpm $(BRBDIR)/paintI.xpm $(BRBDIR)/paintJ.xpm \
	$(BRBDIR)/paintK.xpm $(BRBDIR)/paintL.xpm $(BRBDIR)/paintM.xpm \
	$(BRBDIR)/paintN.xpm $(BRBDIR)/paintO.xpm $(BRBDIR)/paintP.xpm \
	$(BRBDIR)/paintQ.xpm $(BRBDIR)/paintR.xpm $(BRBDIR)/paintS.xpm \
	$(BRBDIR)/paintT.xpm

XBMDIR = bitmaps/xbm

XAW95DEPENDS = \
	chroma.o graphic.o main.o operation.o pattern.o print.o size.o

#ifdef SGIArchitecture
SGI_LIB = -limage
#endif

DEPLIBS = always xpaint.man XPaint.ad
LOCAL_LIBRARIES = -Lrw -lrw $(XPM_LIB) $(TIFF_LIB) $(SGI_LIB) $(JPEG_LIB) $(PNG_LIB) -ldl -rdynamic

SUBDIRS = rw

ComplexProgramTarget(xpaint)
# InstallAppDefaults(XPaint)

NamedMakeSubdirs(always, $(SUBDIRS))
MakefileSubdirs($(SUBDIRS) bitmaps Doc)
CleanSubdirs($(SUBDIRS))

# Other targets...

all::
	if test "$(XAWLIB_DEFINES)" = "" ; then cat xaw95-1.1.4/INFO_XAW95 ; fi

install::
	mkdir -p $(SHAREDIR)/include
	cp -f image.h $(SHAREDIR)/include
	mkdir -p $(SHAREDIR)/filters
	share/bin/process_filters $(SHAREDIR)
	cd share/out ; cp -f * $(SHAREDIR)/filters
	rm -rf share/out
	cd app-defaults/out ; cp -f * $(XAPPLOADDIR)
	mkdir -p $(SHAREDIR)/help
	cd share/help ; rm -f *~ ; cp -f Help* $(SHAREDIR)/help
	mkdir -p $(SHAREDIR)/messages
	cd share/messages ; rm -f *~ ; cp -f Messages* $(SHAREDIR)/messages

xaw::
	-$(RM) $(XAW95DEPENDS)
	echo "SYS_LIBRARIES = XawClientLibs -lm" > Local.xawdefs
	xmkmf ; make

libXaw95.so:
	cd xaw95-1.1.4 ; xmkmf -a ; make
	-$(RM) libXaw95.so libXaw95.a
	-$(LN) xaw95-1.1.4/libXaw95.so libXaw95.so
	-$(LN) xaw95-1.1.4/libXaw95.a libXaw95.a

libXaw95.a: libXaw95.so

xaw95:: libXaw95.so
	-$(RM) $(XAW95DEPENDS)
	echo "XAWLIB_DEFINES = -DXAW95" > Local.xawdefs
	echo "SYS_LIBRARIES = -lXaw95 -L." >> Local.xawdefs
	xmkmf ; make

xaw95static:: libXaw95.a
	-$(RM) $(XAW95DEPENDS)
	echo "XAWLIB_DEFINES = -DXAW95" > Local.xawdefs
	echo "SYS_LIBRARIES = ./libXaw95.a -lm -lX11 -lXt -lXmu" >> Local.xawdefs
	xmkmf ; make

clean::
	-$(RM) preproc substads XPaint.ad XPaint.ad.h DefaultRC.txt.h PGP.*
	$(RM) -rf share/out
	cd share/help ; $(RM) *~
	cd share/messages ; $(RM) *~
	cd app-defaults ; $(RM) core *~ substads
	cd app-defaults/out ; $(RM) * 
	cd xaw95-1.1.4 ; if [ -r Makefile ] ; then make clean ; fi

includes:: XPaint.ad.h DefaultRC.txt.h messages.h
	cd bitmaps; $(RM) tools; \
	if test "$(TOOLFLAGS)" != "" ; \
	then ln -s big_tools tools ; else ln -s small_tools tools ; fi
	./xaw95-1.1.4/findxaw95

XPaint.ad: app-defaults
	$(CC) substads.c -o substads
	cd app-defaults ; \
	../substads -appdefs \
	            XPAINT_VERSION $(VERSION) \
		    XPAINT_SHAREDIR $(SHAREDIR) \
		    XPAINT_PRINT_COMMAND "$(PRINT_COMMAND)" \
		    XPAINT_POSTSCRIPT_VIEWER "$(POSTSCRIPT_VIEWER)" \
		    XPAINT_EXTERN_VIEWER "$(EXTERN_VIEWER)"
	cp -p app-defaults/out/XPaint XPaint.ad

XPaint.ad.h:	XPaint.ad
	./substads -ad2c $? $@
messages.h:	preproc.c share/messages/Messages
	$(CC) preproc.c -o preproc
	./preproc > messages.h
DefaultRC.txt.h: DefaultRC
	./substads -ad2c $? $@
xpaint.man:	xpaint.man.in .version
	./substads -single xpaint.man.in xpaint.man XPAINT_VERSION $(VERSION) 

Colormap.o: ColormapP.h Colormap.h
Paint.o: PaintP.h Paint.h xpaint.h misc.h
PaintEvent.o: PaintP.h Paint.h xpaint.h
PaintRegion.o: PaintP.h Paint.h protocol.h
PaintUndo.o: xpaint.h misc.h PaintP.h Paint.h
blobOp.o: xpaint.h misc.h Paint.h ops.h
boxOp.o: xpaint.h misc.h Paint.h ops.h
brushOp.o: xpaint.h misc.h Paint.h palette.h \
	graphic.h protocol.h ops.h $(BRUSHBITMAPS)
circleOp.o: xpaint.h misc.h Paint.h ops.h
chroma.o: xpaint.h Paint.h palette.h protocol.h color.h messages.h \
	 misc.h operation.h ops.h
color.o: messages.h palette.h protocol.h color.h xpaint.h misc.h image.h
colorEdit.o: misc.h palette.h color.h protocol.h
dialog.o: misc.h xpaint.h protocol.h
fatBitsEdit.o: Paint.h xpaint.h messages.h palette.h menu.h misc.h region.h \
	protocol.h graphic.h
fileName.o: Paint.h messages.h misc.h image.h rw/rwTable.h graphic.h \
	protocol.h 
fontSelect.o: xpaint.h messages.h misc.h operation.h ops.h graphic.h protocol.h
grab.o: image.h
graphic.o: xpaint.h palette.h messages.h misc.h menu.h text.h graphic.h \
	image.h region.h operation.h rc.h protocol.h color.h rw/rwTable.h
hash.o: misc.h hash.h
help.o: Paint.h misc.h protocol.h
image.o: image.h hash.h palette.h misc.h protocol.h
imageComp.o: image.h hash.h protocol.h misc.h
iprocess.o: xpaint.h image.h misc.h protocol.h
lineOp.o: xpaint.h misc.h Paint.h ops.h
main.o: XPaint.ad.h messages.h misc.h graphic.h protocol.h \
	rw/rwTable.h XPaintIcon.xpm .version
menu.o: menu.h $(XBMDIR)/checkmark.xbm $(XBMDIR)/pullright.xbm
misc.o: $(XBMDIR)/background.xbm xpaint.h misc.h messages.h
operation.o: $(OPBITMAPS) Local.config operation.c ops.h xpaint.h misc.h \
	menu.h Paint.h text.h graphic.h image.h operation.h protocol.h \
	region.h messages.h
	$(CC) -c -I./$(OPBDIR) $(CFLAGS) $*.c
palette.o: messages.h palette.h hash.h misc.h image.h xpaint.h
pattern.o: Colormap.h Paint.h palette.h xpaint.h menu.h misc.h image.h \
	region.h text.h graphic.h operation.h color.h protocol.h messages.h
pencilOp.o: xpaint.h Paint.h misc.h ops.h
print.o: xpaint.h menu.h image.h messages.h misc.h region.h text.h \
	graphic.h operation.h color.h protocol.h
protocol.o: xpaint.h messages.h misc.h protocol.h \
	$(XBMDIR)/wait1.xbm $(XBMDIR)/wait2.xbm \
	$(XBMDIR)/wait3.xbm $(XBMDIR)/wait4.xbm
readRC.o: image.h rc.h misc.h DefaultRC.txt.h
size.o: Paint.h messages.h misc.h text.h
snapshot.o: Paint.h image.h messages.h
text.o: misc.h protocol.h text.h
typeConvert.o: palette.h misc.h
fontOp.o: xpaint.h Paint.h graphic.h misc.h ops.h
arcOp.o: xpaint.h Paint.h misc.h ops.h
polyOp.o: xpaint.h misc.h Paint.h ops.h
fillOp.o: Paint.h protocol.h xpaint.h ops.h image.h misc.h palette.h
selectOp.o: xpaint.h Paint.h protocol.h palette.h color.h misc.h \
	operation.h ops.h
sprayOp.o: xpaint.h Paint.h misc.h ops.h 

TEXT =	README README.old README.PNG INSTALL DefaultRC ChangeLog \
	xpaint.man.in TODO .version Imakefile Local.config 
MISC = XPaintIcon.xpm Filelist p_filters preproc.c substads.c 

makelist:: 
	-$(RM) Filelist
	@touch Filelist

makelist:: 
	sh -c 'for i in '"$(TEXT) $(SRCS) $(MISC) $(LANGFILES) $(HDRS)"' ; \
	do echo $(CURRENT_DIR)/$$i >> $(TOP)/Filelist ; done '
	share/bin/make_list 

NamedTargetSubdirs(makelist, $(SUBDIRS) bitmaps Doc, , , makelist)


kit: makelist
	sh -c 'sum="`cat Filelist`" ; makekit -oMANIFEST MANIFEST $$sum'

targz: makelist
	make realclean 
	cd xaw95-1.1.4 ; if [ -r Makefile ] ; then make realclean ; fi
	cd .. ; tar cvfz xpaint-$(VERSION).tar.gz xpaint-$(VERSION)

tarbz2: makelist
	make realclean ;
	cd .. ; tar cvfj xpaint-$(VERSION).tar.bz2 xpaint-$(VERSION)

TAGS:	$(SRCS) $(HDRS) $(RWSRC)
	etags -t -o ./TAGS $(XPSRC) $(OPSRC) $(XPWIDSRC) $(RWSRC) $(HDRS)

realclean: clean
	-$(RM) messages.h bitmaps/tools \
	Makefile* */Makefile* xpaint.man libXaw95.*

certification:	makelist
	-$(RM) $(CERTIFICATION)	
	certify `cat Filelist`


