.PHONY : all
PACKAGE= biditext
PREFIX = /usr/local
LIBDIR = $(PREFIX)/lib
BINDIR = $(PREFIX)/bin
MANDIR = $(PREFIX)/man

# We only need to put one man page, in section 1
TARGET_MANDIR=$(MANDIR)/man1

VERSION = 1.0.0

OPT_CFLAGS = -O2
CFLAGS = $(OPT_CFLAGS) -Wall -fno-strength-reduce
DEBUG  = -g

CC = gcc

# if r2llib-config is not in your path, add the path to it here:
R2LLIB_CONFIG = r2llib-config
R2LLIB_CFLAGS = $(shell $(R2LLIB_CONFIG) --cflags)
R2LLIB_LIBS   = $(shell $(R2LLIB_CONFIG) --libs)

# #########################
#
#  Will be overriden in make.defs

FRIBIDI_CONFIG = fribidi-config

X11_LIB_DIR = /usr/X11R6/lib
X11_INCLUDES_DIR = /usr/include/X11

X11_LIBS   = -L$(X11_LIB_DIR) -lX11
X11_CFLAGS = -I$(X11_INCLUDES_DIR)

INSTALL = install -c

# A sting to optionally replace -lfribidi to make fribidi link statically
STATIC_FRIBIDI=

# unrem this for version of biditext newer than 0.10.0
FRIBIDI_INTERFACE=-DFRIBIDI_INTERFACE_1

# Include make.defs, if it was created
-include make.defs

FRIBIDI_CFLAGS = $(shell $(FRIBIDI_CONFIG) --cflags) $(FRIBIDI_INTERFACE)
FRIBIDI_LIBS   = $(shell $(FRIBIDI_CONFIG) --libs $(STATIC_FRIBIDI))

INCLUDES = $(R2LLIB_CFLAGS) $(FRIBIDI_CFLAGS) $(X11_CFLAGS)
# Those magic defines are aparently no longer needed
#X11_DEFINES = -Dlinux -D__i386__ -D_POSIX_SOURCE -D_BSD_SOURCE \
#	-D_SVID_SOURCE -DX_LOCALE -DFUNCPROTO=15 -DNARROWPROTO \
#	-DMALLOC_0_RETURNS_NULL
PIC = -fPIC
LIBS = $(FRIBIDI_LIBS) $(REFRESHD_LIBS) $(R2LLIB_LIBS) $(X11_LIBS) -ldl
SPEC_FILE=$(PACKAGE).spec

FILES_LIST=Makefile README biditext.in make.defs.in biditext.1 \
           biditext.c common.h common.c hook_into_x.h hook_into_x.c \
	   parse_options.h parse_options.c TODO \
	   $(SPEC_FILE).in $(SPEC_FILE) biditext.menu ChangeLog 
TAR_BALL_DIR=$(PACKAGE)-$(VERSION)
TAR_BALL=$(TAR_BALL_DIR).tar.gz

RM = /bin/rm -f
STRIP = strip

all: biditext.so biditext

biditext: biditext.in
#	cat $< |sed -e 's#BIDITEXT_LIBRARY#$\./biditext.so#g' 
	cat $< |sed -e 's#BIDITEXT_LIBRARY#$(LIBDIR)/biditext.so#g' \
               |sed -e 's#REFRESHD_HOOK_LIBRARY#$(LIBDIR)/refreshd_hook.so#g' \
               > $@
	chmod +x $@

$(SPEC_FILE): $(SPEC_FILE).in
	cat $< |sed -e 's#BIDITEXT_VERSION#$(VERSION)#g' \
	       > $@

parse_options.o: parse_options.c
common.o: common.c
hook_into_x.o: hook_into_x.c
biditext.o: biditext.c

biditext.so: parse_options.o common.o hook_into_x.o biditext.o
	$(CC) -o $@ -shared $(DEBUG) $^ $(LIBS)
	$(STRIP) $@

%.o: %.c
	$(CC) -c $(CFLAGS) $(DEBUG) $(INCLUDES) $(PIC) $< -o $@

clean:
	$(RM) *.o biditext.so biditext $(SPEC_FILE) *.bak *~ 

install: biditext.so biditext biditext.1
	$(INSTALL) -d             $(LIBDIR)
	$(INSTALL) biditext.so $(LIBDIR)
	$(INSTALL) -d             $(BINDIR)
	$(INSTALL) biditext    $(BINDIR)
	$(INSTALL) -d             $(TARGET_MANDIR)
	$(INSTALL) -m 644 biditext.1  $(TARGET_MANDIR)

uninstall:
	$(RM) $(LIBDIR)/biditext.so
	$(RM) $(BINDIR)/biditext
	$(RM) $(TARGET_MANDIR)/biditext.1

pack: $(TAR_BALL)

$(TAR_BALL): $(FILES_LIST)
	if [ -e $(TAR_BALL_DIR) ] ; then \
	  $(RM) -rf $(TAR_BALL_DIR);     \
	fi
	mkdir $(TAR_BALL_DIR)
	cp $(FILES_LIST) $(TAR_BALL_DIR)
	tar cvzf $(TAR_BALL) $(TAR_BALL_DIR)

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