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

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

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

include $(CORE_DEPTH)/coreconf/config.mk

VERSION := $(shell grep NSS_VERSION $(MOZILLA_DIR)/dist/public/nss/nss.h \
		| head -1 \
		| sed -e 's/[^"]*"//' -e 's/".*//' -e 's/ .*//' \
		| cut -d. -f1-3)
Timestamp := $(shell /bin/date +%Y.%m.%d.%H.%M)

# Patches
PATCH_ID=121503
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

NSS_LIB32_DIR = $(MOZILLA_ABS)/dist/$(OBJDIR32)/lib
NSS_LIB64_DIR = $(MOZILLA_ABS)/dist/$(OBJDIR64)/lib
NSS_BIN32_DIR = $(MOZILLA_ABS)/dist/$(OBJDIR32)/bin
NSS_BIN64_DIR = $(MOZILLA_ABS)/dist/$(OBJDIR64)/bin
NSS_INC_DIR = $(MOZILLA_ABS)/dist/public/nss

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

# List of packages to build
PKG_LIST = sun-nss sun-nss-devel sun-nssu
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_FILES = $(addprefix $(PKG_DIR),$(PATCH_LIST))

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

patch: $(BUILD_DIR) $(PKG_DIR) $(PATCH_PSF_LIST) $(PATCH_LIST)
	@echo "NSS 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|#NSS_LIB32_DIR#|$(NSS_LIB32_DIR)|g" \
	  -e "s|#NSS_LIB64_DIR#|$(NSS_LIB64_DIR)|g" \
	  -e "s|#NSS_BIN32_DIR#|$(NSS_BIN32_DIR)|g" \
	  -e "s|#NSS_BIN64_DIR#|$(NSS_BIN64_DIR)|g" \
	  -e "s|#NSS_INC_DIR#|$(NSS_INC_DIR)|g" \
	  -e "s|#NSS_LOC#|$(NSS_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 $@
