PACKAGE		= refreshd
VERSION 	= 0.1.4
# LIBTOOL_VERSION	= 0:36:0
# CC		= gcc
# DEBUG		= -g
# PREFIX		= /usr/local
# LIBDIR		= $(PREFIX)/lib
# BINDIR		= $(PREFIX)/bin
# #INCLUDEDIR	= $(PREFIX)/include/$(PACKAGE)
# INCLUDEDIR	= $(PREFIX)/include
# INCLUDE 	= 
# OPT_CFLAGS	= -O2
# CFLAGS  	= $(OPT_CFLAGS) -Wall $(DEBUG) $(INCLUDE)
# LIBS		=
# LD 		= $(CC)
# PIC             = -fPIC
# # set LIBTOOL to an empty value to build static lib
# #LIBTOOL	= libtool
# LIBTOOL		= 
# LDFLAGS		=
CHMOD		= chmod
TAR 		= tar
TAR_OPTS 	= czvhf
# Archiver and indexer
# AR 		= ar
# ARFLAGS		= rc
# RANLIB 		= ranlib
CP		= cp
RM		= rm -fr
INSTALL		= install
MKDIR		= mkdir

TESTPROG	= r2llib-test
CMDLINE		= r2l
#PROGS  	= $(TESTPROG) $(CMDLINE)
PROGS  		= $(CMDLINE)
LIB_NAME	= r2l
LIB  		= lib$(LIB_NAME).a
ifneq ($(LIBTOOL),) 
  LIB_SHARED	= $(LIB:.a=.la)
else
  LIB_SHARED	= $(LIB)
endif
OBJS 		= r2llib.o r2l_state.o biditext_base_state.o parse_argv.o \
                  r2llib_data.o file_ops.o query_state.o access.o
ifneq ($(LIBTOOL),) 
  OBJS_SHARED	= $(OBJS:.o=.lo)
else
  OBJS_SHARED	= $(OBJS)
endif
DEPS 		= r2llib.h r2l_state.h biditext_base_state.h parse_argv.h \
	          r2llib_data.h file_ops.h query_state.h access.h
EXT_HEADERS	= r2llib.h
CONFIG_BIN	= $(PACKAGE)-config
CONFIG_SRC	= $(CONFIG_BIN).in
LIBFLAGS 	= -L. -lr2l
VERSION_FLAG	= -version-info $(LIBTOOL_VERSION)

LD_LIB_LIBTOOL	= $(LIBTOOL) $(LD) $(VERSION_FLAG) -rpath $(LIBDIR)  

# for the packaging:
PACKAGE_FILES_LIST = \
	   doc/readme \
	   doc/ChangeLog.txt \
           doc/refreshd-0.1.0.doc.txt \
	   doc/refreshd-0.1.0-relnotes.txt \
           Makefile src/refreshd/auto_display.cc \
	   src/refreshd/communication.cc src/refreshd/auto_display.h \
           src/refreshd/Makefile src/refreshd/refresher.cc \
	   src/refreshd/window_db.h \
	   src/refreshd/main.cc \
	   src/refreshd/refresher.h \
	   src/refreshd/window_db.cc \
	   src/refreshd/window_db_iterator.h \
	   src/refreshd/window_db_iterator.cc \
	   src/refreshd/scavenger.cc \
	   src/refreshd/signal_handler.c \
	   src/refreshd/r2lstate.h \
	   src/refreshd/communication.h \
	   src/refreshd/traverse.cc \
	   src/refreshd/debug.h \
	   src/refreshd/debug.c \
	   src/refreshd/traverse.h src/refreshd/scavenger.h \
	   src/refreshd/error_handler.cc \
	   src/refreshd/error_handler.h \
	   src/refreshd/refreshd.1 \
	   src/refreshd_cnt/Makefile \
	   src/refreshd_cnt/refreshd_cnt.cc \
	   src/refreshd_cnt/refreshd_cnt.h \
	   src/refreshd_cnt/refreshd_params.h \
	   src/refreshd_cnt/messages.h \
	   src/refreshd_cnt/refreshd_cnt-config.in \
	   src/refreshd_hook/refreshd_hook.c \
	   src/refreshd_hook/Makefile \
	   src/biditext/biditext.c \
	   src/biditext/Makefile \
	   src/test/Makefile \
	   src/test/test_window_db.cc \
	   src/test/test_refreshd_cnt.cc \
	   src/test/comm_server.cc \
	   src/Makefile.opt \
	   src/Makefile \
	   src/make.defs.in

TAR_BALL_DIR=$(PACKAGE)-$(VERSION)
TAR_BALL=$(TAR_BALL_DIR).tar.gz

# all: $(LIB) $(PROGS) $(CONFIG_BIN)
# 
# #$(LIB): $(OBJS) $(DEPS)
# #	$(AR) $(ARFLAGS) $@ $(OBJS) 
# #	$(RANLIB) $@
#
# $(LIB): $(OBJS) $(DEPS)
# ifneq ($(LIBTOOL),)
# 	$(LIBTOOL) $(LD) $(VERSION_FLAG) $(LDFLAGS) -rpath $(LIBDIR) \
# 	-o $(LIB_SHARED) $(OBJS_SHARED)
# else
# 	$(AR) $(ARFLAGS) $@ $(OBJS) 
# 	$(RANLIB) $@
# endif
# 
# $(CMDLINE): $(CMDLINE).o $(LIB) $(DEPS)
# 	$(LIBTOOL) $(LD) $(LDFLAGS) $(CFLAGS) $< $(LIB_SHARED) -o $@
# 
# $(TESTPROG): $(TESTPROG).o $(LIB) $(DEPS)
# 	$(LIBTOOL) $(LD) $(LDFLAGS) $(CFLAGS) $< $(LIB_SHARED) -o $@
# 
# # compile C source files into object files.
# %.o: %.c
# 	$(LIBTOOL) $(CC) $(PIC) $(CFLAGS) -c $<
# 
# clean:
# 	$(RM) $(PROGS) *.o *.lo *.html *~ core $(PACKAGE).spec $(CONFIG_BIN) \
# 	      .libs/
# 
# libclean: clean
# 	$(RM) $(LIB)
# 
# html: libclean
# 	htmlize_code.pl
# 
# install: $(PROGS) $(CONFIG_BIN) $(LIB) $(EXT_HEADERS) 
# 	$(INSTALL) -d $(LIBDIR)
# 	#$(LIBTOOL) $(INSTALL) -c $(LIB_SHARED) $(LIBDIR)
# 	$(LIBTOOL) $(CP) $(LIB_SHARED) $(LIBDIR)
# 	$(INSTALL) -d $(INCLUDEDIR)
# 	$(CP) $(EXT_HEADERS) $(INCLUDEDIR)
# 	$(INSTALL) -d $(BINDIR)
# 	#$(LIBTOOL) $(INSTALL) -c $(PROGS) $(CONFIG_BIN) $(BINDIR)
# 	$(LIBTOOL) $(CP) $(PROGS) $(CONFIG_BIN) $(BINDIR)
# 
# uninstall:
# 	for file in $(LIB_SHARED); \
# 	  do $(RM) $(LIBDIR)/$$file; \
# 	done
# 	for file in $(PROGS) $(CONFIG_BIN) ; \
# 	  do $(RM) $(BINDIR)/$$file; \
# 	done
# 	for file in $(EXT_HEADERS); \
# 	  do $(RM) $(INCLUDEDIR)/$$file; \
# 	done

# # The maintainer should not be required to to update the version in the rpm
# # spec file manually:
# # (Maybe replace this with 'perl -p -ei' of the spec file, and akip .spec.in) ?
# $(PACKAGE).spec: $(PACKAGE).spec.in
# 	cat $< |sed -e 's#PACKAGE_VERSION#$(VERSION)#g' \
# 	        > $@
# 
# # Create the config-script from its template
# $(CONFIG_BIN): $(CONFIG_SRC)
# 	cat $< | sed -e 's#PACKAGE_VERSION#$(VERSION)#g'         \
# 	             -e 's#PACKAGE_LIBRARY_DIR#$(LIBDIR)#g'   \
# 	             -e 's#PACKAGE_LIBRARY#$(LIB_NAME)#g'   \
# 	             -e 's#PACKAGE_INCLUDE_PATH#$(INCLUDEDIR)#g' \
# 	        > $@
# 	$(CHMOD) +x $@

pack: $(TAR_BALL)
	
$(TAR_BALL): $(PACKAGE_FILES_LIST)
	if [ -e $(TAR_BALL_DIR) ] ; then \
	  $(RM) -rf $(TAR_BALL_DIR);     \
	fi
	mkdir $(TAR_BALL_DIR)
	# create subdirectories if necessary. $(?D) is the directory parts of
	# $(?) . TODO: remove "." and remove duplicates
	for dir in $(^D) ; do             \
	  mkdir -p $(TAR_BALL_DIR)/$$dir; \
	done
	# copy the files
	for file in $^; do                  \
	  cp $$file $(TAR_BALL_DIR)/$$file; \
	done
	#cp $(PACKAGE_FILES_LIST) $(TAR_BALL_DIR)
	$(TAR) cvzf $(TAR_BALL) $(TAR_BALL_DIR)


# $(TAR_BALL): $(PACKAGE_FILES_LIST)
# 	if [ -e $(TAR_BALL_DIR) ] ; then \
# 	  $(RM) -rf $(TAR_BALL_DIR);     \
# 	fi
# 	$(MKDIR) $(TAR_BALL_DIR)
# 	$(CP) $(PACKAGE_FILES_LIST) $(TAR_BALL_DIR)
# 	$(TAR) cvzf $(TAR_BALL) $(TAR_BALL_DIR)

rpm: $(TAR_BALL)
	rpm -tb $(TAR_BALL)
