#
# Makefile for diamond:
#   Simulate single electron transistor diamonds.
#


########################################################################
# You may want to edit this to your taste:

CC=gcc
CFLAGS=-g -O2 -W -Wall -ansi -pedantic
INSTALL.bin=install -D -s
INSTALL.doc=install -D -m 644
INSTALLDIR=/usr/local


########################################################################
# No changes should be needed below this point

VERSION=0.5
TARBALLNAME=diamond-$(VERSION)
TARBALL=$(TARBALLNAME).tar.gz
TARBALLFILES=README Changelog Makefile *.c *.h diamond.conf \
	diamond.1 diamond.html internals.html
WEBFILES=$(TARBALL) README diamond.html diamond.conf internals.html
OBJECTS=parse.o memory.o diamond.o main.o
LDLIBS=-lm

# Main target
diamond:	$(OBJECTS)
		$(CC) $^ $(LDLIBS) -o $@

# Objects
.c.o:
		$(CC) -c $(CFLAGS) $<

# Dependencies
parse.o:	parse.h
memory.o:	memory.h
diamond.o:	memory.h diamond.h
main.o:		memory.h parse.h diamond.h

# Other targets
install:	diamond
		$(INSTALL.bin) diamond $(INSTALLDIR)/bin/diamond
		$(INSTALL.doc) diamond.1 $(INSTALLDIR)/man/man1/diamond.1
		$(INSTALL.doc) diamond.conf $(INSTALLDIR)/lib/diamond.conf

tags:
		ctags *.c
clean:
		rm -rf diamond *.o tags $(TARBALLNAME) $(TARBALL)

dist:
		rm -rf dist
		mkdir dist $(TARBALLNAME)
		cp -pR $(TARBALLFILES) $(TARBALLNAME)
		tar cf - $(TARBALLNAME) | gzip > $(TARBALL)
		rm -rf $(TARBALLNAME)
		cp -a $(WEBFILES) dist
		rm -f $(TARBALL)

# vim: ai ts=8:
