#
# Copyright 1999-2004 The Apache Software Foundation.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

# Output directory
OUTDIR := ../../..

INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@

include $(XALANCROOT)/version.incl
include ../../../Makefile.incl


## ----------------------------------------------------------------------------

XSL_NLS_SRC_DIR=$(XALANCROOT)/src/xalanc/NLS

MSGFILENAME=XalanMsg_

CATALOG_NAME=$(MSGFILENAME)$(LOCALE)

ifeq ($(PLATFORM), CYGWIN)
XLIFF_FILE_NAME=$(shell cygpath -m $(XSL_NLS_SRC_DIR)/$(LOCALE)/$(MSGFILENAME)$(LOCALE).xlf)
else
XLIFF_FILE_NAME=$(XSL_NLS_SRC_DIR)/$(LOCALE)/$(MSGFILENAME)$(LOCALE).xlf
endif

MOVE= mv
COPY=cp



INCLUDE_DIR = $(XALANCROOT)/src/xalanc/Include

.PHONY: locale doClean prepare install doCommonInstall doCommonPrepare


	
	
##=================== End of Common for all localization systems area =====
## ----------------------------------------------------------------------------
ifeq ($(MESSAGELOADER),inmem)



locale: $(MESSAGELIB)

$(MESSAGELIB): $(XSL_NLS_DIR)/include/LocalMsgData.hpp
	$(MAKE) -C XalanMsgLib 
ifeq ($(PLATFORM), OS390)
ifneq (${OS390BATCH},1)
	@$(MOVE) XalanMsgLib/*.x ../../../lib
endif
endif

$(XSL_NLS_DIR)/include/LocalMsgData.hpp : $(XSL_BIN_DIR)/MsgCreator $(XLIFF_FILE_NAME)
	$(XSL_BIN_DIR)/MsgCreator $(XLIFF_FILE_NAME) -TYPE $(MESSAGELOADER) -LOCALE $(LOCALE)
	@$(MOVE) LocalMsgIndex.hpp $(XSL_NLS_DIR)/include
	@$(MOVE) LocalMsgData.hpp  $(XSL_NLS_DIR)/include		

install: doCommonInstall
	$(MAKE) -C XalanMsgLib $@



prepare: doCommonPrepare
	
	
endif  # end of ($(MESSAGELOADER),inmem))

## ----------------------------------------------------------------------------

ifeq ($(MESSAGELOADER),icu)
##=============================== Specific for ICU variables ================================

GENRB    = $(ICUROOT)/bin/genrb

PKGDATA  = $(ICUROOT)/bin/pkgdata



##=============================== End of Specific for ICU variables ================================

locale:  $(XSL_NLS_DIR)/icu/$(LOCALE).txt $(MESSAGELIB)

$(MESSAGELIB) : $(XSL_NLS_DIR)/icu/$(LOCALE).txt
	$(GENRB) -p $(LOC_PROJECT_NAME) -d $(XSL_NLS_DIR)/icu -i $(XSL_NLS_DIR)/icu $(XSL_NLS_DIR)/icu/$(LOCALE).txt
	echo $(XSL_NLS_DIR)/icu/$(LOC_PROJECT_NAME)_$(LOCALE).res > $(XSL_NLS_DIR)/icu/res-file-list.txt
	$(PKGDATA) --name $(LOC_PROJECT_NAME) -T $(XSL_NLS_DIR)/icu -v -O $(ICUROOT)/lib/icu/Makefile.inc  --mode dll -d $(XSL_LIB_DIR) $(XSL_NLS_DIR)/icu/res-file-list.txt -M "prefix=$(ICUROOT) TARGET=$(LOC_LIB)"   
	$(LN) -fs $(LOC_LIB) $(XSL_LIB_DIR)/$(LOC_LIBNAME)$(SHLIBSUFFIX)
ifeq ($(PLATFORM), AIX)
	$(LN) -fs $(LOC_LIB) $(XSL_LIB_DIR)/$(LOC_LIBNAME)$(LIB_MAJOR_VER)$(SHLIBSUFFIX)
else	
	$(LN) -fs $(LOC_LIB) $(XSL_LIB_DIR)/$(LOC_LIBNAME)$(SHLIBSUFFIX).$(LIB_MAJOR_VER)
endif ## AIX

$(XSL_NLS_DIR)/icu/$(LOCALE).txt : $(XLIFF_FILE_NAME) $(XSL_BIN_DIR)/MsgCreator
	$(XSL_BIN_DIR)/MsgCreator $(XLIFF_FILE_NAME) -TYPE $(MESSAGELOADER) -LOCALE $(LOCALE)
	$(MOVE) LocalMsgIndex.hpp $(XSL_NLS_DIR)/include
	$(MOVE) $(LOCALE).txt $(XSL_NLS_DIR)/icu
	
prepare: doCommonPrepare
	-${MKDIR} -p $(XSL_NLS_DIR)/icu

install: doCommonInstall
	$(MKINSTALLDIRS) $(DESTDIR)/$(libdir)
	$(INSTALL_PROGRAM) $(XSL_LIB_DIR)/$(LOC_LIB) $(DESTDIR)/$(libdir)
ifneq ($(PLATFORM), OS390)
	$(LN) -fs $(LOC_LIB) $(DESTDIR)/$(libdir)/$(LOC_LIBNAME)$(SHLIBSUFFIX)
ifeq ($(PLATFORM), AIX)
	$(LN) -fs $(LOC_LIB) $(DESTDIR)/$(libdir)/$(LOC_LIBNAME)$(LIB_MAJOR_VER)$(SHLIBSUFFIX)
else	
	$(LN) -fs $(LOC_LIB) $(DESTDIR)/$(libdir)/$(LOC_LIBNAME)$(SHLIBSUFFIX).$(LIB_MAJOR_VER)
endif ## AIX	

endif ## OS390

	
endif # end of ($(MESSAGELOADER),icu)

##=============================== NLS SYSTEM =====================================================
ifeq ($(MESSAGELOADER),nls)


locale:  $(XSL_NLS_DIR)/$(LOCALE)/$(CATALOG_NAME).cat 

$(XSL_NLS_DIR)/$(LOCALE)/$(CATALOG_NAME).cat : $(XLIFF_FILE_NAME) $(XSL_BIN_DIR)/MsgCreator
	$(XSL_BIN_DIR)/MsgCreator $(XLIFF_FILE_NAME) -TYPE $(MESSAGELOADER) -LOCALE $(LOCALE)
	$(MOVE) LocalMsgIndex.hpp $(XSL_NLS_DIR)/include
	$(MOVE) $(CATALOG_NAME).msg $(XSL_NLS_DIR)/nls
	-rm -f $(CATALOG_NAME).cat
	gencat  $(CATALOG_NAME).cat $(XSL_NLS_DIR)/nls/$(CATALOG_NAME).msg
	$(MOVE)	$(CATALOG_NAME).cat $(XSL_NLS_DIR)/nls
	
install: doCommonInstall
	$(MKINSTALLDIRS) $(DESTDIR)/$(libdir)
	$(MKINSTALLDIRS) $(DESTDIR)/$(libdir)/nls
	$(MKINSTALLDIRS) $(DESTDIR)/$(libdir)/nls/msg
	$(MKINSTALLDIRS) $(DESTDIR)/$(libdir)/nls/msg/$(LOCALE)
	$(COPY) $(XSL_NLS_DIR)/nls/$(CATALOG_NAME).cat $(DESTDIR)/$(libdir)/nls/msg/$(LOCALE)	
	
prepare: doCommonPrepare
	-${MKDIR} -p $(XSL_NLS_DIR)/nls
endif
##=============================== END OF NLS SYSTEM ==================================================


##=================== Common for all localization systems area ============

$(XSL_BIN_DIR)/MsgCreator:
	$(MAKE) -C MsgCreator 



doCommonPrepare:
	-${MKDIR} -p $(XSL_NLS_DIR)
	-${MKDIR} -p $(XSL_NLS_DIR)/include

doCommonInstall:
	$(INSTALL_DATA) $(XSL_NLS_DIR)/include/LocalMsgIndex.hpp $(XALANCROOT)/src/xalanc/PlatformSupport

doClean:
	$(MAKE) -C XalanMsgLib $@
	$(MAKE) -C MsgCreator $@
	rm -f	$(XSL_NLS_DIR)/nls/*
	rm -f   $(XSL_NLS_DIR)/icu/*
	rm -f	$(XSL_LIB_DIR)/$(LOC_LIBNAME)*
	rm -f   $(XSL_NLS_DIR)/include/LocalMsgData.hpp
	rm -f 	$(XSL_NLS_DIR)/include/LocalMsgIndex.hpp
	rm -f   $(MESSAGELIB)
	
	

