# $Header: /data/cvs/distcc/src/GNUmakefile,v 1.24 2002/05/17 05:45:54 mbp Exp $

# I guess you could also have a plain Makefile without dependencies,
# and have the GNUmakefile just link to that.

CPPFLAGS = -DPACKAGE=\"distcc\" -DVERSION=\"0.2\"
CFLAGS = -Wall -W -g -O2 -Wshadow -Wpointer-arith -Wcast-align

distcc_sources = distcc.c clinet.c where.c
common_sources = trace.c util.c io.c exec.c arg.c rpc.c tempfile.c \
	bulk.c help.c
daemon_sources = daemon.c serve.c srvnet.c dopt.c

distcc_objs = $(distcc_sources:.c=.o)
common_objs = $(common_sources:.c=.o)
daemon_objs = $(daemon_sources:.c=.o)

all_objs = $(distcc_objs) $(daemon_objs) $(common_objs)
all_sources = $(distcc_sources) $(daemon_sources) $(common_sources)
all_h = distcc.h io.h rpc.h trace.h util.h

LIBS = -lpopt

all: distcc distccd docs

distcc: $(distcc_objs) $(common_objs)
	$(CC) $(CFLAGS) -o $@ $(distcc_objs) $(common_objs) $(LIBS)

distccd: $(daemon_objs) $(common_objs)
	$(CC) $(CFLAGS) -o $@ $(daemon_objs) $(common_objs) $(LIBS)

distcc.flow: 
	cflow $(distcc_sources) $(common_sources)

daemon.flow:
	cflow $(daemon_sources) $(common_sources)

# %.d: %.c
# 	set -e; $(CC) -M $(CPPFLAGS) $< \
# 	| sed 's/\($*\)\.o[ :]*/\1.o $@ : /g' > $@; \
# 	[ -s $@ ] || rm -f $@

$(all_objs): $(all_h)

clean:
	rm -f $(all_objs) *.d

# include $(all_sources:.c=.d)

# We need -redef because we have multiple main functions.
splint:
	splint +unixlib +boolint -nullstate -redef $(CPPFLAGS) *.c

install: 
	install distcc /usr/local/bin/
	install distccd /usr/local/sbin/


docs: 
	$(MAKE) -C linuxdoc alldocs

