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

###################################################################
# Makefile to create packages for NSPR on Windows                 #
###################################################################

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

include $(CORE_DEPTH)/coreconf/config.mk

VERSION := $(shell grep PR_VERSION $(MOZILLA_DIR)/dist/$(OBJDIR)/include/prinit.h \
		| sed -e 's/"$$//' -e 's/.*"//' -e 's/ .*//')
DATESTAMP := $(shell date +"%Y%m%d")

# source directories
ifdef WINDOWS_BUILD
BASE_OBJ = $(WINDOWS_BUILD)
else
BASE_OBJ = $(MOZILLA_ABS)/dist/$(OBJDIR)
endif
NSPR_LIB_DIR = $(BASE_OBJ)/lib
NSPR_INC_DIR = $(BASE_OBJ)/include

# destination directory
BUILD_DIR = ../$(OBJDIR)
PKG_DIR = $(BASE_OBJ)/pkgarchive
LDIR = layout_

# List of packages to build
PKG_NSPR = nspr
PKG_NSPRD = nsprd
PKG_LIST = $(PKG_NSPR) $(PKG_NSPRD)
ZIP_LIST = $(addsuffix .zip,$(PKG_LIST))
PKG_LAYOUT = $(addsuffix .layout,$(PKG_LIST))

# Targets
package: $(BUILD_DIR) $(PKG_DIR) $(ZIP_LIST)
	@echo "Zip file done for $(PKG_LIST)"
	
# Create zip file
%.zip: %.layout
	rm -f $(PKG_DIR)/$@
	cd $(BUILD_DIR)/$(LDIR)$* && \
		find $* -type f | \
		sed "s|\./||g" \
		> filelist.txt
	echo "$(VERSION)-$(DATESTAMP)-1" > $(BUILD_DIR)/$(LDIR)$*/version
	cd $(BUILD_DIR)/$(LDIR)$* && zip -r $(PKG_DIR)/$@ *

# nspr
nspr.layout:
	rm -rf $(BUILD_DIR)/$(LDIR)$(PKG_NSPR)
	mkdir -p $(BUILD_DIR)/$(LDIR)$(PKG_NSPR)/$(PKG_NSPR)/lib
	cp \
	    $(NSPR_LIB_DIR)/libnspr4.dll \
	    $(NSPR_LIB_DIR)/libplc4.dll \
	    $(NSPR_LIB_DIR)/libplds4.dll \
	  $(BUILD_DIR)/$(LDIR)$(PKG_NSPR)/$(PKG_NSPR)/lib
	  
# nsprd
nsprd.layout:
	rm -rf $(BUILD_DIR)/$(LDIR)$(PKG_NSPRD)
	mkdir -p $(BUILD_DIR)/$(LDIR)$(PKG_NSPRD)/$(PKG_NSPRD)/lib
	mkdir -p $(BUILD_DIR)/$(LDIR)$(PKG_NSPRD)/$(PKG_NSPRD)/include
	mkdir -p $(BUILD_DIR)/$(LDIR)$(PKG_NSPRD)/$(PKG_NSPRD)/include/obsolete
	mkdir -p $(BUILD_DIR)/$(LDIR)$(PKG_NSPRD)/$(PKG_NSPRD)/include/private
	cp \
	    $(NSPR_LIB_DIR)/libnspr4.lib \
	    $(NSPR_LIB_DIR)/libplc4.lib \
	    $(NSPR_LIB_DIR)/libplds4.lib \
	  $(BUILD_DIR)/$(LDIR)$(PKG_NSPRD)/$(PKG_NSPRD)/lib
	cp \
	    $(NSPR_INC_DIR)/nspr.h \
	    $(NSPR_INC_DIR)/plarena.h \
	    $(NSPR_INC_DIR)/plarenas.h \
	    $(NSPR_INC_DIR)/plbase64.h \
	    $(NSPR_INC_DIR)/plerror.h \
	    $(NSPR_INC_DIR)/plgetopt.h \
	    $(NSPR_INC_DIR)/plhash.h \
	    $(NSPR_INC_DIR)/plstr.h \
	    $(NSPR_INC_DIR)/pratom.h \
	    $(NSPR_INC_DIR)/prbit.h \
	    $(NSPR_INC_DIR)/prclist.h \
	    $(NSPR_INC_DIR)/prcmon.h \
	    $(NSPR_INC_DIR)/prcountr.h \
	    $(NSPR_INC_DIR)/prcpucfg.h \
	    $(NSPR_INC_DIR)/prcvar.h \
	    $(NSPR_INC_DIR)/prdtoa.h \
	    $(NSPR_INC_DIR)/prenv.h \
	    $(NSPR_INC_DIR)/prerr.h \
	    $(NSPR_INC_DIR)/prerror.h \
	    $(NSPR_INC_DIR)/prinet.h \
	    $(NSPR_INC_DIR)/prinit.h \
	    $(NSPR_INC_DIR)/prinrval.h \
	    $(NSPR_INC_DIR)/prio.h \
	    $(NSPR_INC_DIR)/pripcsem.h \
	    $(NSPR_INC_DIR)/prlink.h \
	    $(NSPR_INC_DIR)/prlock.h \
	    $(NSPR_INC_DIR)/prlog.h \
	    $(NSPR_INC_DIR)/prlong.h \
	    $(NSPR_INC_DIR)/prmem.h \
	    $(NSPR_INC_DIR)/prmon.h \
	    $(NSPR_INC_DIR)/prmwait.h \
	    $(NSPR_INC_DIR)/prnetdb.h \
	    $(NSPR_INC_DIR)/prolock.h \
	    $(NSPR_INC_DIR)/prpdce.h \
	    $(NSPR_INC_DIR)/prprf.h \
	    $(NSPR_INC_DIR)/prproces.h \
	    $(NSPR_INC_DIR)/prrng.h \
	    $(NSPR_INC_DIR)/prrwlock.h \
	    $(NSPR_INC_DIR)/prshm.h \
	    $(NSPR_INC_DIR)/prshma.h \
	    $(NSPR_INC_DIR)/prsystem.h \
	    $(NSPR_INC_DIR)/prthread.h \
	    $(NSPR_INC_DIR)/prtime.h \
	    $(NSPR_INC_DIR)/prtpool.h \
	    $(NSPR_INC_DIR)/prtrace.h \
	    $(NSPR_INC_DIR)/prtypes.h \
	    $(NSPR_INC_DIR)/prvrsion.h \
	    $(NSPR_INC_DIR)/prwin16.h \
	  $(BUILD_DIR)/$(LDIR)$(PKG_NSPRD)/$(PKG_NSPRD)/include
	cp \
	    $(NSPR_INC_DIR)/obsolete/pralarm.h \
	    $(NSPR_INC_DIR)/obsolete/probslet.h \
	    $(NSPR_INC_DIR)/obsolete/protypes.h \
	    $(NSPR_INC_DIR)/obsolete/prsem.h \
	  $(BUILD_DIR)/$(LDIR)$(PKG_NSPRD)/$(PKG_NSPRD)/include/obsolete
	cp \
	    $(NSPR_INC_DIR)/private/pprio.h \
	    $(NSPR_INC_DIR)/private/pprthred.h \
	    $(NSPR_INC_DIR)/private/prpriv.h \
	  $(BUILD_DIR)/$(LDIR)$(PKG_NSPRD)/$(PKG_NSPRD)/include/private

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

