#
# The contents of this file are subject to the Netscape Public
# License Version 1.1 (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.mozilla.org/NPL/
#
# Software distributed under the License is distributed on an "AS
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
# implied. See the License for the specific language governing
# rights and limitations under the License.
#
# The Original Code is mozilla.org code.
#
# The Initial Developer of the Original Code is Netscape
# Communications Corporation.  Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All
# Rights Reserved.
#
# Contributor(s): 
#

DEPTH		= ..
topsrcdir	= @top_srcdir@
srcdir		= @srcdir@
VPATH		= @srcdir@

include $(DEPTH)/config/autoconf.mk

ifneq ($(OS_ARCH),WINNT)
ifdef CROSS_COMPILE
HOST_PROGRAM	= nsinstall$(BIN_SUFFIX)
else
PROGRAM		= nsinstall$(BIN_SUFFIX)
endif
endif

PLSRCS		= nfspwd.pl revdepth.pl
ifdef CROSS_COMPILE
HOST_CSRCS	= nsinstall.c pathsub.c
else
CSRCS		= nsinstall.c pathsub.c
endif

TARGETS		= $(HOST_PROGRAM) $(PROGRAM) $(PLSRCS:.pl=)

# Generate the build number on the fly.
TARGETS		+= build_number nsBuildID.h

ifdef USE_ELF_DYNSTR_GC
TARGETS		+= elf-dynstr-gc
endif

# IMPORTANT: Disable NSBUILDROOT for this directory only, otherwise we have
# a recursive rule for finding nsinstall and the Perl scripts.
ifdef NSBUILDROOT
override NSBUILDROOT :=
endif

ifdef GNU_CC
MODULE_OPTIMIZE_FLAGS = -O3
endif

include $(topsrcdir)/config/config.mk
include $(topsrcdir)/config/rules.mk

ifeq ($(OS_ARCH), Linux)
DEFINES         += -D_BSD_SOURCE
endif

ifeq ($(MOZ_OS2_TOOLS),VACPP)
LOCAL_INCLUDES	+= -I$(srcdir)/os2
HSRCS		+= dirent.h
endif

ifeq ($(OS_CONFIG),SunOS4.1)
NSPR_CFLAGS	+= -I$(srcdir)/../nsprpub/pr/include/md
endif

HEADERS		= nsBuildID.h
ifeq ($(MOZ_OS2_TOOLS),VACPP)
HEADERS		+= $(srcdir)/os2/dirent.h
endif

export:: $(TARGETS) $(HEADERS)
	$(INSTALL) -m 444 $(HEADERS) $(DIST)/include
	$(PERL) -I$(MOZILLA_DIR)/config $(MOZILLA_DIR)/config/build-list.pl $(PUBLIC)/.headerlist $(HEADERS)
	-rm -f $(FINAL_LINK_COMPS) $(FINAL_LINK_LIBS) $(FINAL_LINK_COMP_NAMES)
	-rm -f $(DIST)/bin/chrome/chromelist.txt

GARBAGE += build_number nsBuildID \
	$(FINAL_LINK_COMPS) $(FINAL_LINK_LIBS) $(FINAL_LINK_COMP_NAMES)

ifneq ($(origin BUILD_OFFICIAL)_$(origin MOZILLA_OFFICIAL),undefined_undefined)
_BN_OFFICIAL=1
else
_BN_OFFICIAL=
endif

build_number: FORCE
	$(PERL) -I$(srcdir) $(srcdir)/bdate.pl $@ $(_BN_OFFICIAL)

nsBuildID.h: nsBuildID.h.in build_number 
	$(RM) $@
	$(PERL) -I$(srcdir) $(srcdir)/aboutime.pl $@ build_number $<

elf-dynstr-gc: elf-dynstr-gc.c Makefile Makefile.in
	$(CC) $(COMPILE_CFLAGS) $(GLIB_CFLAGS) $(GLIB_LIBS) $(LDFLAGS) -o $@ $<

ifdef USE_ELF_DYNSTR_GC
export:: elf-dynstr-gc
	$(INSTALL) -m 555 elf-dynstr-gc $(DIST)/bin
endif

FORCE:

ifdef MKDEPEND_DIR
clean clobber realclean clobber_all::
	cd $(MKDEPEND_DIR); $(MAKE) $@
endif


