MACHINE=$(shell uname -m)
BELIBFILES=
ifeq ($(MACHINE), BePC)
        CPU = x86
else
        CPU = ppc
endif

ifeq ($(CPU), x86)
	CFLAGS += -O1 -mpentiumpro -fno-pic -fomit-frame-pointer -g
	LD = gcc
	LDFLAGS = -lroot -lbe
else
	CFLAGS = -O4 -opt nopeephole -proc 604 -g
	LDFLAGS = -lroot -lbe glue-noinit.a init_term_dyn.o start_dyn.o  -map $@.xMAP
endif
DESTDIR=../../GobeTree/GobeProductive/GIMP


OBJS=	gimp.o GIMPMessage.o
SUPPORT=gimp.c gimp.h msg.h dialog_types.h GIMPMessage.cpp
DIST=	mblur shift despeckle engrave\
		fade gauss_recurse median noisify prep4tile deinterlace plasma\
		checkerboard sparkl bleed enhance\
		lensflare flip_horz flip_vert mosaic\
		rot180 oilify c_astretch degrade
ALL=	$(DIST)\
#		These involve multliple output/input and are currently unsupported
#		extrude scale subtract add tile compose decompose displace
#		to-color to-gray to-indexed contintp contour darkest histogram
#		imgsplit interpolate levels lightest lighting rot90ccw rot90cw
#		superzoom warp charcoal difference duplicate multiply offset
#		composite blend bumpmap lic autocrop map_sphere

DISTSRC= GIMPMessage.cpp  engrave.c        gimp.h           plasma.c\
		bleed.c          enhance.c        lensflare.c      prep4tile.c\
		c_astretch.c     fade.c           mblur.c          rot180.c\
		checkerboard.c   flip_horz.c      median.c         shift.c\
		degrade.c        flip_vert.c      mosaic.c         sparkl.c\
		deinterlace.c    gauss_recurse.c  noisify.c        \
		despeckle.c      gimp.c           oilify.c
include local-gimp-desc

%.o : %.cpp
	$(CC) $(CFLAGS) -c $< -o $@

all:	$(ALL)

demo:	$(DIST)

names:
		echo $(ALL)

$(DIST):	local.h

multi:
	make -j `sysinfo | grep "^[0-9] " | sed -e "s/[A-Za-z].*//"` all

#
# The following have compilation problems, so aren't included in "all"
#
# quant
#



GIMPMessage.o:	GIMPMessage.cpp
	$(CC) $(CFLAGS) -c GIMPMessage.cpp

gimp.o: gimp.c gimp.h msg.h dialog_types.h
	$(CC) $(CFLAGS) -c gimp.c

*.o: gimp.h

neat:
	rm -f *.o *.xMAP *.xSYM

clean:
	rm -f *.o *.xMAP *.xSYM
	rm -rf .#*
	find . -perm 755 -a -type f -print0 | xargs -0 rm -f

tree:
ifeq ($(CPU), x86)
	strip2 $(DIST)
endif
	mkdir -p $(DESTDIR)
	mkdir -p $(DESTDIR)/src
	copyattr . $(DESTDIR)
	copyattr -d  $(DIST) $(DESTDIR)
	cp COPYING $(DESTDIR)
	cp Makefile $(DESTDIR)/src
	cp README $(DESTDIR)
	cp $(DISTSRC) $(DESTDIR)/src
	cp $(SUPPORT) $(DESTDIR)/src


lensflare:	lensflare.o $(OBJS)
	# OK
	$(LD) -o $@ $@.o $(OBJS) $(LDFLAGS)
	mimeset $@
	addattr name $(lensflare_name) $@
	addattr category $(lensflare_category) $@
	addattr GIMP_AUTHOR "Marc Bless" $@
	addattr GIMP_EMAIL "bless@ai-lab.fh-furtwangen.de" $@
	addattr GIMP_DESC $(lensflare_desc) $@

mblur:	mblur.o $(OBJS)
	# OK
	$(LD) -o $@ $@.o $(OBJS) $(LDFLAGS)
	mimeset $@
	addattr name $(mblur_name) $@
	addattr category $(mblur_category) $@
	addattr GIMP_AUTHOR "Torsten Martinsen" $@
	addattr GIMP_EMAIL "bullestock@dk-online.dk" $@
	addattr GIMP_DESC $(mblur_desc) $@

oilify:	oilify.o $(OBJS)
	$(LD) -o $@ $@.o $(OBJS) $(LDFLAGS)
	mimeset $@
	addattr name $(oilify_name) $@
	addattr category $(oilify_category) $@
	addattr GIMP_AUTHOR "Torsten Martinsen" $@
	addattr GIMP_EMAIL "bullestock@dk-online.dk" $@
	addattr GIMP_DESC $(oilify_desc) $@

shift:	shift.o $(OBJS)
	# OK
	$(LD) -o $@ $@.o $(OBJS) $(LDFLAGS)
	mimeset $@
	addattr name $(shift_name) $@
	addattr category $(shift_category) $@
	addattr GIMP_DESC $(shift_desc) $@
	addattr GIMP_AUTHOR "Spencer Kimball and Peter Mattis" $@
	addattr GIMP_EMAIL "gimp@xcf.berkeley.edu" $@

c_astretch:	c_astretch.o $(OBJS)
	# OK (can be very subtle)
	$(LD) -o $@ $@.o $(OBJS) $(LDFLAGS)
	mimeset $@
	addattr name $(c_astretch_name) $@
	addattr category $(c_astretch_category) $@
	addattr GIMP_AUTHOR "Federico Mena Quintero" $@
	addattr GIMP_EMAIL "quartic@polloux.fciencias.unam.mx" $@
	addattr GIMP_DESC $(c_astretch_desc) $@

degrade:	degrade.o $(OBJS)
	# Ugly crasher?
	$(LD) -o $@ $@.o $(OBJS) $(LDFLAGS)
	mimeset $@
	addattr name $(degrade_name) $@
	addattr category $(degrade_category) $@
	addattr GIMP_AUTHOR "Adam D. Moss" $@
	addattr GIMP_EMAIL "aspirin@tigerden.com" $@
	addattr GIMP_DESC $(degrade_desc) $@

despeckle:	despeckle.o $(OBJS)
	# OK
	$(LD) -o $@ $@.o $(OBJS) $(LDFLAGS)
	mimeset $@
	addattr name $(despeckle_name) $@
	addattr category $(despeckle_category) $@
	addattr GIMP_AUTHOR "Ian Tester" $@
	addattr GIMP_EMAIL "94024831@postoffice.csu.edu.au" $@
	addattr GIMP_DESC $(despeckle_desc) $@

engrave:	engrave.o $(OBJS)
	# OK
	$(LD) -o $@ $@.o $(OBJS) $(LDFLAGS)
	mimeset $@
	addattr name $(engrave_name) $@
	addattr category $(engrave_category) $@
	addattr GIMP_AUTHOR "Torsten Martinsen" $@
	addattr GIMP_EMAIL "bullestock@dk-online.dk" $@
	addattr GIMP_DESC $(engrave_desc) $@

fade:	fade.o $(OBJS)
	# OK
	$(LD) -o $@ $@.o $(OBJS) $(LDFLAGS)
	mimeset $@
	addattr name $(fade_name) $@
	addattr category $(fade_category) $@
	addattr GIMP_AUTHOR "Marc Bless" $@
	addattr GIMP_EMAIL "bless@ai-lab.fh-furtwangen.de" $@
	addattr GIMP_DESC $(fade_desc) $@

gauss_recurse:	gauss_recurse.o $(OBJS)
	# OK
	$(LD) -o $@ $@.o $(OBJS) $(LDFLAGS)
	mimeset $@
	addattr name $(gauss_recurse_name) $@
	addattr category $(gauss_recurse_category) $@
	addattr GIMP_AUTHOR "Spencer Kimball and Peter Mattis" $@
	addattr GIMP_EMAIL "gimp@xcf.berkeley.edu" $@
	addattr GIMP_DESC $(gauss_recurse_desc) $@

median:	median.o $(OBJS)
	# OK
	$(LD) -o $@ $@.o $(OBJS) $(LDFLAGS)
	mimeset $@
	addattr name $(median_name) $@
	addattr category $(median_category) $@
	addattr GIMP_AUTHOR "Ian Tester" $@
	addattr GIMP_EMAIL "94024831@postoffice.csu.edu.au" $@
	addattr GIMP_DESC $(median_desc) $@

mosaic:	mosaic.o $(OBJS)
	# OK
	$(LD) -o $@ $@.o $(OBJS) $(LDFLAGS)
	mimeset $@
	addattr name $(mosaic_name) $@
	addattr category $(mosaic_category) $@
	addattr GIMP_AUTHOR "Spencer Kimball" $@
	addattr GIMP_EMAIL "bullestock@dk-online.dk" $@
	addattr GIMP_DESC $(mosaic_desc) $@

noisify:	noisify.o $(OBJS)
	# OK - Lock RGB doesn't happen immediately.
	$(LD) -o $@ $@.o $(OBJS) $(LDFLAGS)
	mimeset $@
	addattr name $(noisify_name) $@
	addattr category $(noisify_category) $@
	addattr GIMP_AUTHOR "Torsten Martinsen" $@
	addattr GIMP_EMAIL "bullestock@dk-online.dk" $@
	addattr GIMP_DESC $(noisify_desc) $@

prep4tile:	prep4tile.o $(OBJS)
	# OK
	$(LD) -o prep4tile prep4tile.o $(OBJS) $(LDFLAGS)
	mimeset $@
	addattr name $(prep4tile_name) $@
	addattr category $(prep4tile_category) $@
	addattr GIMP_DESC $(prep4tile_desc) $@

rot180:	rot180.o $(OBJS)
	# OK
	$(LD) -o rot180 rot180.o $(OBJS) $(LDFLAGS)
	mimeset $@
	addattr name $(rot180_name) $@
	addattr category $(rot180_category) $@
	addattr GIMP_AUTHOR "Ian Tester" $@
	addattr GIMP_EMAIL "94024831@postoffice.csu.edu.au" $@
	addattr GIMP_DESC $(rot180_desc) $@

deinterlace:	deinterlace.o $(OBJS)
	# OK
	$(LD) -o $@ $@.o $(OBJS) $(LDFLAGS)
	mimeset $@
	addattr name $(deinterlace_name) $@
	addattr category $(deinterlace_category) $@
	addattr GIMP_AUTHOR "Federico Mena Quintero" $@
	addattr GIMP_EMAIL "quartic@polloux.fciencias.unam.mx" $@
	addattr GIMP_DESC $(deinterlace_desc) $@

plasma:	plasma.o $(OBJS)
	# OK
	$(LD) -o $@ $@.o $(OBJS) $(LDFLAGS)
	mimeset $@
	addattr name $(plasma_name) $@
	addattr category $(plasma_category) $@
	addattr GIMP_AUTHOR "Stephen Norris" $@
	addattr GIMP_EMAIL "srn@flibble.cs.su.oz.au" $@
	addattr GIMP_DESC $(plasma_desc) $@

checkerboard:	checkerboard.o $(OBJS)
	# OK
	$(LD) -o $@ $@.o $(OBJS) $(LDFLAGS)
	mimeset $@
	addattr name $(checkerboard_name) $@
	addattr category $(checkerboard_category) $@
	addattr GIMP_AUTHOR "Brent Burton" $@
	addattr GIMP_EMAIL "brentb@io.com" $@
	addattr GIMP_DESC $(checkerboard_desc) $@

sparkl:		sparkl.o hsltorgb.o $(OBJS) hcon.h hf_io.h gems.h
	# OK
	$(LD) -o $@ sparkl.o hsltorgb.o $(OBJS) $(LDFLAGS)
	mimeset $@
	addattr name $(sparkl_name) $@
	addattr category $(sparkl_category) $@
	addattr GIMP_AUTHOR "John Beale, Michael J. Hammel" $@
	addattr GIMP_EMAIL "mjhammel@csn.net" $@
	addattr GIMP_DESC $(sparkl_desc) $@

bleed:	bleed.o $(OBJS)
	# OK
	$(LD) -o $@ $@.o $(OBJS) $(LDFLAGS)
	mimeset $@
	addattr name $(bleed_name) $@
	addattr category $(bleed_category) $@
	addattr GIMP_DESC $(bleed_desc) $@
	addattr GIMP_AUTHOR "Spencer Kimball and Peter Mattis" $@
	addattr GIMP_EMAIL "gimp@xcf.berkeley.edu" $@

flip_horz:	flip_horz.o $(OBJS)
	# OK
	$(LD) -o $@ $@.o $(OBJS) $(LDFLAGS)
	mimeset $@
	addattr name $(flip_horz_name) $@
	addattr category $(flip_horz_category) $@
	addattr GIMP_AUTHOR "Spencer Kimball and Peter Mattis" $@
	addattr GIMP_EMAIL "gimp@xcf.berkeley.edu" $@
	addattr GIMP_DESC $(flip_vert_desc) $@

flip_vert:	flip_vert.o $(OBJS)
	# OK
	$(LD) -o $@ $@.o $(OBJS) $(LDFLAGS)
	mimeset $@
	addattr name $(flip_vert_name) $@
	addattr category $(flip_vert_category) $@
	addattr GIMP_AUTHOR "Spencer Kimball and Peter Mattis" $@
	addattr GIMP_EMAIL "gimp@xcf.berkeley.edu" $@
	addattr GIMP_DESC $(flip_vert_desc) $@

enhance:	enhance.o $(OBJS)
	# OK
	$(LD) -o $@ $@.o $(OBJS) $(LDFLAGS)
	mimeset $@
	addattr name $(enhance_name) $@
	addattr category $(enhance_category) $@
	addattr GIMP_AUTHOR "Jef Poskanzer, Peter Mattis" $@
	addattr GIMP_DESC $(enhance_desc) $@
