#
# The contents of this file are subject to the terms 
# of the Common Development and Distribution License 
# (the License).  You may not use this file except in
# compliance with the License.
# 
# You can obtain a copy of the license at 
# https://glassfish.dev.java.net/public/CDDLv1.0.html or
# glassfish/bootstrap/legal/CDDLv1.0.txt.
# See the License for the specific language governing 
# permissions and limitations under the License.
# 
# When distributing Covered Code, include this CDDL 
# Header Notice in each file and include the License file 
# at glassfish/bootstrap/legal/CDDLv1.0.txt.  
# If applicable, add the following below the CDDL Header, 
# with the fields enclosed by brackets [] replaced by
# you own identifying information: 
# "Portions Copyrighted [year] [name of copyright owner]"
# 
# Copyright 2006 Sun Microsystems, Inc. All rights reserved.
#

# User customizable variable definitions only

# The BUILD_ROOT variable must be defined
BUILD_ROOT=.
# include bootstrap variable definitions
include $(GLASSFISH_MAVEN)/make/defines.mk
include $(BUILD_ROOT)/make/defines.mk
include $(BUILD_ROOT)/project.properties

# User customizable rules
ifeq ($(OS_ARCH), SunOS)

SOLARIS_DIR=src/cpp/solaris
SYSLOG_DIR=src/cpp/as8syslog
CLI_DIR=src/cpp/cli
LAUNCHER_DIR=src/cpp/launcher

post_build:: build_all publish_solaris publish_syslog publish_cli publish_cli_glassfish publish_launcher publish_launcher_glassfish

build_all::
	$(JAVA_HOME)/bin/java -d64 -version 1>&2 2> /dev/null; \
	if [ $$? = 0 ] ; \
	then \
	$(STD_GMAKE_CMD) COMPILE64=true ; \
	fi ;
	$(STD_GMAKE_CMD)

publish_solaris::
	$(AT)if test -d $(BUILD_ROOT)/$(SOLARIS_DIR)/build; then \
		if test -d $(PUBLISH_ROOT)/$(HOST_OBJDIR)/$(COMPONENT_NAME); then \
			$(CP) -R $(BUILD_ROOT)/$(SOLARIS_DIR)/build/* $(PUBLISH_ROOT)/$(HOST_OBJDIR)/$(COMPONENT_NAME); \
		else \
			$(ECHO) "Creating ... $(PUBLISH_ROOT)/$(HOST_OBJDIR)/$(COMPONENT_NAME)"; \
			$(MKDIR) -p $(PUBLISH_ROOT)/$(HOST_OBJDIR)/$(COMPONENT_NAME); \
			$(ECHO) "Copy ... $(BUILD_ROOT)/$(SOLARIS_DIR)/build/*"; \
			$(CP) -R $(BUILD_ROOT)/$(SOLARIS_DIR)/build/* $(PUBLISH_ROOT)/$(HOST_OBJDIR)/$(COMPONENT_NAME); \
		fi; \
		$(ECHO) "Copy *.so to $(GLASSFISH_HOME)/lib"; \
		$(CP) $(PUBLISH_ROOT)/$(HOST_OBJDIR)/$(COMPONENT_NAME)/*.so $(GLASSFISH_HOME)/lib; \
		if test -d $(PUBLISH_ROOT)/$(HOST_OBJDIR)/$(COMPONENT_NAME)/$(OBJDIR64); then \
			$(CP) $(PUBLISH_ROOT)/$(HOST_OBJDIR)/$(COMPONENT_NAME)/$(OBJDIR64)/*.so $(GLASSFISH_HOME)/lib/$(OBJDIR64); \
		fi ; \
	fi
	echo OBJDIR64 : $(OBJDIR64)


publish_syslog::
	$(AT)if test -d $(BUILD_ROOT)/$(SYSLOG_DIR)/build; then \
		if test -d $(PUBLISH_ROOT)/$(HOST_OBJDIR)/$(COMPONENT_NAME); then \
			$(CP) -R $(BUILD_ROOT)/$(SYSLOG_DIR)/build/* $(PUBLISH_ROOT)/$(HOST_OBJDIR)/$(COMPONENT_NAME); \
		else \
			$(ECHO) "Creating ... $(PUBLISH_ROOT)/$(HOST_OBJDIR)/$(COMPONENT_NAME)"; \
			$(MKDIR) $(PUBLISH_ROOT)/$(HOST_OBJDIR)/$(COMPONENT_NAME); \
			$(CP) -R $(BUILD_ROOT)/$(SYSLOG_DIR)/build/* $(PUBLISH_ROOT)/$(HOST_OBJDIR)/$(COMPONENT_NAME); \
		fi; \
		$(ECHO) "Copy *.so to $(GLASSFISH_HOME)/lib"; \
		$(CP) $(PUBLISH_ROOT)/$(HOST_OBJDIR)/$(COMPONENT_NAME)/*.so $(GLASSFISH_HOME)/lib; \
		if test -d $(PUBLISH_ROOT)/$(HOST_OBJDIR)/$(COMPONENT_NAME)/$(OBJDIR64); then \
			$(CP) $(PUBLISH_ROOT)/$(HOST_OBJDIR)/$(COMPONENT_NAME)/$(OBJDIR64)/*.so $(GLASSFISH_HOME)/lib/$(OBJDIR64); \
		fi ; \
	fi
endif # ifeq SunOS


ifeq ($(OS_ARCH), WINNT)
CLI_DIR=src/cpp/cli
LAUNCHER_DIR=src/cpp/launcher

post_build:: build_cli publish_cli publish_cli_win_glassfish publish_launcher publish_launcher_win_glassfish
build_cli::
	$(STD_GMAKE_CMD)
endif #ifeq Windows_NT

ifeq ($(OS_ARCH), Darwin)
CLI_DIR=src/cpp/cli
LAUNCHER_DIR=src/cpp/launcher

post_build:: build_cli publish_cli publish_cli_darwin_glassfish publish_launcher publish_launcher_glassfish
build_cli::
	$(STD_GMAKE_CMD)
endif #ifeq Darwin

ifeq ($(OS_ARCH), Linux)
SYSLOG_DIR=src/cpp/as8syslog
CLI_DIR=src/cpp/cli
LAUNCHER_DIR=src/cpp/launcher

post_build:: build_syslog_cli publish_syslog publish_cli publish_cli_glassfish publish_launcher publish_launcher_glassfish
build_syslog_cli::
	$(STD_GMAKE_CMD)
publish_syslog::
	$(AT)if test -d $(BUILD_ROOT)/$(SYSLOG_DIR)/build; then \
	if test -d $(PUBLISH_ROOT)/$(HOST_OBJDIR)/$(COMPONENT_NAME); then \
		$(CP) -R $(BUILD_ROOT)/$(SYSLOG_DIR)/build/* $(PUBLISH_ROOT)/$(HOST_OBJDIR)/$(COMPONENT_NAME); \
	else \
		$(ECHO) "Creating ... $(PUBLISH_ROOT)/$(HOST_OBJDIR)/$(COMPONENT_NAME)"; \
		$(MKDIR) -p $(PUBLISH_ROOT)/$(HOST_OBJDIR)/$(COMPONENT_NAME); \
		$(CP) -R $(BUILD_ROOT)/$(SYSLOG_DIR)/build/* $(PUBLISH_ROOT)/$(HOST_OBJDIR)/$(COMPONENT_NAME); \
		fi; \
	fi
endif #ifeq Linux


publish_cli::
	$(AT)if test -d $(BUILD_ROOT)/$(CLI_DIR)/build; then \
		if test -d $(PUBLISH_ROOT)/$(HOST_OBJDIR)/$(COMPONENT_NAME); then \
			$(CP) -R $(BUILD_ROOT)/$(CLI_DIR)/build/* $(PUBLISH_ROOT)/$(HOST_OBJDIR)/$(COMPONENT_NAME); \
		else \
			$(ECHO) "Creating ... $(PUBLISH_ROOT)/$(HOST_OBJDIR)/$(COMPONENT_NAME)"; \
			$(MKDIR) -p $(PUBLISH_ROOT)/$(HOST_OBJDIR)/$(COMPONENT_NAME); \
			$(CP) -R $(BUILD_ROOT)/$(CLI_DIR)/build/* $(PUBLISH_ROOT)/$(HOST_OBJDIR)/$(COMPONENT_NAME); \
		fi; \
	fi


publish_cli_win_glassfish::
	$(ECHO) "Copy  *.dll to $(GLASSFISH_HOME)/lib"; \
	$(CP) $(PUBLISH_ROOT)/$(HOST_OBJDIR)/$(COMPONENT_NAME)/*.dll $(GLASSFISH_HOME)/lib;

publish_cli_darwin_glassfish::
	$(ECHO) "Copy  *.jnilib to $(GLASSFISH_HOME)/lib"; \
	$(CP) $(PUBLISH_ROOT)/$(HOST_OBJDIR)/$(COMPONENT_NAME)/*.jnilib $(GLASSFISH_HOME)/lib; 

publish_cli_glassfish::
	$(ECHO) "Copy  *.so to $(GLASSFISH_HOME)/lib"; \
	$(CP) $(PUBLISH_ROOT)/$(HOST_OBJDIR)/$(COMPONENT_NAME)/*.so $(GLASSFISH_HOME)/lib;
	if test -d $(PUBLISH_ROOT)/$(HOST_OBJDIR)/$(COMPONENT_NAME)/$(OBJDIR64); then \
		$(CP) $(PUBLISH_ROOT)/$(HOST_OBJDIR)/$(COMPONENT_NAME)/$(OBJDIR64)/*.so $(GLASSFISH_HOME)/lib/$(OBJDIR64); \
	fi ; \

publish_launcher::
	$(AT)if test -d $(BUILD_ROOT)/$(LAUNCHER_DIR)/build; then \
		if test -d $(PUBLISH_ROOT)/$(HOST_OBJDIR)/$(COMPONENT_NAME); then \
			$(CP) -R $(BUILD_ROOT)/$(LAUNCHER_DIR)/build/* $(PUBLISH_ROOT)/$(HOST_OBJDIR)/$(COMPONENT_NAME); \
		else \
			$(ECHO) "Creating ... $(PUBLISH_ROOT)/$(HOST_OBJDIR)/$(COMPONENT_NAME)"; \
			$(MKDIR) -p $(PUBLISH_ROOT)/$(HOST_OBJDIR)/$(COMPONENT_NAME); \
			$(CP) -R $(BUILD_ROOT)/$(LAUNCHER_DIR)/build/* $(PUBLISH_ROOT)/$(HOST_OBJDIR)/$(COMPONENT_NAME); \
		fi; \
	fi

publish_launcher_glassfish:
	$(AT)if test -d $(PUBLISH_ROOT)/$(HOST_OBJDIR)/$(COMPONENT_NAME); then \
		$(ECHO) "Copy appserv* to $(GLASSFISH_HOME)/lib"; \
		$(CP) $(PUBLISH_ROOT)/$(HOST_OBJDIR)/$(COMPONENT_NAME)/appserv $(GLASSFISH_HOME)/lib; \
		$(CP) $(PUBLISH_ROOT)/$(HOST_OBJDIR)/$(COMPONENT_NAME)/appservLauncher $(GLASSFISH_HOME)/lib; \
		if test -d $(PUBLISH_ROOT)/$(HOST_OBJDIR)/$(COMPONENT_NAME)/$(OBJDIR64); then \
			$(CP) $(PUBLISH_ROOT)/$(HOST_OBJDIR)/$(COMPONENT_NAME)/$(OBJDIR64)/appserv $(GLASSFISH_HOME)/lib/$(OBJDIR64); \
			$(CP) $(PUBLISH_ROOT)/$(HOST_OBJDIR)/$(COMPONENT_NAME)/$(OBJDIR64)/appservLauncher $(GLASSFISH_HOME)/lib/$(OBJDIR64); \
		fi ; \
	fi

publish_launcher_win_glassfish:
	$(AT)if test -d $(PUBLISH_ROOT)/$(HOST_OBJDIR)/$(COMPONENT_NAME); then \
		$(ECHO) "Copy appserv* to $(GLASSFISH_HOME)/lib"; \
		$(CP) $(PUBLISH_ROOT)/$(HOST_OBJDIR)/$(COMPONENT_NAME)/appserv.exe $(GLASSFISH_HOME)/lib; \
		$(CP) $(PUBLISH_ROOT)/$(HOST_OBJDIR)/$(COMPONENT_NAME)/appservLauncher.exe $(GLASSFISH_HOME)/lib; \
		$(CP) $(PUBLISH_ROOT)/$(HOST_OBJDIR)/$(COMPONENT_NAME)/appservService.exe $(GLASSFISH_HOME)/lib; \
	fi
