config/Makefile.in
author Wes Kocher <wkocher@mozilla.com>
Thu, 19 Sep 2013 17:56:18 -0700
changeset 162779 1f6d484652904ce39c0145050c9c2a69dffe4d3a
parent 159635 20a4b8ad2107aa23f9aae1aa7e63f03edcd7b0e5
child 164529 c9d0dc574767a9ad61e7b997490d699a040a24df
permissions -rw-r--r--
Backed out 5 changesets (bug 907926, bug 911393, bug 917703) due to OSX reftest bustage during an unrelated CLOSED TREE Backed out changeset 94a6733b01dc (bug 907926) Backed out changeset 44108fb6f7cc (bug 917703) Backed out changeset f2dd2a27af69 (bug 911393) Backed out changeset fdb0d1053128 (bug 907926) Backed out changeset b3616b786e8f (bug 907926)

# -*- Makefile -*-
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

# For sanity's sake, we compile nsinstall without the wrapped system
# headers, so that we can use it to set up the wrapped system headers.
VISIBILITY_FLAGS =

# STDCXX_COMPAT is not needed here, and will actually fail because
# libstdc++-compat is not built yet.
MOZ_LIBSTDCXX_HOST_VERSION =

ifneq (WINNT,$(HOST_OS_ARCH))
HOST_PROGRAM	= nsinstall_real$(HOST_BIN_SUFFIX)
endif

ifndef CROSS_COMPILE
ifdef USE_ELF_DYNSTR_GC
export:: elf-dynstr-gc
endif
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

# Do not install util programs
NO_INSTALL=1

ifneq (WINNT,$(HOST_OS_ARCH))
# Ensure nsinstall is atomically created
nsinstall$(HOST_BIN_SUFFIX): $(HOST_PROGRAM)
	cp $^ $@.tmp
	mv $@.tmp $@

NSINSTALL_FILES := nsinstall$(HOST_BIN_SUFFIX)
NSINSTALL_DEST := $(DIST)/bin
NSINSTALL_TARGET := export
INSTALL_TARGETS += NSINSTALL
endif

HEADERS_FILES = \
	$(DEPTH)/mozilla-config.h \
	$(NULL)
HEADERS_DEST := $(DIST)/include
HEADERS_TARGET := export
INSTALL_TARGETS += HEADERS

PYTHON_UNIT_TESTS := $(wildcard $(srcdir)/tests/unit-*.py)

include $(topsrcdir)/config/rules.mk

HOST_CFLAGS += -DUNICODE -D_UNICODE

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

# Generate a new buildid every time we "export" in config... that's only
# supposed to be once per-build!
export::
ifdef MOZ_BUILD_DATE
	printf "%s" $(MOZ_BUILD_DATE) > buildid
else
	$(PYTHON) $(topsrcdir)/toolkit/xre/make-platformini.py --print-buildid > buildid
endif

ifdef WRAP_SYSTEM_INCLUDES
export-preqs = \
  $(call mkdir_deps,system_wrappers) \
  $(NULL)

export:: $(export-preqs)
	$(PYTHON) $(topsrcdir)/config/Preprocessor.py $(DEFINES) $(ACDEFINES) \
		-DMOZ_TREE_CAIRO=$(MOZ_TREE_CAIRO) \
		-DMOZ_TREE_PIXMAN=$(MOZ_TREE_PIXMAN) \
		-DMOZ_NATIVE_HUNSPELL=$(MOZ_NATIVE_HUNSPELL) \
		-DMOZ_NATIVE_BZ2=$(MOZ_NATIVE_BZ2) \
		-DMOZ_NATIVE_ZLIB=$(MOZ_NATIVE_ZLIB) \
		-DMOZ_NATIVE_PNG=$(MOZ_NATIVE_PNG) \
		-DMOZ_NATIVE_JPEG=$(MOZ_NATIVE_JPEG) \
		-DMOZ_NATIVE_LIBEVENT=$(MOZ_NATIVE_LIBEVENT) \
		-DMOZ_NATIVE_LIBVPX=$(MOZ_NATIVE_LIBVPX) \
		-DMOZ_NATIVE_ICU=$(MOZ_NATIVE_ICU) \
		$(srcdir)/system-headers | $(PERL) $(topsrcdir)/nsprpub/config/make-system-wrappers.pl system_wrappers
	$(INSTALL) system_wrappers $(DIST)

GARBAGE_DIRS += system_wrappers
endif

ifdef WRAP_STL_INCLUDES
ifdef GNU_CXX
stl_compiler = gcc
else
ifdef _MSC_VER
stl_compiler = msvc
endif
endif
endif

ifdef stl_compiler
STL_WRAPPERS_SENTINEL = $(DIST)/stl_wrappers/sentinel

$(STL_WRAPPERS_SENTINEL): $(srcdir)/make-stl-wrappers.py $(srcdir)/$(stl_compiler)-stl-wrapper.template.h $(srcdir)/stl-headers $(GLOBAL_DEPS)
	$(PYTHON) $(srcdir)/make-stl-wrappers.py stl_wrappers $(stl_compiler) $(srcdir)/$(stl_compiler)-stl-wrapper.template.h $(srcdir)/stl-headers
	$(PYTHON) $(srcdir)/nsinstall.py -t stl_wrappers $(DIST)
	touch $(STL_WRAPPERS_SENTINEL)

export:: $(STL_WRAPPERS_SENTINEL)

GARBAGE += $(STL_WRAPPERS_SENTINEL)
GARBAGE_DIRS += stl_wrappers
endif

install::
	$(SYSINSTALL) $(IFLAGS1) $(DEPTH)/mozilla-config.h $(DESTDIR)$(includedir)

GARBAGE += \
  $(FINAL_LINK_COMPS) $(FINAL_LINK_LIBS) $(FINAL_LINK_COMP_NAMES) buildid $(srcdir)/*.pyc *.pyc

ifndef CROSS_COMPILE
ifdef USE_ELF_DYNSTR_GC
elf-dynstr-gc: elf-dynstr-gc.c $(GLOBAL_DEPS) $(call mkdir_deps,$(MDDEPDIR))
	$(CC) $(COMPILE_CFLAGS) $(GLIB_CFLAGS) -o $@ $< $(LDFLAGS) $(GLIB_LIBS)
endif
endif

FORCE:

check-preqs = \
  check-jar-mn \
  check-makefiles \
  $(NULL)

check:: $(check-preqs)

check-jar-mn::
	$(MAKE) -C tests/src-simple check-jar
	$(MAKE) -C tests/src-simple check-flat
	$(MAKE) -C tests/src-simple check-flat USE_EXTENSION_MANIFEST=1
ifneq (,$(filter-out WINNT OS2,$(OS_ARCH)))
	$(MAKE) -C tests/src-simple check-symlink
endif

check-makefiles:
	$(MAKE) -C tests/makefiles/autodeps check