#
# Copyright 2006 Sun Microsystems, Inc. All Rights Reserved
# Patents Pending.Use is subject to license terms.
#

###################################################################
# Makefile to create packages and patches for JSS on HP-UX        #
###################################################################

MOZILLA_DIR = ../../../..
MOZILLA_ABS := $(shell cd $(MOZILLA_DIR);pwd)
CORE_DEPTH = $(MOZILLA_DIR)/jss

include $(CORE_DEPTH)/coreconf/config.mk

VERSION := $(shell grep JSS_VERSION $(CORE_DEPTH)/org/mozilla/jss/util/jssver.h \
		| sed -e 's/"$$//' -e 's/.*"//' -e 's/ .*//')
Timestamp := $(shell /bin/date +%Y.%m.%d.%H.%M)

# Patches
PATCH_ID=121506
ifndef PATCH_REV
PATCH_REV=01
endif
PATCH_NAME=$(PATCH_ID)-$(PATCH_REV)

# source directories

ifeq ($(USE_64), 1)
        OBJDIR64 = $(OBJDIR)
        OBJDIR32 = $(shell echo $(OBJDIR) | sed -e "s|_64_OPT|_OPT|g" -e "s|_64_DBG|_DBG|g")
else
        OBJDIR32 = $(OBJDIR)
        OBJDIR64 = $(shell echo $(OBJDIR) | sed -e "s|_OPT|_64_OPT|g" -e "s|_DBG|_64_DBG|g")
endif

JSS_LIB32_DIR = $(MOZILLA_ABS)/dist/$(OBJDIR32)/lib
JSS_LIB64_DIR = $(MOZILLA_ABS)/dist/$(OBJDIR64)/lib
JSS_JAR_DIR = $(MOZILLA_ABS)/dist/release/no-policy/classes

# destination directory
BUILD_DIR = ../$(OBJDIR)
PKG_DIR = $(MOZILLA_ABS)/dist/$(OBJDIR)/pkgarchive
JSS_LOC = /opt/sun/private

# List of packages to build
PKG_LIST = sun-jss
PSF_LIST = $(addsuffix .psf,$(PKG_LIST))
PSF_FILES = $(addprefix $(BUILD_DIR),$(PSF_LIST))
DEPOT_FILES = $(addprefix $(PKG_DIR),$(PKG_LIST))

# List of patches to build
PATCH_LIST = $(PATCH_NAME)
PATCH_PSF_LIST = $(addsuffix .psf,$(PATCH_NAME))
PATCH_PSF_FILES = = $(addprefix $(BUILD_DIR),$(PATCH_PSF_LIST))
PATCH_DEPOT_LIST = $(addsuffix .depot,$(PATCH_LIST))
PATCH_DEPOT_FILES = $(addprefix $(PKG_DIR),$(PATCH_LIST))

# Targets
package: $(BUILD_DIR) $(PKG_DIR) $(PSF_LIST) $(PKG_LIST)
	@echo "JSS packages done."

patch: $(BUILD_DIR) $(PKG_DIR) $(PATCH_PSF_LIST) $(PATCH_LIST)
	@echo "JSS patch done."

# PSF files from templates
%: %.tmpl $(BUILD_DIR)
	@echo "Create psf From $< to $@"
	sed \
	  -e "s/#NUMBER#/$(Timestamp)/g" \
	  -e "s/#VERSION#/$(VERSION)/g" \
	  -e "s/#PATCH_REV#/$(PATCH_REV)/g" \
	  -e "s|#JSS_LIB32_DIR#|$(JSS_LIB32_DIR)|g" \
	  -e "s|#JSS_LIB64_DIR#|$(JSS_LIB64_DIR)|g" \
	  -e "s|#JSS_JAR_DIR#|$(JSS_JAR_DIR)|g" \
	  -e "s|#JSS_LOC#|$(JSS_LOC)|g" \
	$< > $(BUILD_DIR)/$@

# depotDirectory:
%: %.psf $(PKG_DIR)
# Start a fresh depot directory
	- [ -e $(PKG_DIR)/$@ ] && rm -rf $(PKG_DIR)/$@
	mkdir -p $(PKG_DIR)/$@
	@echo "Create depot directory from $< to $@"
	swpackage \
	  -x enforce_dsa=false \
	  -x follow_symlinks=true \
	  -x compression_type=gzip \
	  -x compress_cmd=/usr/contrib/bin/gzip \
	  -x uncompress_files=false \
	  -x compress_files=true  \
	  -x reinstall_files=true \
	  -x package_in_place=false \
	  -x target_type=directory  \
	  -x write_remote_files=true \
	  -x run_as_superuser=false \
	  -s $(BUILD_DIR)/$< @ $(PKG_DIR)/$@

# mkdir targets
$(PKG_DIR) $(BUILD_DIR):
	mkdir -p $@
