# Makefile
# ex.  > make PLATFORM_BITS=64 INST_PREFIX=/usr
#

NAME = azredis
DATE_TAG:=`date +%Y%m%d`

INST_PREFIX = /usr/local

CCOPT = -I.   -I$(INST_PREFIX)/include/hiredis -I/usr/local/include/hiredis -I/usr/include/hiredis
LDOPT =  -L$(INST_PREFIX)/lib -L/usr/local/lib

CFLAGS = -Wall -O2 $(CCOPT)

AZ_CCOPT = -Wall -O2 $(CCOPT) -I$(INST_PREFIX)/include/hiredis -I/usr/local/include/hiredis -I/usr/include/hiredis
AZPC_LIBS = hiredis
AZPC_OBJS = putil.o
AZ_LIB_EXT = $(INST_PREFIX)/lib/azprolog/ext
AZ_LIB_OBJ = $(INST_PREFIX)/lib/azprolog/obj

LDLIBS=$(LDOPT) -lhiredis
CC=gcc

EXEC_TARGETS = redis.so lib_redis.a redis azredis check

default: redis.so lib_redis.a

redis: redis_userfile.c
	$(CC) $(CFLAGS) -c $<
	gcc -o $@ redis_userfile.o $(AZ_LIB_OBJ)/azpi.o $(AZ_LIB_OBJ)/curses.o -L$(AZ_LIB_EXT) -lazp -l_redis -lhiredis -lcurses -lm -ldl

azredis: redis.c putil.o
	azpc -p $< /i /e $@ /curses  /ccopt "$(AZ_CCOPT)"  /link_opt2 "$(AZPC_OBJS)" /lib $(AZPC_LIBS)
	rm -f *.o

redis.so: redis.c putil.c
	$(CC) $(CFLAGS) -fPIC -o redis.o -c redis.c
	$(CC) $(CFLAGS) -fPIC -o putil.o -c putil.c
	$(CC) -shared -dynamiclib -o $@ redis.o putil.o $(LDLIBS)
	rm -f redis.o putil.o

lib_redis.a: redis.c putil.c
	$(CC) $(CFLAGS) -o redis.o -c redis.c
	$(CC) $(CFLAGS) -o putil.o -c putil.c
	ar rv $@ redis.o
	ar rv $@ putil.o
	ranlib $@

redis.o: redis.c putil.h

putil.o: putil.c putil.h

check: check.c

example: example.c


clean:
	rm -f *~ .*~ *.o mkaz userfile.c $(EXEC_TARGETS)

tar:
	cd ..; tar -cvf $(NAME)-$(DATE_TAG).tar $(NAME)
	gzip ../$(NAME)-$(DATE_TAG).tar
