# 
#  MGL -- MobileGear Graphic Library -
#  Copyright (C) 1998, 1999
#       Koji Suzuki (suz@at.sakura.ne.jp)
#       Yukihiko Sano (yukihiko@yk.rim.or.jp)
# 
#  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 KOJI SUZUKI AND YUKIHIKO SANO ``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 THE TERRENCE R. LAMBERT 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.
# 

SHELL=/bin/sh
SRCDIR=.
VER=2.0
REVISION=19.3
include ../conf/config.mk
include ../conf/${OSTYPE}.mk

ifdef MD_ALL
all: ${MD_ALL}
else
all: libmgl2.so.${VER} libmgl2.so.${VER}.${REVISION}
endif

CFLAGS=-g -O 
# CFLAGS=-O2
OBJS= mgl2.o recpoint.o event_man.o mglcol.o  imgopt.o \
	draw_engine.o decol4.o font_engine.o ${FONT_ENGINE}.o textscreen.o \
	memory.o keymap.o

ifdef SUPPORT_CLIENT
OBJS += emcli.o
endif

ifdef NATIVE_DRAW_ENGINE
OBJS += ${NATIVE_DRAW_ENGINE}.o
endif

ifdef NATIVE_DRAW_ENGINE1
OBJS += ${NATIVE_DRAW_ENGINE1}.o
endif
ifdef NATIVE_DRAW_ENGINE2
OBJS += ${NATIVE_DRAW_ENGINE2}.o
endif
ifdef NATIVE_DRAW_ENGINE3
OBJS += ${NATIVE_DRAW_ENGINE3}.o
endif
ifdef NATIVE_DRAW_ENGINE4
OBJS += ${NATIVE_DRAW_ENGINE4}.o
endif
ifdef NATIVE_DRAW_ENGINE5
OBJS += ${NATIVE_DRAW_ENGINE5}.o
endif
ifdef NATIVE_DRAW_ENGINE6
OBJS += ${NATIVE_DRAW_ENGINE6}.o
endif
ifdef NATIVE_DRAW_ENGINE7
OBJS += ${NATIVE_DRAW_ENGINE7}.o
endif
ifdef NATIVE_DRAW_ENGINE8
OBJS += ${NATIVE_DRAW_ENGINE8}.o
endif


ifdef SUPPORT_GENERIC_FULLCOLOR
OBJS += dec3k.o
endif
ifdef SUPPORT_GENERIC_192COLOR
OBJS += dec192.o
endif
ifdef SUPPORT_GENERIC_16COLOR
OBJS += dec16.o
endif

ifdef IM_STATIC
OBJS += imcanna.o
CFLAGS += ${INCS_IM}
endif

ifdef IM_DYNAMIC
CFLAGS += ${INCS_IM}
endif

ifdef EVENT_MANAGER
ifdef OBJS_X11
OBJS += ${OBJS_X11}
endif
ifdef OBJS_CONS
OBJS += ${OBJS_CONS}
endif
endif

ifeq (${OBJS_X11},${EVENT_MANAGER}.o)
CFLAGS += ${INCS_X11}
else
ifeq (${OBJS_X11},${EVENT_MANAGER_X}.o)
CFLAGS += ${INCS_X11}
endif
endif
ifeq (${OBJS_CONS},${EVENT_MANAGER}.o)
CFLAGS += ${INCS_CONS}
endif

POBJS=$(OBJS:.o=.po) 
SOBJS=$(OBJS:.o=.xo)
SRCS=$(OBJS:.o=.c)

.SUFFIXES: .xo .po

.c.xo: 
	${CC} ${CFLAGS} ${MGLPIC_CFLAGS} -o $*.xo -c $*.c

.c.po: 
	${CC} ${CFLAGS} -o $*.po -p -c $*.c

libmgl2.a : ${OBJS} ${OBJS_X11} ${OBJS_CONS}
	${AR} ruc libmgl2.a ${OBJS} ${OBJS_X11} ${OBJS_CONS}
	ranlib libmgl2.a

libmgl2_p.a : ${POBJS}
	${AR} ruc libmgl2_p.a ${POBJS}
	ranlib libmgl2_p.a

libmgl2.so.${VER} : ${SOBJS}
	${MGLPIC_LD} ${MGLPIC_LDFLAGS} -o libmgl2.so.${VER}.${REVISION} ${SOBJS} ${DEFAULT_LIBS}
	ln -sf libmgl2.so.${VER}.${REVISION} libmgl2.so.${VER} 
	ln -sf libmgl2.so.${VER} libmgl2.so

install: mgl2.h mglcol.h mglkey.h libmgl2.so.${VER}  ${MGL_LIB_DIR} ${MGL_HEADER_DIR} ${MGLDIR}
	${INSTALL} -c -s ${PRIV_BIN} libmgl2.so.${VER} ${MGL_LIB_DIR}
	(cd ${MGL_LIB_DIR}; ln -sf libmgl2.so.${VER} libmgl2.so)
	${INSTALL} -c ${PRIV_FILE} mgl2.h ${MGL_HEADER_DIR}
	${INSTALL} -c ${PRIV_FILE} mglcol.h ${MGL_HEADER_DIR}
	${INSTALL} -c ${PRIV_FILE} mglkey.h ${MGL_HEADER_DIR}
#ifdef SERVER_CONS
#	${INSTALL} -c -s ${PRIV_BIN} ${SERVER_CONS} ${MGL_SBIN_DIR}
#endif
#ifdef SERVER_X11
#	${INSTALL} -c -s ${PRIV_BIN} ${SERVER_X11} ${MGL_BIN_DIR}
#endif
#ifdef IM_DYNAMIC
#	${INSTALL} -c -s ${PRIV_BIN} ${IM_PROG} ${MGLDIR}
#endif

${MGLDIR} :
	mkdir ${MGLDIR}

ifneq ($MGLDIR,$MGL_LIB_DIR)
${MGL_LIB_DIR} :
	mkdir ${MGL_LIB_DIR} 
endif
ifneq ($MGLDIR,$MGL_HEADER_DIR)
${MGL_HEADER_DIR} :
	mkdir ${MGL_HEADER_DIR} 
endif

clean:
	rm -f core *.core *.o *.xo *.po libmgl2.a libmgl2_p.a \
		config.h .depend libmgl2.so.*  libmgl2.so a.out *.mgr *.xpm

${SRCDIR}/config.h: ../conf/config.mk
	echo "#define MGLDIR \"${MGLDIR}\"" > ${SRCDIR}/config.h
	echo "#define MAX_COLOR ${MAX_COLOR}" >> ${SRCDIR}/config.h
ifdef SYM_PREFIX
	echo "#define SYM_PREFIX " >> ${SRCDIR}/config.h
endif
ifdef DULLY_DISPLAY
	echo "#define DULLY_DISPLAY " >> ${SRCDIR}/config.h
endif
# ifdef SUPPORT_GENERIC_4COLOR
	echo "#define SUPPORT_GENERIC_4COLOR" >> ${SRCDIR}/config.h
# endif
ifdef SUPPORT_GENERIC_16COLOR
	echo "#define SUPPORT_GENERIC_16COLOR" >> ${SRCDIR}/config.h
endif
ifdef SUPPORT_GENERIC_192COLOR
	echo "#define SUPPORT_GENERIC_192COLOR" >> ${SRCDIR}/config.h
endif
ifdef SUPPORT_GENERIC_FULLCOLOR
	echo "#define SUPPORT_GENERIC_FULLCOLOR" >> ${SRCDIR}/config.h
endif
ifdef SUPPORT_GENERIC_TRUECOLOR
	echo "#define SUPPORT_GENERIC_TRUECOLOR" >> ${SRCDIR}/config.h
endif
ifdef SUPPORT_CLIENT
	echo "#define SUPPORT_CLIENT" >> ${SRCDIR}/config.h
endif
ifdef NATIVE_DRAW_ENGINE
	echo "#define NATIVE_DRAW_ENGINE_INITIATOR ${NATIVE_DRAW_ENGINE}_init" >> ${SRCDIR}/config.h
endif
ifdef NATIVE_DRAW_ENGINE1
	echo "#define NATIVE_DRAW_ENGINE_INITIATOR1 ${NATIVE_DRAW_ENGINE1}_init" >> ${SRCDIR}/config.h
endif
ifdef NATIVE_DRAW_ENGINE2
	echo "#define NATIVE_DRAW_ENGINE_INITIATOR2 ${NATIVE_DRAW_ENGINE2}_init" >> ${SRCDIR}/config.h
endif
ifdef NATIVE_DRAW_ENGINE3
	echo "#define NATIVE_DRAW_ENGINE_INITIATOR3 ${NATIVE_DRAW_ENGINE3}_init" >> ${SRCDIR}/config.h
endif
ifdef NATIVE_DRAW_ENGINE4
	echo "#define NATIVE_DRAW_ENGINE_INITIATOR4 ${NATIVE_DRAW_ENGINE4}_init" >> ${SRCDIR}/config.h
endif
ifdef NATIVE_DRAW_ENGINE5
	echo "#define NATIVE_DRAW_ENGINE_INITIATOR5 ${NATIVE_DRAW_ENGINE5}_init" >> ${SRCDIR}/config.h
endif
ifdef NATIVE_DRAW_ENGINE6
	echo "#define NATIVE_DRAW_ENGINE_INITIATOR6 ${NATIVE_DRAW_ENGINE6}_init" >> ${SRCDIR}/config.h
endif
ifdef NATIVE_DRAW_ENGINE7
	echo "#define NATIVE_DRAW_ENGINE_INITIATOR7 ${NATIVE_DRAW_ENGINE7}_init" >> ${SRCDIR}/config.h
endif
ifdef NATIVE_DRAW_ENGINE8
	echo "#define NATIVE_DRAW_ENGINE_INITIATOR8 ${NATIVE_DRAW_ENGINE8}_init" >> ${SRCDIR}/config.h
endif
	echo "#define FONT_ENGINE_INITIATOR		${FONT_ENGINE}_init" >>${SRCDIR}/config.h
ifdef EVENT_MANAGER
	echo "#define EVENT_MANAGER_INITIATOR	${EVENT_MANAGER}_init" >> ${SRCDIR}/config.h
endif
ifdef EVENT_MANAGER_X
	echo "#define EVENT_MANAGER_X_INITIATOR	${EVENT_MANAGER_X}_init" >> ${SRCDIR}/config.h
endif
ifdef USE_LOCAL_MEMSET
	echo "#define USE_LOCAL_MEMSET" >> ${SRCDIR}/config.h
endif
ifdef USE_LOCAL_MEMMOVE
	echo "#define USE_LOCAL_MEMMOVE" >> ${SRCDIR}/config.h
endif
	echo "#include \"mgl_opt.h\"" >> ${SRCDIR}/config.h
ifdef OPTIMIZE_FOR
	echo "#define OPTIMIZE_FOR" ${OPTIMIZE_FOR} >> ${SRCDIR}/config.h
else
	echo "#define OPTIMIZE_FOR" OPTTYPE_ANY >> ${SRCDIR}/config.h
endif
ifdef SUPPORT_X_KEYMOUSE
	echo "#define SUPPORT_X_KEYMOUSE" >> ${SRCDIR}/config.h
endif
ifdef SUPPORT_LINUXFB_CFB2
	echo "#define SUPPORT_LINUXFB_CFB2" >> ${SRCDIR}/config.h
endif
ifdef SUPPORT_LINUXFB_CFB4
	echo "#define SUPPORT_LINUXFB_CFB4" >> ${SRCDIR}/config.h
endif
ifdef SUPPORT_LINUXFB_CFB8
	echo "#define SUPPORT_LINUXFB_CFB8" >> ${SRCDIR}/config.h
endif
ifdef SUPPORT_LINUXFB_CFB16
	echo "#define SUPPORT_LINUXFB_CFB16" >> ${SRCDIR}/config.h
endif
ifdef IM_STATIC
	echo "#define IM_STATIC" >> ${SRCDIR}/config.h
endif
ifdef IM_DYNAMIC
	echo "#define IM_DYNAMIC" >> ${SRCDIR}/config.h
endif
ifdef GP_DYNAMIC
	echo "#define GP_DYNAMIC" >> ${SRCDIR}/config.h
endif

ifdef MGL_MACHINE
	echo "#define MGL_MACHINE ${MGL_MACHINE}" >> ${SRCDIR}/config.h
endif
ifdef MGL_MOUSE
	echo "#define ${MGL_MOUSE}" >> ${SRCDIR}/config.h
else
	echo "#define MGL_NO_MOUSE" >> ${SRCDIR}/config.h
endif

ifdef MGL_RAW_KEYMAP
	echo "#define MGL_RAW_KEYMAP ${MGL_RAW_KEYMAP}" >> ${SRCDIR}/config.h
endif

ifdef VIRTUAL_FRAME_ADDR
	echo "#define VIRTUAL_FRAME_ADDR ${VIRTUAL_FRAME_ADDR}" >> ${SRCDIR}/config.h
endif

ifdef USE_PTMX
	echo "#define USE_PTMX" >> ${SRCDIR}/config.h
endif
ifdef USE_SENDIMAGE
	echo "#define USE_SENDIMAGE" >> ${SRCDIR}/config.h
endif
ifdef NO_PROGNAME
	echo "#define NO_PROGNAME" >> ${SRCDIR}/config.h
endif

depend: config.h dec4rr.c 
	( export CC="${CC}"; ${MAKEDEPEND} ${INCS_X11} ${INCS_CONS} ${SRCS} )

-include .depend
# DO NOT DELETE
