# Makefile for PANTS
# =============================================================================

srcdir=.

bindir      = /usr/bin
libdir      = /usr/lib

CC       = gcc
CPP	 = g++
CPPFLAGS = 
LDFLAGS  = 
LIBS     = -ldl 
SHLIB    = 
SHAREDCFLAGS = -nostdlib -shared
LN_S     = ln -s

#CFLAGS=-Wall -g -pedantic
CFLAGS=-O2
LINKFLAGS=
ALLCFLAGS = $(CFLAGS) $(DEFS) -fpic -I.

OBJS= \
	pantsd.o signals.o dispatcher.o multicast.o \
	arbitrate.o leader.o client.o list.o

all: libprex prex chmig pantsd

libprex: exec.o
	$(CC) -o libprex.o $(ALLCFLAGS) -Wall $(SHAREDCFLAGS) exec.o $(LIBS) -lc

exec.o: exec.c
	$(CC) -o exec.o $(CFLAGS) -w -c exec.c

prex: prex.c
	$(CC) -o prex prex.c

chmig: chmigrate.c
	$(CC) -o chmig chmigrate.c

pantsd: $(OBJS)
	$(CPP) $(LINKFLAGS) -o pantsd $^

-include $(OBJS:%.o=%.d)

%.d: %.cpp
	$(CPP) -MM $(CFLAGS) $< > $@

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

bigsum:
	$(CC) sum.c -o sum
	$(CC) total.c -o total
	chmig -c ./sum
	chmod 755 ./bigsum ./multisum

clean:
	rm -f $(OBJS)
	rm -f prex.o exec.o chmigrate.o
	rm -f core

veryclean: clean
	rm -f pantsd prex libprex.o chmig
	rm -f sum total

#need to run this as root
install:
	cp $(srcdir)/pantsd $(bindir)
	cp $(srcdir)/prex $(bindir)
	cp $(srcdir)/chmig $(bindir)
	cp $(srcdir)/libprex.o $(libdir)
	cp $(srcdir)/prexify $(bindir)
	chmod 755 $(bindir)/prexify

uninstall:
	rm -f $(bindir)/pantsd
	rm -f $(bindir)/prex
	rm -f $(bindir)/chmig
	rm -f $(libdir)/libprex.o
	rm -f $(bindir)/prexify
