# Makefile for GNU superoptimizer

CC = gcc
DBG = -g
OPT = -O
EXTRA =
CFLAGS = $(CPU) $(OPT) $(DBG) $(EXTRA)
ALL_MACHINES =	superopt-sparc \
		superopt-power \
		superopt-powerpc \
		superopt-m88000 \
		superopt-am29k \
		superopt-mc68000 \
		superopt-mc68020 \
		superopt-i386 \
		superopt-pyr \
		superopt-alpha \
		superopt-hppa \
		superopt-sh

OBJS	= superopt.o
SRCS	= superopt.c
HDRS	= run_program.def insn.def goal.def superopt.h version.h longlong.h
BINDIR	= /usr/local/bin
INSTALL	= install -c
FILES	= README COPYING Makefile TODO ChangeLog superopt.c $(HDRS)

VERSION = `sed 's,char \*version_string = "\([0-9.]*\)";,\1,' < version.h`

superopt: $(SRCS) $(HDRS)
	$(CC) $(CFLAGS) -o superopt $(SRCS)

clean:
	rm -f $(OBJS) superopt $(ALL_MACHINES)

install: superopt
	$(INSTALL) superopt $(BINDIR)/superopt
	
all: $(ALL_MACHINES)

install-all: all
	for x in $(ALL_MACHINES); do $(INSTALL) $$x $(BINDIR)/$$x; done

superopt-sparc: $(SRCS) $(HDRS)
	$(CC) $(CFLAGS) -DSPARC -o superopt-sparc $(SRCS)

superopt-powerpc: $(SRCS) $(HDRS)
	$(CC) $(CFLAGS) -DPOWERPC -o superopt-powerpc $(SRCS)

superopt-power: $(SRCS) $(HDRS)
	$(CC) $(CFLAGS) -DPOWER -o superopt-power $(SRCS)

superopt-i386: $(SRCS) $(HDRS)
	$(CC) $(CFLAGS) -DI386 -o superopt-i386 $(SRCS)

superopt-m88000: $(SRCS) $(HDRS)
	$(CC) $(CFLAGS) -DM88000 -o superopt-m88000 $(SRCS)

superopt-am29k: $(SRCS) $(HDRS)
	$(CC) $(CFLAGS) -DAM29K -o superopt-am29k $(SRCS)

superopt-mc68000: $(SRCS) $(HDRS)
	$(CC) $(CFLAGS) -DMC68000 -o superopt-mc68000 $(SRCS)

superopt-mc68020: $(SRCS) $(HDRS)
	$(CC) $(CFLAGS) -DMC68020 -o superopt-mc68020 $(SRCS)

superopt-pyr: $(SRCS) $(HDRS)
	$(CC) $(CFLAGS) -DPYR -o superopt-pyr $(SRCS)

superopt-alpha: $(SRCS) $(HDRS)
	$(CC) $(CFLAGS) -DALPHA -o superopt-alpha $(SRCS)

superopt-hppa: $(SRCS) $(HDRS)
	$(CC) $(CFLAGS) -DHPPA -o superopt-hppa $(SRCS)

superopt-sh: $(SRCS) $(HDRS)
	$(CC) $(CFLAGS) -DSH -o superopt-sh $(SRCS)

dist:
	mkdir superopt-$(VERSION)
	ln $(FILES) superopt-$(VERSION)
	tar cf - superopt-$(VERSION) | gzip --best > superopt-$(VERSION).tar.gz
	rm -rf superopt-$(VERSION)
