# Makefile for ROX-CLib

PKG_CONFIG = pkg-config
GTK_CFLAGS = pkg-config  gtk+-2.0 --cflags
GTK_LIBS = pkg-config  gtk+-2.0 --libs
XML_CONFIG = pkg-config  libxml-2.0
SHELL = /bin/sh
srcdir = .
PLATFORM = Linux-ix86
PLATFORM_DIR = ../${PLATFORM}
ABS_PLATFORM_DIR = ${shell pwd}/${PLATFORM_DIR}
SHARED = yes
top_builddir =  .
LIBTOOL = $(SHELL) $(top_builddir)/libtool
INSTALL = /usr/bin/install -c
INSTALL_PROGRAM = ${INSTALL} 
INSTALL_DATA = ${INSTALL} -m 644
INSTALL_SCRIPT = ${INSTALL}
ROXCLIB_VERSION_NUM = 2.1.10
LIB_VERSION=9:0:3
.SUFFIXES:
.SUFFIXES: .c .o .sh .lo

LIBNAME = rox-clib
CC = gcc
CFLAGS = -g -O2 -Wall -Wmissing-prototypes -I. `${GTK_CFLAGS}` `${XML_CONFIG} --cflags` -DLIBNAME=\"${LIBNAME}\"
LDFLAGS =  `${GTK_LIBS}` `${XML_CONFIG} --libs` -lnsl 
EXEC = ${PLATFORM_DIR}/bin/${PROG}
LIBDIR = ${PLATFORM_DIR}/lib
ABSLIBDIR = ${ABS_PLATFORM_DIR}/lib
INCLUDEDIR = ${PLATFORM_DIR}/include/rox
LIBFILE.a = ${LIBDIR}/lib${LIBNAME}.a
LIBFILE.la = ${LIBDIR}/lib${LIBNAME}.la
LTCOMPILE = ${LIBTOOL} --mode=compile ${CC} ${CFLAGS} -c
LINK = $(LIBTOOL) --mode=link ${CC} ${CFLAGS} ${LDFLAGS} -version-info ${LIB_VERSION}

############ Things to change for different programs

PROG = pkg

SRCS = pkg.c error.c choices.c infowin.c rox_debug.c rox_dnd.c
SRCS += gtksavebox.c rox_path.c rox_resources.c rox_soap.c test.c
SRCS += rox_filer_action.c applet.c rox.c rox_soap_server.c 
SRCS += options.c basedir.c mime.c appinfo.c mime_handler.c uri.c
SRCS += systray.c menu.c xattr.c

OBJECTS = pkg.o 

LIBOBJECTS = error.o choices.o infowin.o rox_debug.o rox_dnd.o
LIBOBJECTS += gtksavebox.o rox_path.o rox_resources.o rox_soap.o
LIBOBJECTS += rox_filer_action.o applet.o rox.o rox_soap_server.o 
LIBOBJECTS += options.o basedir.o mime.o appinfo.o mime_handler.o uri.o
LIBOBJECTS += systray.o menu.o  xattr.o

SLIBOBJECTS = error.lo choices.lo infowin.lo rox_debug.lo rox_dnd.lo
SLIBOBJECTS += gtksavebox.lo rox_path.lo rox_resources.lo rox_soap.lo
SLIBOBJECTS += rox_filer_action.lo applet.lo rox.lo rox_soap_server.lo
SLIBOBJECTS += options.lo basedir.lo mime.lo appinfo.lo mime_handler.lo uri.lo
SLIBOBJECTS += systray.lo menu.lo xattr.lo

INCLUDES = rox-clib.h error.h choices.h infowin.h rox_debug.h rox_dnd.h
INCLUDES += gtksavebox.h rox_path.h rox_resources.h rox_soap.h
INCLUDES += rox_filer_action.h applet.h rox.h rox_soap_server.h
INCLUDES += options.h basedir.h mime.h appinfo.h mime_handler.h uri.h
INCLUDES += systray.h menu.h xattr.h

############ Things to keep the same

all: ${EXEC} ${PLATFORM_DIR}/bin/rox_run ${PLATFORM_DIR}/bin/install_on_path
all: ${PLATFORM_DIR}/bin/test ${PLATFORM_DIR}/bin/rox_pinboard
all: ${PLATFORM_DIR}/bin/libdir ${PLATFORM_DIR}/bin/appdir
all: ${PLATFORM_DIR}/lib/ROX-CLib.pc
all: ${LIBFILE.la}

zero-install: all zero-install-shared
	rm *.o *.lo
	rm -rf .libs
	strip ${PLATFORM_DIR}/bin/test
	strip ${PLATFORM_DIR}/bin/rox_pinboard
	strip --strip-debug ${LIBFILE.a}

zero-install-shared: ${LIBFILE.la}
	strip --strip-debug ${LIBDIR}/lib${LIBNAME}.so

.c.lo:
	${LTCOMPILE} $<

${EXEC}: ${PLATFORM_DIR}/bin ${OBJECTS} ${LIBFILE.a} ${INCLUDEDIR}
	${CC} -o ${EXEC} ${OBJECTS} ${LDFLAGS}

${PLATFORM_DIR}/bin/test: ${PLATFORM_DIR}/bin test.o ${LIBFILE.la} ${INCLUDEDIR}
	${CC} $(CFLAGS) -o ${PLATFORM_DIR}/bin/test test.o ${LDFLAGS} -L${LIBDIR} -l${LIBNAME}

${PLATFORM_DIR}/bin/rox_pinboard: ${PLATFORM_DIR}/bin rox_pinboard.o ${LIBFILE.a} ${INCLUDEDIR}
	${CC} $(CFLAGS) -o $@ rox_pinboard.o ${LDFLAGS} -L${LIBDIR} -l${LIBNAME}

${PLATFORM_DIR}/bin/rox_run: rox_run.sh
	cat rox_run.sh > $@
	chmod +x $@

${PLATFORM_DIR}/bin/install_on_path: install_on_path.sh
	cat install_on_path.sh > $@
	chmod +x $@

${PLATFORM_DIR}/bin/libdir: libdir.sh
	sed -e "s/@mode@/libdir/" libdir.sh > $@
	chmod +x $@

${PLATFORM_DIR}/bin/appdir: libdir.sh
	sed -e 's/@mode@/appdir/' libdir.sh > $@
	chmod +x $@

${PLATFORM_DIR}:
	-mkdir ${PLATFORM_DIR}

${PLATFORM_DIR}/bin: ${PLATFORM_DIR}
	-mkdir ${PLATFORM_DIR}/bin

${LIBDIR}:  ${PLATFORM_DIR}
	-mkdir ${LIBDIR}

${INCLUDEDIR}:  ${PLATFORM_DIR} ${INCLUDES}
	-mkdir -p ${INCLUDEDIR}
	for f in ${INCLUDES}; do ${INSTALL_DATA} $$f ${INCLUDEDIR}; done
	-( cd ${INCLUDEDIR}/.. ; ln -s rox/*.h . )

${LIBFILE.a}: ${LIBDIR} ${LIBOBJECTS}
	${LINK} -o ${LIBFILE.a} ${LIBOBJECTS}

${LIBFILE.la}: ${LIBDIR} ${SLIBOBJECTS}
	${LINK} -o lib${LIBNAME}.la -rpath ${ABSLIBDIR} ${SLIBOBJECTS}
	${LIBTOOL} --mode=install $(INSTALL) lib${LIBNAME}.la ${ABSLIBDIR}
	${LIBTOOL} --mode=finish ${ABSLIBDIR}

${PLATFORM_DIR}/lib/ROX-CLib.pc: ROX-CLib.pc.in Makefile
	sed -e 's/@PLATFORM@/${PLATFORM}/' -e 's/@VERSION@/${ROXCLIB_VERSION_NUM}/' ROX-CLib.pc.in > $@

messages.pot: $(SRCS)
	xgettext --keyword=_ --keyword=N_ --output=messages.pot $(SRCS)

clean:
	rm -rf *.o *.lo Makefile.bak .libs

depend:
	makedepend -- $(CFLAGS) -- $(SRCS)

Makefile: Makefile.in config.status
	./config.status

config.h: config.h.in
	./config.status

config.status: configure
	./configure --with-platform=${PLATFORM}

configure: configure.in
	autoconf
