зеркало из https://github.com/mozilla/gecko-dev.git
Let configure deal with nspr and pthreads insteads of client.mk Take patch from
This commit is contained in:
Родитель
dfeca8bd98
Коммит
91a1c59f6e
202
client.mk
202
client.mk
|
@ -21,15 +21,10 @@
|
|||
# or
|
||||
# setenv CVSROOT :pserver:username%somedomain.org@cvs.mozilla.org:/cvsroot
|
||||
#
|
||||
# To checkout and build a new tree,
|
||||
# To checkout and build a tree,
|
||||
# 1. cvs co mozilla/client.mk
|
||||
# 2. cd mozilla
|
||||
# 3. gmake -f client.mk webconfig
|
||||
# (or goto http://cvs-mirror.mozilla.org/webtools/build/config.cgi)
|
||||
# 4. gmake -f client.mk
|
||||
#
|
||||
# To checkout (update) and build an existing tree,
|
||||
# gmake -f client.mk
|
||||
# 3. gmake -f client.mk
|
||||
#
|
||||
# Other targets (gmake -f client.mk [targets...]),
|
||||
# checkout
|
||||
|
@ -37,17 +32,9 @@
|
|||
# realclean (also clobber_all)
|
||||
# clean (also clobber)
|
||||
#
|
||||
# The nspr library is handled as follows,
|
||||
# Read $HOME/.mozconfig (or $(TOPSRCDIR)/mozconfig) and
|
||||
# get the directory specified by --with-nspr.
|
||||
# If the flag is not there, look for nspr in /usr/bin.
|
||||
# Otherwise, build from tip and install in $(OBJDIR)/dist/nspr
|
||||
#
|
||||
# See http://www.mozilla.org/build/unix.html for more information.
|
||||
#
|
||||
# Options:
|
||||
# MOZ_WITH_NSPR - Nspr directory for configure --with-nspr=
|
||||
# MOZ_WITHOUT_PTHREADS - Turn off pthreads for nspr and configure
|
||||
# MOZ_OBJDIR - Destination object directory
|
||||
# also,
|
||||
# MOZ_CO_BRANCH - Branch tag to use for checkout (default: HEAD)
|
||||
|
@ -71,146 +58,85 @@ ifndef MAKE
|
|||
MAKE := gmake
|
||||
endif
|
||||
|
||||
WEBCONFIG_URL := http://cvs-mirror.mozilla.org/webtools/build/config.cgi
|
||||
WEBCONFIG_FILE := $(HOME)/.mozconfig
|
||||
|
||||
CONFIG_GUESS := $(wildcard $(TOPSRCDIR)/build/autoconf/config.guess)
|
||||
ifdef CONFIG_GUESS
|
||||
CONFIG_GUESS := $(shell $(CONFIG_GUESS))
|
||||
else
|
||||
IS_FIRST_CHECKOUT := 1
|
||||
# Check for some file in the tree.
|
||||
ifeq (,$(wildcard $(TOPSRCDIR)/config/Makefile.in))
|
||||
_IS_FIRST_CHECKOUT := 1
|
||||
endif
|
||||
|
||||
#######################################################################
|
||||
# Defines
|
||||
#
|
||||
|
||||
####################################
|
||||
# Load mozconfig Options
|
||||
|
||||
# See build pages, http://www.mozilla.org/build/unix.html,
|
||||
# for how to set up mozconfig.
|
||||
MOZCONFIG2DEFS := build/autoconf/mozconfig2defs.sh
|
||||
run_for_side_effects := \
|
||||
$(shell cd $(TOPSRCDIR); \
|
||||
if test ! -f $(MOZCONFIG2DEFS); then \
|
||||
(cd ..; cvs co mozilla/$(MOZCONFIG2DEFS); ) \
|
||||
else true; \
|
||||
fi; \
|
||||
$(MOZCONFIG2DEFS) .client-defs.mk)
|
||||
include $(TOPSRCDIR)/.client-defs.mk
|
||||
|
||||
|
||||
####################################
|
||||
# OBJDIR
|
||||
|
||||
ifdef MOZ_OBJDIR
|
||||
OBJDIR := $(MOZ_OBJDIR)
|
||||
else
|
||||
# Default objdir, e.g. mozilla/obj-i686-pc-linux-gnu
|
||||
OBJDIR :=
|
||||
ifdef CONFIG_GUESS
|
||||
OBJDIR := $(TOPSRCDIR)
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
####################################
|
||||
# CVS
|
||||
|
||||
# Basic CVS flags
|
||||
ifdef MOZ_CVS_FLAGS
|
||||
CVS_CFLAGS := $(MOZ_CVS_FLAGS)
|
||||
else
|
||||
CVS_CFLAGS := -q -z 3
|
||||
ifndef MOZ_CVS_FLAGS
|
||||
MOZ_CVS_FLAGS := -q -z 3
|
||||
endif
|
||||
|
||||
# Anything that we should use on all checkouts
|
||||
ifdef MOZ_CO_FLAGS
|
||||
CVS_COFLAGS := $(MOZ_CO_FLAGS)
|
||||
CVS_CO_FLAGS := $(MOZ_CO_FLAGS)
|
||||
else
|
||||
CVS_COFLAGS := -P
|
||||
CVS_CO_FLAGS := -P
|
||||
endif
|
||||
|
||||
# The default branch tag
|
||||
# Add the CVS root to CVS_CO_FLAGS if needed
|
||||
CVS_ROOT_IN_TREE := $(shell cat $(TOPSRCDIR)/CVS/Root 2>/dev/null)
|
||||
ifneq ($(MOZ_CVS_ROOT),)
|
||||
ifneq ($(MOZ_CVS_ROOT),$(CVSROOT))
|
||||
MOZ_CVS_FLAGS := $(MOZ_CVS_FLAGS) -d $(CVS_ROOT_IN_TREE)
|
||||
endif
|
||||
endif
|
||||
|
||||
CVSCO := cvs $(MOZ_CVS_FLAGS) co $(CVS_CO_FLAGS)
|
||||
CVSCO_LOGFILE := $(ROOTDIR)/cvsco.log
|
||||
|
||||
####################################
|
||||
# Load mozconfig Options
|
||||
|
||||
# See build pages, http://www.mozilla.org/build/unix.html,
|
||||
# for how to set up mozconfig.
|
||||
MOZCONFIG2DEFS := mozilla/build/autoconf/mozconfig2defs.sh
|
||||
run_for_side_effects := \
|
||||
$(shell cd $(ROOTDIR); \
|
||||
if test ! -f $(MOZCONFIG2DEFS); then \
|
||||
$(CVSCO) mozilla/build/autoconf/find-mozconfig.sh; \
|
||||
$(CVSCO) $(MOZCONFIG2DEFS); \
|
||||
else true; \
|
||||
fi; \
|
||||
$(MOZCONFIG2DEFS) mozilla/.client-defs.mk)
|
||||
include $(TOPSRCDIR)/.client-defs.mk
|
||||
|
||||
####################################
|
||||
# Options that may come from mozconfig
|
||||
|
||||
ifdef MOZ_CO_BRANCH
|
||||
CVS_BRANCH_FLAGS := -r $(MOZ_CO_BRANCH)
|
||||
CVSCO := $(CVSCO) -r $(MOZ_CO_BRANCH)
|
||||
endif
|
||||
|
||||
ifndef MOZ_CO_MODULE
|
||||
MOZ_CO_MODULE := SeaMonkeyEditor
|
||||
endif
|
||||
|
||||
CVS := cvs $(CVS_CFLAGS)
|
||||
CVSCO := $(CVS) co $(CVS_COFLAGS) $(CVS_BRANCH_FLAGS)
|
||||
CVSCO_LOGFILE := $(ROOTDIR)/cvsco.log
|
||||
|
||||
|
||||
####################################
|
||||
# NSPR
|
||||
|
||||
ifneq ($(MOZ_WITHOUT_PTHREADS), 1)
|
||||
NSPR_PTHREAD_FLAG := USE_PTHREADS=1
|
||||
endif
|
||||
|
||||
NSPR_BRANCH :=
|
||||
#NSPR_BRANCH := -rNSPRPUB_RELEASE_3_0
|
||||
|
||||
# These options can be overriden by the user
|
||||
|
||||
ifdef MOZ_WITH_NSPR
|
||||
NSPR_INSTALL_DIR := $(MOZ_WITH_NSPR)
|
||||
NEED_WITH_NSPR := 1
|
||||
ifdef MOZ_OBJDIR
|
||||
OBJDIR := $(MOZ_OBJDIR)
|
||||
else
|
||||
ifneq ("$(wildcard /usr/lib/libnspr3*)","")
|
||||
NSPR_INSTALL_DIR := /usr
|
||||
else
|
||||
NSPR_INSTALL_DIR := $(OBJDIR)/nspr
|
||||
NEED_WITH_NSPR := 1
|
||||
endif
|
||||
OBJDIR := $(TOPSRCDIR)
|
||||
endif
|
||||
|
||||
ifndef NSPR_OPTIONS
|
||||
NSPR_OPTIONS := NS_USE_GCC=1 NS_USE_NATIVE= $(NSPR_PTHREAD_FLAG)
|
||||
endif
|
||||
|
||||
# These options are required to make this makefile build NSPR correctly
|
||||
NSPR_REQ_OPTIONS := MOZILLA_CLIENT=1 NO_MDUPDATE=1
|
||||
NSPR_DIST_OPTION := DIST=$(NSPR_INSTALL_DIR) NSDISTMODE=copy
|
||||
NSPR_TARGET := export
|
||||
|
||||
NSPR_GMAKE_OPTIONS := \
|
||||
$(NSPR_DIST_OPTION) \
|
||||
$(NSPR_REQ_OPTIONS) \
|
||||
$(NSPR_OPTIONS) \
|
||||
$(NSPR_TARGET)
|
||||
|
||||
|
||||
####################################
|
||||
# Autoconf
|
||||
|
||||
CONFIG_FLAGS :=
|
||||
|
||||
ifdef NEED_WITH_NSPR
|
||||
CONFIG_FLAGS += --with-nspr=$(NSPR_INSTALL_DIR)
|
||||
endif
|
||||
|
||||
ifeq "$(origin MOZ_WITHOUT_PTHREADS)" "environment"
|
||||
CONFIG_FLAGS += --without-pthreads
|
||||
endif
|
||||
|
||||
#######################################################################
|
||||
# Rules
|
||||
#
|
||||
|
||||
ifdef IS_FIRST_CHECKOUT
|
||||
ifdef _IS_FIRST_CHECKOUT
|
||||
all: checkout build
|
||||
else
|
||||
all: checkout depend build
|
||||
endif
|
||||
|
||||
.PHONY: checkout nspr depend build clean realclean
|
||||
|
||||
# Windows equivalents
|
||||
pull_all: checkout
|
||||
build_all: build
|
||||
|
@ -241,12 +167,15 @@ checkout:
|
|||
####################################
|
||||
# Web configure
|
||||
|
||||
WEBCONFIG_URL := http://cvs-mirror.mozilla.org/webtools/build/config.cgi
|
||||
WEBCONFIG_FILE := $(HOME)/.mozconfig
|
||||
|
||||
MOZCONFIG2URL := build/autoconf/mozconfig2url.sh
|
||||
webconfig:
|
||||
@url=$(WEBCONFIG_URL); \
|
||||
cd $(TOPSRCDIR); \
|
||||
if test ! -f $(MOZCONFIG2URL); then \
|
||||
(cd ..; cvs co mozilla/$(MOZCONFIG2URL);) \
|
||||
(cd ..; $(CVSCO) mozilla/$(MOZCONFIG2URL);) \
|
||||
else true; \
|
||||
fi; \
|
||||
url=$$url`$(MOZCONFIG2URL)`; \
|
||||
|
@ -263,7 +192,7 @@ webconfig:
|
|||
#####################################################
|
||||
# First Checkout
|
||||
|
||||
ifdef IS_FIRST_CHECKOUT
|
||||
ifdef _IS_FIRST_CHECKOUT
|
||||
# First time, do build target in a new process to pick up new files.
|
||||
build:
|
||||
$(MAKE) -f $(TOPSRCDIR)/client.mk build
|
||||
|
@ -276,6 +205,13 @@ else
|
|||
####################################
|
||||
# Configure
|
||||
|
||||
ALL_TRASH += \
|
||||
$(OBJDIR)/config.cache \
|
||||
$(OBJDIR)/config.log \
|
||||
$(OBJDIR)/config.status \
|
||||
$(OBJDIR)/config-defs.h \
|
||||
$(NULL)
|
||||
|
||||
CONFIG_STATUS := $(wildcard $(OBJDIR)/config.status)
|
||||
CONFIG_CACHE := $(wildcard $(OBJDIR)/config.cache)
|
||||
|
||||
|
@ -294,10 +230,8 @@ endif
|
|||
$(OBJDIR)/Makefile: $(TOPSRCDIR)/configure $(TOPSRCDIR)/allmakefiles.sh $(TOPSRCDIR)/.client-defs.mk
|
||||
@if test ! -d $(OBJDIR); then $(MKDIR) $(OBJDIR); else true; fi
|
||||
@echo cd $(OBJDIR);
|
||||
@echo LD_LIBRARY_PATH=$(NSPR_INSTALL_DIR)/lib:$(LD_LIBRARY_PATH) \\
|
||||
@echo ../configure $(CONFIG_FLAGS)
|
||||
@echo ../configure
|
||||
@cd $(OBJDIR) && \
|
||||
LD_LIBRARY_PATH=$(NSPR_INSTALL_DIR)/lib:$(LD_LIBRARY_PATH) \
|
||||
$(TOPSRCDIR)/configure $(CONFIG_FLAGS) \
|
||||
|| echo Fix above errors and then restart with \"$(MAKE) -f client.mk build\"
|
||||
|
||||
|
@ -308,22 +242,6 @@ $(OBJDIR)/config/autoconf.mk: $(TOPSRCDIR)/config/autoconf.mk.in
|
|||
endif
|
||||
|
||||
|
||||
####################################
|
||||
# NSPR
|
||||
|
||||
# Build & install nspr. Classic build, no autoconf.
|
||||
# Linux/RPM available.
|
||||
nspr: $(NSPR_INSTALL_DIR)/lib/libnspr3.so
|
||||
@echo NSPR is installed in $(NSPR_INSTALL_DIR)/lib objdir=$(OBJDIR)
|
||||
|
||||
$(NSPR_INSTALL_DIR)/lib/libnspr3.so:
|
||||
@-$(MKDIR) -p $(NSPR_INSTALL_DIR)
|
||||
($(MAKE) -C $(TOPSRCDIR)/nsprpub $(NSPR_GMAKE_OPTIONS))
|
||||
|
||||
# NSPR is pulled by SeaMonkeyEditor module
|
||||
# cd $(ROOTDIR) && $(CVSCO) $(NSPR_BRANCH) NSPR
|
||||
|
||||
|
||||
####################################
|
||||
# Depend
|
||||
|
||||
|
@ -345,7 +263,11 @@ build: nspr $(OBJDIR)/Makefile
|
|||
|
||||
# Pass these target onto the real build system
|
||||
clean realclean:
|
||||
cd $(OBJDIR); $(MAKE) $@;
|
||||
cd $(OBJDIR); $(MAKE) $@
|
||||
rm -fr $(ALL_TRASH)
|
||||
|
||||
# (! IS_FIRST_CHECKOUT)
|
||||
endif
|
||||
|
||||
.PHONY: checkout nspr depend build clean realclean
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче