# Muscle Smartcard Development
# Makefile
# David Corcoran

CC          = gcc
CFLAGS      = -g -w -fpic
LD          = ld
CL_OBJS     = winscard.o winscard_rpc_clnt.o winscard_rpc_xdr.o ../debuglog.o \
		../dyn_unix.o ../sys_unix.o
SV_OBJS     = winscard_rpc_svc.o winscard_rpc_server.o winscard_rpc_xdr.o
INCLUDE     = -I../include
PREFIX	    = /usr/local/pcsc
LIBS        = -ldl -lc

# LINUX
SERVER_LIBS = -L../ -lpcsclite-core -lfl -ldl
LIBNAME     = libpcsclite.so
# end LINUX

# BSD
#VERSION	     = 0.4
#LDFLAGS      = -Bshareable -Bforcearchive -x -assert pure-text    
#SERVER_LIBS  = -L../ -lpcsclite-core -lfl
#LIBNAME	     = libpcsclite.so.$(VERSION)
# end BSD

all: pcscserver lib

install:
	mkdir -p $(PREFIX)/bin; \
	install -m 755 pcscserver $(PREFIX)/bin; \
	install -m 755 $(LIBNAME) $(PREFIX)/lib

clean:
	rm -f *.o *.so pcscserver

lib: $(CL_OBJS)
	$(LD) $(LDFLAGS) -shared $(CL_OBJS) $(LIBS) -o $(LIBNAME)

pcscserver: $(SV_OBJS)
	$(CC) $(CFLAGS) -o $@ $(SV_OBJS) $(SERVER_LIBS) $(INCLUDE)

winscard_rpc_server.o: winscard_rpc_server.c winscard_rpc.h
	$(CC) $(CFLAGS) -c winscard_rpc_server.c $(INCLUDE)

winscard_rpc_svc.o: winscard_rpc_svc.c winscard_rpc.h
	$(CC) $(CFLAGS) -c winscard_rpc_svc.c $(INCLUDE)

winscard_rpc_clnt.o: winscard_rpc_clnt.c winscard_rpc.h
	$(CC) $(CFLAGS) -c winscard_rpc_clnt.c $(INCLUDE)

winscard_rpc_xdr.o: winscard_rpc_xdr.c winscard_rpc.h
	$(CC) $(CFLAGS) -c winscard_rpc_xdr.c $(INCLUDE)

winscard.o: winscard.c winscard_rpc.h
	$(CC) $(CFLAGS) -c winscard.c $(INCLUDE)
	
debuglog.o: debuglog.c
	$(CC) $(CFLAGS) -c debuglog.c $(INCLUDE)
