DEPTH   = ..
topsrcdir       = @top_srcdir@
srcdir          = @srcdir@
VPATH           = @srcdir@

INSTALL_DIR = /usr/local/boinc

VERSION = 1

CFLAGS = -g -Wall @DEFS@ \
    -I @srcdir@ \
    -I @srcdir@/../api \
    -I @srcdir@/../lib \
    -I @srcdir@/../RSAEuro/source \
    -I @srcdir@/win \
    -I /usr/local/mysql/include \
    -DHOST=\"@host@\" \
    -DVERSION=$(VERSION)

CC = @CC@ $(CFLAGS)

CLIBS = @LIBS@

CLIENT_PROG = boinc_$(VERSION)_@host@
PROGS = $(CLIENT_PROG) test_net_xfer test_http test_file_xfer

all: $(PROGS)

OBJS = \
    app.o \
    client_state.o \
    client_types.o \
    cs_apps.o \
    cs_files.o \
    cs_scheduler.o \
    file_names.o \
    file_xfer.o \
    filesys.o \
    hostinfo.o \
    hostinfo_unix.o \
    http.o \
    log_flags.o \
    net_stats.o \
    net_xfer.o \
    pers_file_xfer.o \
    prefs.o \
    scheduler_op.o \
    speed_stats.o \
    time_stats.o \
    util.o \
    ../lib/parse.o \
    ../lib/md5_file.o \
    ../lib/md5.o \
    ../lib/crypt.o \
    ../RSAEuro/source/rsaeuro.a \
    ../api/boinc_api.o

TEST_NET_XFER_OBJS = \
    filesys.o \
    http.o \
    log_flags.o \
    ../lib/parse.o \
    net_xfer.o \
    util.o

TEST_HTTP_OBJS = $(TEST_NET_XFER_OBJS)

TEST_FX_OBJS = \
    $(TEST_HTTP_OBJS) \
    client_types.o \
    file_names.o \
    file_xfer.o

TAR_TARGETS = \
        client/*.C client/*.cpp client/*.h client/configure \
        client/install-sh client/*.in client/*.sub client/*.guess \
        lib/*.C lib/*.c lib/*.h \
        api/*.C api/*.h \
        RSAEuro/*/*.c RSAEuro/*/*.h RSAEuro/*/*.in RSAEuro/*/*.mak \
        INSTALL_CLIENT ACKNOWLEDGEMENTS LICENSE

.C.o:
	$(CC) -c -o $*.o $<
.c.o:
	$(CC) -c -o $*.o $<

../RSAEuro/source/rsaeuro.a: 
	cd ../RSAEuro/source; ${MAKE}

$(CLIENT_PROG): main.o $(OBJS)
	$(CC) main.o $(OBJS) $(CLIBS) -o $(CLIENT_PROG)

test_net_xfer: test_net_xfer.o $(TEST_NET_XFER_OBJS)
	$(CC) test_net_xfer.o $(TEST_NET_XFER_OBJS) $(CLIBS) -o test_net_xfer

test_http: test_http.o $(TEST_HTTP_OBJS)
	$(CC) test_http.o $(TEST_HTTP_OBJS) $(CLIBS) -o test_http

test_file_xfer: test_file_xfer.o $(TEST_FX_OBJS)
	$(CC) test_file_xfer.o $(TEST_FX_OBJS) $(CLIBS) -o test_file_xfer

tar:
	cd $(topsrcdir)/..; tar cf boinc_client.tar $(TAR_TARGETS); \
	    gzip boinc_client.tar;

clean:
	rm -f *.o $(PROGS) core dependencies Makefile config.cache
	cd ../RSAEuro/source; ${MAKE} clean;
	cd ../lib; ${MAKE} clean;
	cd ../api; ${MAKE} clean;

install: all
	-mkdir -p $(INSTALL_DIR)/client
	cp test_net_xfer $(INSTALL_DIR)/client/test_net_xfer
	cp test_http $(INSTALL_DIR)/client/test_http
	cp test_file_xfer $(INSTALL_DIR)/client/test_file_xfer
	cp $(CLIENT_PROG) $(INSTALL_DIR)/client/$(CLIENT_PROG)

uninstall:
	$(RM) -r $(INSTALL_DIR)/client

dependencies: @srcdir@/*.C
	$(CC) -M @srcdir@/*.C > dependencies

include dependencies