# $Id: Makefile,v 1.18 2005/10/19 18:25:58 ozawa Exp $
#
# Copyright 2005- ONGS Inc. All rights reserved.
#
# author: Masanori OZAWA (ozawa@ongs.co.jp)
# version: $Revision: 1.18 $
# 
# Redistribution and use in source and binary forms, with or without 
# modification, are permitted provided that the following conditions
# are met:
# 
#   1. Redistributions of source code must retain the above copyright
#      notice, this list of conditions and the following disclaimer.
#   2. Redistributions in binary form must reproduce the above copyright
#      notice, this list of conditions and the following disclaimer in the
#      documentation and/or other materials provided with the distribution.
# 
# THIS SOFTWARE IS PROVIDED BY ONGS INC ``AS IS'' AND ANY EXPRESS OR
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
# IN NO EVENT SHALL ONGS INC OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# 
# The views and conclusions contained in the software and documentation are
# those of the authors and should not be interpreted as representing official
# policies, either expressed or implied, of the ONGS Inc.
#

.include "../Makefile.inc"

LIB_DEPS	= glibmm-2.4 libxml-2.0 libxslt

.ifndef WITHOUT_GDK
LIB_DEPS	+= gdk-pixbuf-2.0
.endif

CXX			?= g++
CXXFLAGS	?= -pipe

__FLAGS		!= pkg-config --cflags ${LIB_DEPS}
CXXINC		+= -I. -I./include ${__FLAGS} -I${PREFIX}/include
__LIBS		!= pkg-config --libs ${LIB_DEPS}
LIBS		= ${__LIBS}

SRC			!= find ./ -name "*.cpp" | grep -v "CVS" | \
				sed 's/^[.][/]//g' | sort
OBJ			= ${SRC:.cpp=.o}
LIBOBJ		= ${OBJ:S/main.o//}

INCFILES	!= find ./include/ -name "*.h" | grep -v "CVS" | \
				grep -v "/xdtp.h" | sed -e 's,^[.]/include/,,g' | sort

LIB_ARTARGET= ${LIBTARGET:R:.so=.a}
LIB_LNTARGET= ${LIBTARGET:R}

.ifdef WITHOUT_GDK
CXXFLAGS	+= -DWITHOUT_GDK
.endif

.ifndef WITHOUT_FETCH
.if exists(/usr/include/fetch.h) || exists(${PREFIX}/include/fetch.h)
CXXFLAGS	+= -DWITH_FETCH
LIBS		+= -lfetch
.endif
.endif

CXXFLAGS	+= -Wall

.ifndef DEBUG
CXXFLAGS	+= -O2
.else
CXXFLAGS	+= -g -DDEBUG
.endif

CXXFLAGS	+= -DMAJOR_VERSION="${MAJOR_VERSION}"
CXXFLAGS	+= -DMINOR_VERSION="${MINOR_VERSION}"
CXXFLAGS	+= -DMICRO_VERSION="${MICRO_VERSION}"

.ifdef CURRENT_VERSION
CXXFLAGS	+= -DCURRENT_VERSION='"${CURRENT_VERSION}"'
.endif

all: build

build: ${TARGET} ${LIBTARGET}

${TARGET}: ${OBJ} ${LIBTARGET}
	${CXX} ${CXXFLAGS} -o ${TARGET} main.o -L. -lxdtp ${LIBS}
.ifndef DEBUG
	${STRIP} ${TARGET}
.endif

${LIBTARGET}: ${LIBOBJ}
	${CXX} ${CXXFLAGS} -o ${LIBTARGET} --shared ${LIBOBJ} ${LIBS}
	${AR} r ${LIB_ARTARGET} ${LIBOBJ}
	${RANLIB} ${LIB_ARTARGET}

.cpp.o:
	${CXX} ${CXXINC} ${CXXFLAGS} -o $@ -c $<

install:
	${INSTALL} -c -o root -g wheel -m 755 ${TARGET} ${PREFIX}/bin/
	${INSTALL} -c -o root -g wheel -m 755 ${LIBTARGET} ${PREFIX}/lib/
	${INSTALL} -c -o root -g wheel -m 644 ${LIB_ARTARGET} ${PREFIX}/lib/
	${LN} -f -s ${PREFIX}/lib/${LIBTARGET} ${PREFIX}/lib/${LIB_LNTARGET}
.ifndef WITHOUT_INCLUDE
	${INSTALL} -d -o root -g wheel -m 755 ${XDTPINCLUDE}
	${INSTALL} -d -o root -g wheel -m 755 ${XDTPINCLUDE}/modules
	${INSTALL} -d -o root -g wheel -m 755 ${XDTPINCLUDE}/modules/imports
	for incfile in ${INCFILES}; do \
		${INSTALL} -c -o root -g wheel -m 644 ./include/$${incfile} \
			${PREFIX}/include/xdtp/`${DIRNAME} $${incfile}` ; \
	done
.endif

clean:
	rm -f ${OBJ}
	rm -f ${TARGET}
	rm -f ${LIBTARGET} ${LIB_ARTARGET}


syntax highlighted by Code2HTML, v. 0.9.1