# Makefile for ANSI C RDB operators
CC      = gcc
CFLAGS  = -ansi -pedantic -Wall -O2
LDFLAGS = -lm

PREFIX  ?= $(HOME)
RDBDIR  ?= $(PREFIX)/bin/rdb
MANS    = rdb.1
MANDIR  ?= $(PREFIX)/share/man/man1

TARGETS = row column sorttbl ptbl headoff headon addcol uniqtbl mergetbl

all: $(TARGETS)

rdb.o: rdb.c rdb.h
	$(CC) $(CFLAGS) -c rdb.c -o rdb.o

row.o: row.c rdb.h
	$(CC) $(CFLAGS) -c row.c -o row.o

column.o: column.c rdb.h
	$(CC) $(CFLAGS) -c column.c -o column.o

sorttbl.o: sorttbl.c rdb.h
	$(CC) $(CFLAGS) -c sorttbl.c -o sorttbl.o

ptbl.o: ptbl.c rdb.h
	$(CC) $(CFLAGS) -c ptbl.c -o ptbl.o

headoff.o: headoff.c rdb.h
	$(CC) $(CFLAGS) -c headoff.c -o headoff.o

headon.o: headon.c rdb.h
	$(CC) $(CFLAGS) -c headon.c -o headon.o

addcol.o: addcol.c rdb.h
	$(CC) $(CFLAGS) -c addcol.c -o addcol.o

uniqtbl.o: uniqtbl.c rdb.h
	$(CC) $(CFLAGS) -c uniqtbl.c -o uniqtbl.o

mergetbl.o: mergetbl.c rdb.h
	$(CC) $(CFLAGS) -c mergetbl.c -o mergetbl.o

row: row.o rdb.o
	$(CC) $(CFLAGS) -o row row.o rdb.o $(LDFLAGS)

column: column.o rdb.o
	$(CC) $(CFLAGS) -o column column.o rdb.o $(LDFLAGS)

sorttbl: sorttbl.o rdb.o
	$(CC) $(CFLAGS) -o sorttbl sorttbl.o rdb.o $(LDFLAGS)

ptbl: ptbl.o rdb.o
	$(CC) $(CFLAGS) -o ptbl ptbl.o rdb.o $(LDFLAGS)

headoff: headoff.o rdb.o
	$(CC) $(CFLAGS) -o headoff headoff.o rdb.o $(LDFLAGS)

headon: headon.o rdb.o
	$(CC) $(CFLAGS) -o headon headon.o rdb.o $(LDFLAGS)

addcol: addcol.o rdb.o
	$(CC) $(CFLAGS) -o addcol addcol.o rdb.o $(LDFLAGS)

uniqtbl: uniqtbl.o rdb.o
	$(CC) $(CFLAGS) -o uniqtbl uniqtbl.o rdb.o $(LDFLAGS)

mergetbl: mergetbl.o rdb.o
	$(CC) $(CFLAGS) -o mergetbl mergetbl.o rdb.o $(LDFLAGS)

install: all
	mkdir -p $(RDBDIR)
	cp $(TARGETS) $(RDBDIR)/
	mkdir -p $(MANDIR)
	cp $(MANS) $(MANDIR)/
	gzip -f $(MANDIR)/rdb.1

uninstall:
	rm -f $(RDBDIR)/$(TARGETS)
	rm -f $(RDBDIR)/$(TARGETS)
	rm -f $(MANDIR)/rdb.1.gz

clean:
	rm -f $(TARGETS) *.o

.PHONY: all clean install uninstall   


