ifeq ($(SWARMHOME),)
SWARMHOME=../../../swarm
endif
include $(SWARMHOME)/etc/swarm/Makefile.common
include $(SWARMHOME)/etc/swarm/Makefile.rules

CFLAGS+=-Werror
OTHERINCDIRS=-I.
SWARMINCLUDES+=$(OTHERINCDIRS)

LDFLAGS=$(SWARMLDFLAGS) $(SUPPORTLDFLAGS)
LINK=$(SWARMHOME)/bin/libtool-swarm --mode link $(CC) $(LDFLAGS)

LIBS_C= -lswarm 
LIBS_A=	 $(LIBS_C)

TARGETS_C= strtest grid0 grid1a grid1b grid1c grid2 grid2b grid3 grid3b \
           grid4 grid4b
TARGETS_A= grid5 grid6 grid7 grid8 grid9
TARGETS_M= mousetraps mousetraps2

OBJECTS= grid.o GridTurtle.o

all: $(TARGETS_C) $(TARGETS_A) $(TARGETS_M)

grid.o: grid/classes.h grid.xm

grid.xm: grid.h
	OBJC="$(OBJC)" OBJCFLAGS="$(OTHERINCDIRS) -I$(includedir) $(CPPFLAGS) \
	$(OBJCFLAGS)" OBJECTS="$(OBJECTS)" $(bindir)/make-h2x $@ .

grid/classes.h:
	if [ ! -x grid ]; then mkdir grid; fi
	cd grid; ln -s ../grid.xc classes.h

install:
	echo "no default install"
clean:
	- rm -f grid.x[cmt] *.o $(TARGETS_C) $(TARGETS_A) $(TARGETS_M) core
	- rm grid/classes.h; rmdir grid

c: $(TARGETS_C)
a: $(TARGETS_A)
m: $(TARGETS_M)

$(TARGETS_C): %: grid.o %.o $(OBJECTS)
	$(LINK) $@.o $(OBJECTS) -o $@ $(LIBS_C)

$(TARGETS_A): %: grid.o %.o $(OBJECTS)
	$(LINK) $@.o $(OBJECTS) -o $@ $(LIBS_A)

mousetraps: grid.o mousetraps.o Mousetrap.o
	$(LINK) $@.o Mousetrap.o -o $@ $(LIBS_A)

mousetraps2: grid.o mousetraps2.o Mousetrap2.o
	$(LINK) $@.o Mousetrap2.o -o $@ $(LIBS_A)

