зеркало из https://github.com/mozilla/gecko-dev.git
Merge bug 97954 (autoconf build environment for SpiderMonkey).
--HG-- rename : configure.in => js/src/configure.in
This commit is contained in:
Коммит
0617949df9
|
@ -26,3 +26,6 @@
|
|||
_DBG\.OBJ/
|
||||
_OPT\.OBJ/
|
||||
|
||||
# SpiderMonkey configury
|
||||
^js/src/configure$
|
||||
^js/src/autom4te.cache$
|
||||
|
|
|
@ -169,6 +169,7 @@ endif # MOZ_BUILD_PROJECTS
|
|||
# 'configure' scripts generated by autoconf.
|
||||
CONFIGURES := $(TOPSRCDIR)/configure
|
||||
CONFIGURES += $(TOPSRCDIR)/nsprpub/configure
|
||||
CONFIGURES += $(TOPSRCDIR)/js/src/configure
|
||||
|
||||
#######################################################################
|
||||
# Rules
|
||||
|
@ -277,6 +278,7 @@ ifdef RUN_AUTOCONF_LOCALLY
|
|||
EXTRA_CONFIG_DEPS := \
|
||||
$(TOPSRCDIR)/aclocal.m4 \
|
||||
$(wildcard $(TOPSRCDIR)/build/autoconf/*.m4) \
|
||||
$(TOPSRCDIR)/js/src/aclocal.m4 \
|
||||
$(NULL)
|
||||
|
||||
$(CONFIGURES): %: %.in $(EXTRA_CONFIG_DEPS)
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
|
@ -13,8 +12,8 @@
|
|||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is Mozilla Communicator client code, released
|
||||
# March 31, 1998.
|
||||
# The Original Code is mozilla.org code. This file was copied from parts of
|
||||
# mozilla/config/Makefile.in
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
|
@ -22,10 +21,13 @@
|
|||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
# Robert Ginda <rginda@netscape.com>
|
||||
# John Taylor <jtaylor@netscape.com>
|
||||
# Benjamin Smedberg <benjamin@smedbergs.us>
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
|
@ -37,29 +39,27 @@
|
|||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config stuff for AIX
|
||||
#
|
||||
DEPTH = ../..
|
||||
topsrcdir = @top_srcdir@
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
|
||||
CC = xlC_r
|
||||
CCC = xlC_r
|
||||
CFLAGS += -qarch=com -qnoansialias -qinline+$(INLINES) -DXP_UNIX -DAIX -DAIXV3 -DSYSV -DAIX4_3 -DHAVE_LOCALTIME_R
|
||||
include $(DEPTH)/config/autoconf.mk
|
||||
|
||||
RANLIB = ranlib
|
||||
JS_OBJDIR = $(DEPTH)/js/src
|
||||
JS_CONFIG = $(DIST)/bin/js-config
|
||||
|
||||
#.c.o:
|
||||
# $(CC) -c -MD $*.d $(CFLAGS) $<
|
||||
ARCH := aix
|
||||
CPU_ARCH = rs6000
|
||||
GFX_ARCH = x
|
||||
INLINES = js_compare_and_swap:js_fast_lock1:js_fast_unlock1:js_lock_get_slot:js_lock_set_slot:js_lock_scope1
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
|
||||
#-lpthreads -lc_r
|
||||
|
||||
MKSHLIB_BIN = /usr/ibmcxx/bin/makeC++SharedLib_r
|
||||
MKSHLIB = $(MKSHLIB_BIN) -p 0 -G -berok -bM:UR
|
||||
|
||||
ifdef JS_THREADSAFE
|
||||
XLDFLAGS += -ldl
|
||||
endif
|
||||
# These rules assume that we configured js with an appropriate bindir,
|
||||
# libdir, and includedir, so that the 'make install' will put things
|
||||
# mostly in the right places. The install-runtime-libs target takes
|
||||
# care of getting the needed libraries into the 'bin' directory as
|
||||
# well as the 'lib' directory.
|
||||
export::
|
||||
$(MAKE) -C $(JS_OBJDIR) install
|
||||
$(MAKE) -C $(JS_OBJDIR) install-runtime-libs libdir=$(DIST)/bin
|
||||
$(INSTALL) $(IFLAGS2) $(JS_CONFIG) $(SDK_BIN_DIR)
|
||||
|
||||
check::
|
||||
$(MAKE) -C $(JS_OBJDIR) $@
|
|
@ -36,7 +36,5 @@
|
|||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
TIERS += js
|
||||
|
||||
tier_js_dirs += \
|
||||
js/src \
|
||||
$(NULL)
|
||||
tier_js_staticdirs = js/src
|
||||
tier_js_dirs = config/js
|
18
configure.in
18
configure.in
|
@ -8048,8 +8048,6 @@ elif test "$OS_ARCH" != "WINNT" -a "$OS_ARCH" != "OS2" -a "$OS_ARCH" != "WINCE";
|
|||
fi
|
||||
AC_SUBST(MOZ_MOVEMAIL)
|
||||
|
||||
AC_DEFINE(JS_THREADSAFE)
|
||||
|
||||
if test "$MOZ_DEBUG"; then
|
||||
AC_DEFINE(MOZ_REFLOW_PERF)
|
||||
AC_DEFINE(MOZ_REFLOW_PERF_DSP)
|
||||
|
@ -8282,5 +8280,21 @@ if test -z "$MOZ_NATIVE_NSPR"; then
|
|||
rm -f config/autoconf.mk.bak
|
||||
fi
|
||||
|
||||
# Run the SpiderMonkey 'configure' script.
|
||||
dist=$MOZ_BUILD_ROOT/dist
|
||||
ac_configure_args="$_SUBDIR_CONFIG_ARGS"
|
||||
ac_configure_args="$ac_configure_args --enable-threadsafe"
|
||||
ac_configure_args="$ac_configure_args --with-nspr-cflags='$NSPR_CFLAGS'"
|
||||
ac_configure_args="$ac_configure_args --with-nspr-libs='$NSPR_LIBS'"
|
||||
ac_configure_args="$ac_configure_args --includedir=$dist/include"
|
||||
ac_configure_args="$ac_configure_args --bindir=$dist/bin"
|
||||
ac_configure_args="$ac_configure_args --libdir=$dist/lib"
|
||||
ac_configure_args="$ac_configure_args --with-sync-build-files=$srcdir"
|
||||
if test "$MOZ_MEMORY"; then
|
||||
ac_configure_args="$ac_configure_args --enable-jemalloc"
|
||||
fi
|
||||
AC_OUTPUT_SUBDIRS(js/src)
|
||||
ac_configure_args="$_SUBDIR_CONFIG_ARGS"
|
||||
|
||||
fi # COMPILE_ENVIRONMENT
|
||||
|
||||
|
|
|
@ -37,10 +37,12 @@
|
|||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
DEPTH = ../..
|
||||
DEPTH = .
|
||||
topsrcdir = @top_srcdir@
|
||||
srcdir = @srcdir@
|
||||
|
||||
DIRS = config
|
||||
|
||||
include $(DEPTH)/config/autoconf.mk
|
||||
|
||||
MODULE = js
|
||||
|
@ -167,7 +169,8 @@ CSRCS += \
|
|||
jsdtracef.c
|
||||
endif
|
||||
|
||||
EXPORTS = \
|
||||
INSTALLED_HEADERS = \
|
||||
js-config.h \
|
||||
jsautocfg.h \
|
||||
jsautokw.h \
|
||||
js.msg \
|
||||
|
@ -221,7 +224,7 @@ EXPORTS = \
|
|||
ifdef ENABLE_JIT
|
||||
VPATH += $(srcdir)/nanojit
|
||||
|
||||
EXPORTS += \
|
||||
INSTALLED_HEADERS += \
|
||||
builtins.tbl \
|
||||
jsbuiltins.h \
|
||||
Assembler.h \
|
||||
|
@ -254,14 +257,14 @@ DEFINES += -DFEATURE_NANOJIT -DJS_TRACER
|
|||
endif
|
||||
|
||||
ifdef HAVE_DTRACE
|
||||
EXPORTS += \
|
||||
INSTALLED_HEADERS += \
|
||||
jsdtracef.h \
|
||||
javascript-trace.h \
|
||||
$(NULL)
|
||||
endif
|
||||
|
||||
ifeq (,$(filter-out WINNT WINCE,$(OS_ARCH)))
|
||||
EXPORTS += jscpucfg.h
|
||||
INSTALLED_HEADERS += jscpucfg.h
|
||||
endif
|
||||
|
||||
JS_SAFE_ARENA = 1
|
||||
|
@ -330,6 +333,27 @@ endif
|
|||
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
|
||||
ifdef MOZ_SYNC_BUILD_FILES
|
||||
# Because the SpiderMonkey can be distributed and built independently
|
||||
# of the Mozilla source tree, it contains its own copies of many of
|
||||
# the files used by the top-level Mozilla build process, from the
|
||||
# 'config' and 'build' subtrees.
|
||||
#
|
||||
# To make it simpler to keep the copies in sync, we follow the policy
|
||||
# that the SpiderMonkey copies must always be exact copies of those in
|
||||
# the containing Mozilla tree. If you've made a change in one, it
|
||||
# belongs in the other as well. If the change isn't right for both
|
||||
# places, then that's something to bring up with the other developers.
|
||||
#
|
||||
# Some files are reasonable to diverge; for example,
|
||||
# js/config/autoconf.mk.in doesn't need most of the stuff in
|
||||
# config/autoconf.mk.in.
|
||||
check-sync-dirs = $(PYTHON) $(srcdir)/config/check-sync-dirs.py
|
||||
check::
|
||||
$(check-sync-dirs) $(srcdir)/config $(MOZ_SYNC_BUILD_FILES)/config
|
||||
$(check-sync-dirs) $(srcdir)/build $(MOZ_SYNC_BUILD_FILES)/build
|
||||
endif
|
||||
|
||||
# our build system doesn't handle subdir srcs very gracefully today
|
||||
export::
|
||||
mkdir -p nanojit
|
||||
|
@ -488,6 +512,8 @@ endif
|
|||
|
||||
jsopcode.h jsopcode.cpp: jsopcode.tbl
|
||||
|
||||
export:: jsautocfg.h
|
||||
|
||||
ifeq (,$(CROSS_COMPILE)$(filter-out WINNT,$(OS_ARCH)))
|
||||
jsautocfg.h:
|
||||
touch $@
|
||||
|
@ -548,6 +574,64 @@ jscpucfg$(HOST_BIN_SUFFIX): jscpucfg.cpp Makefile.in
|
|||
endif
|
||||
endif
|
||||
|
||||
# Compute the linker flags that programs linking against SpiderMonkey should
|
||||
# pass to get SpiderMonkey and its dependencies, beyond just the -L and -l
|
||||
# for the SpiderMonkey library itself.
|
||||
# - EXTRA_DSO_LDOPTS includes the NSPR -L and -l flags.
|
||||
# - OS_LIBS includes libraries selected by the configure script.
|
||||
# - EXTRA_LIBS includes libraries selected by this Makefile.
|
||||
JS_CONFIG_LIBS=$(EXTRA_DSO_LDOPTS) $(OS_LIBS) $(EXTRA_LIBS)
|
||||
|
||||
# The configure script invokes this rule explicitly at configure time!
|
||||
# It's important that js-config be ready by the time we're done
|
||||
# configuring, because we may be running other configure scripts that
|
||||
# would like to run js-config themselves, before js is built.
|
||||
#
|
||||
# This file and rules.mk go through a certain amount of work to decide
|
||||
# which libraries to build, what to name them, and what flags to pass
|
||||
# when linking them (and thus what flags its own clients must pass).
|
||||
# All this information needs to go into the js-config script. To
|
||||
# avoid trying to re-compute all that in the configure script, we just
|
||||
# have the configure script generate this Makefile, and then invoke
|
||||
# this rule.
|
||||
at=@
|
||||
js-config: js-config.in Makefile $(DEPTH)/config/autoconf.mk $(topsrcdir)/config/config.mk $(topsrcdir)/config/rules.mk
|
||||
rm -f js-config.tmp
|
||||
sed < $< > js-config.tmp \
|
||||
-e 's|$(at)prefix$(at)|$(prefix)|' \
|
||||
-e 's|$(at)exec_prefix$(at)|$(exec_prefix)|' \
|
||||
-e 's|$(at)includedir$(at)|$(includedir)|' \
|
||||
-e 's|$(at)libdir$(at)|$(libdir)|' \
|
||||
-e 's|$(at)MOZILLA_VERSION$(at)|$(MOZILLA_VERSION)|' \
|
||||
-e 's|$(at)LIBRARY_NAME$(at)|$(LIBRARY_NAME)|' \
|
||||
-e 's|$(at)NSPR_CFLAGS$(at)|$(NSPR_CFLAGS)|' \
|
||||
-e 's|$(at)JS_CONFIG_LIBS$(at)|$(JS_CONFIG_LIBS)|' \
|
||||
-e 's|$(at)MOZ_JS_LIBS$(at)|$(MOZ_JS_LIBS)|' \
|
||||
&& mv js-config.tmp $@ && chmod +x $@
|
||||
|
||||
SCRIPTS = js-config
|
||||
|
||||
install:: $(INSTALLED_HEADERS)
|
||||
$(SYSINSTALL) $(IFLAGS1) $^ $(includedir)/$(MODULE)
|
||||
|
||||
install:: $(SCRIPTS) $(PROGRAM)
|
||||
$(SYSINSTALL) $(IFLAGS2) $^ $(bindir)
|
||||
|
||||
# The Mozilla top-level makefiles use install-runtime-libs directly to
|
||||
# place an additional copy of the libraries in the 'dist/bin'
|
||||
# directory.
|
||||
install:: install-runtime-libs
|
||||
install-runtime-libs:: $(LIBRARY) $(SHARED_LIBRARY) $(IMPORT_LIBRARY)
|
||||
ifneq (,$(LIBRARY))
|
||||
$(SYSINSTALL) $(IFLAGS1) $(LIBRARY) $(libdir)
|
||||
endif
|
||||
ifneq (,$(SHARED_LIBRARY))
|
||||
$(SYSINSTALL) $(IFLAGS2) $(SHARED_LIBRARY) $(libdir)
|
||||
endif
|
||||
ifneq (,$(IMPORT_LIBRARY))
|
||||
$(SYSINSTALL) $(IFLAGS2) $(IMPORT_LIBRARY) $(libdir)
|
||||
endif
|
||||
|
||||
# Extra dependancies and rules for auto-generated headers
|
||||
host_jskwgen.$(OBJ_SUFFIX): jsversion.h jskeyword.tbl
|
||||
|
||||
|
|
|
@ -1,447 +0,0 @@
|
|||
# -*- Mode: makefile -*-
|
||||
# vim: ft=make
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla 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/MPL/
|
||||
#
|
||||
# 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 Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
# Michael Ang <mang@subcarrier.org>
|
||||
# Kevin Buhr <buhr@stat.wisc.edu>
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# JSRef GNUmake makefile.
|
||||
#
|
||||
# Note: dependency rules are missing for some files (some
|
||||
# .h, all .msg, etc.) Re-make clean if in doubt.
|
||||
#
|
||||
|
||||
|
||||
DEPTH = .
|
||||
|
||||
include config.mk
|
||||
|
||||
#NS_USE_NATIVE = 1
|
||||
|
||||
ifndef NANOJIT_ARCH
|
||||
$(warning NANOJIT_ARCH not defined in config/$(OS_CONFIG).mk, JIT disabled)
|
||||
else
|
||||
ifdef DISABLE_JIT
|
||||
$(warning disabling JIT per build specification)
|
||||
else
|
||||
ENABLE_JIT=1
|
||||
endif
|
||||
endif
|
||||
|
||||
ifdef ENABLE_JIT
|
||||
DEFINES += -DJS_TRACER
|
||||
DEFINES += -DFEATURE_NANOJIT
|
||||
INCLUDES += -Inanojit
|
||||
endif
|
||||
|
||||
#ifndef BUILD_OPT
|
||||
#DEFINES += -Ivprof
|
||||
#endif
|
||||
|
||||
ifdef NARCISSUS
|
||||
DEFINES += -DNARCISSUS
|
||||
endif
|
||||
|
||||
# Look in OBJDIR to find jsautocfg.h and jsautokw.h
|
||||
INCLUDES += -I. -I$(OBJDIR)
|
||||
|
||||
ifdef JS_THREADSAFE
|
||||
DEFINES += -DJS_THREADSAFE
|
||||
INCLUDES += -I$(DIST)/include/nspr
|
||||
ifdef USE_MSVC
|
||||
OTHER_LIBS += $(DIST)/lib/libnspr$(NSPR_LIBSUFFIX).lib
|
||||
else
|
||||
OTHER_LIBS += -L$(DIST)/lib -lnspr$(NSPR_LIBSUFFIX)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifdef JS_NO_THIN_LOCKS
|
||||
DEFINES += -DJS_USE_ONLY_NSPR_LOCKS
|
||||
endif
|
||||
|
||||
ifdef JS_HAS_FILE_OBJECT
|
||||
DEFINES += -DJS_HAS_FILE_OBJECT
|
||||
endif
|
||||
|
||||
|
||||
#
|
||||
# XCFLAGS may be set in the environment or on the gmake command line
|
||||
#
|
||||
#CFLAGS += -DDEBUG -DDEBUG_brendan -DJS_ARENAMETER -DJS_HASHMETER -DJS_DUMP_PROPTREE_STATS -DJS_DUMP_SCOPE_METERS -DJS_SCOPE_DEPTH_METER -DJS_BASIC_STATS
|
||||
CFLAGS += $(OS_CFLAGS) $(DEFINES) $(INCLUDES) $(XCFLAGS)
|
||||
|
||||
LDFLAGS = $(XLDFLAGS)
|
||||
LDFLAGS += $(OS_LDFLAGS)
|
||||
|
||||
ifdef MOZ_SHARK
|
||||
DEFINES += -DMOZ_SHARK
|
||||
CFLAGS += -F/System/Library/PrivateFrameworks
|
||||
LDFLAGS += -F/System/Library/PrivateFrameworks -framework CHUD
|
||||
endif
|
||||
ifdef MOZ_CALLGRIND
|
||||
DEFINES += -DMOZ_CALLGRIND
|
||||
endif
|
||||
ifdef MOZ_VTUNE
|
||||
DEFINES += -DMOZ_VTUNE
|
||||
CXXFLAGS += -IC:/Program\ Files/Intel/VTune/Analyzer/Include
|
||||
OTHER_LIBS += C:/Program\ Files/Intel/VTune/Analyzer/Lib/VtuneApi.lib
|
||||
endif
|
||||
|
||||
ifndef NO_LIBM
|
||||
LDFLAGS += -lm
|
||||
endif
|
||||
|
||||
# Prevent floating point errors caused by VC++ optimizations
|
||||
ifeq ($(OS_ARCH),WINNT)
|
||||
_MSC_VER = $(shell $(CXX) 2>&1 | sed -n 's/.*Compiler Version \([0-9]*\)\.\([0-9]*\).*/\1\2/p')
|
||||
ifeq (,$(filter-out 1200 1300 1310,$(_MSC_VER)))
|
||||
CFLAGS += -Op
|
||||
else
|
||||
CFLAGS += -fp:precise
|
||||
endif
|
||||
endif # WINNT
|
||||
|
||||
#
|
||||
# Server-related changes :
|
||||
#
|
||||
ifdef NES40
|
||||
DEFINES += -DNES40
|
||||
endif
|
||||
|
||||
#
|
||||
# Line editing support.
|
||||
# Define JS_READLINE or JS_EDITLINE to enable line editing in the
|
||||
# js command-line interpreter.
|
||||
#
|
||||
ifdef JS_READLINE
|
||||
# For those platforms with the readline library installed.
|
||||
DEFINES += -DEDITLINE
|
||||
PROG_LIBS += -lreadline -ltermcap
|
||||
else
|
||||
ifdef JS_EDITLINE
|
||||
# Use the editline library, built locally.
|
||||
PREDIRS += editline
|
||||
DEFINES += -DEDITLINE
|
||||
PROG_LIBS += $(OBJDIR)/editline/libedit.a
|
||||
endif
|
||||
endif
|
||||
|
||||
# For purify
|
||||
PURE_CFLAGS = -DXP_UNIX $(OPTIMIZER) $(PURE_OS_CFLAGS) $(DEFINES) \
|
||||
$(INCLUDES) $(XCFLAGS)
|
||||
|
||||
#
|
||||
# JS file lists
|
||||
#
|
||||
JS_HFILES = \
|
||||
jsarray.h \
|
||||
jsatom.h \
|
||||
jsbool.h \
|
||||
jscntxt.h \
|
||||
jsdate.h \
|
||||
jsemit.h \
|
||||
jsexn.h \
|
||||
jsfun.h \
|
||||
jsgc.h \
|
||||
jsinterp.h \
|
||||
jsiter.h \
|
||||
jslibmath.h \
|
||||
jslock.h \
|
||||
jsmath.h \
|
||||
jsnum.h \
|
||||
jsobj.h \
|
||||
json.h \
|
||||
jsopcode.h \
|
||||
jsparse.h \
|
||||
jsarena.h \
|
||||
jsclist.h \
|
||||
jsdhash.h \
|
||||
jsdtoa.h \
|
||||
jshash.h \
|
||||
jslong.h \
|
||||
jstypes.h \
|
||||
jsprvtd.h \
|
||||
jspubtd.h \
|
||||
jsregexp.h \
|
||||
jsscan.h \
|
||||
jsscope.h \
|
||||
jsscript.h \
|
||||
jsstr.h \
|
||||
jsversion.h \
|
||||
jsxdrapi.h \
|
||||
jsxml.h \
|
||||
$(NULL)
|
||||
|
||||
ifdef ENABLE_JIT
|
||||
JS_HFILES += \
|
||||
jstracer.h \
|
||||
nanojit/Assembler.h \
|
||||
nanojit/LIR.h \
|
||||
nanojit/Native$(NANOJIT_ARCH).h \
|
||||
nanojit/avmplus.h \
|
||||
nanojit/vm_fops.h \
|
||||
nanojit/Fragmento.h \
|
||||
nanojit/Native.h \
|
||||
nanojit/RegAlloc.h \
|
||||
nanojit/nanojit.h \
|
||||
nanojit/TraceTreeDrawer.h \
|
||||
$(NULL)
|
||||
endif
|
||||
|
||||
ifndef BUILD_OPT
|
||||
#JS_HFILES += \
|
||||
# vprof/vprof.h \
|
||||
# $(NULL)
|
||||
endif
|
||||
|
||||
API_HFILES = \
|
||||
jsapi.h \
|
||||
jsdbgapi.h \
|
||||
$(NULL)
|
||||
|
||||
OTHER_HFILES = \
|
||||
jsbit.h \
|
||||
jscompat.h \
|
||||
jscpucfg.h \
|
||||
jsotypes.h \
|
||||
jsstddef.h \
|
||||
prmjtime.h \
|
||||
resource.h \
|
||||
jsopcode.tbl \
|
||||
jsproto.tbl \
|
||||
js.msg \
|
||||
jsshell.msg \
|
||||
jskeyword.tbl \
|
||||
$(NULL)
|
||||
|
||||
ifdef ENABLE_JIT
|
||||
OTHER_HFILES += builtins.tbl
|
||||
endif
|
||||
|
||||
ifndef PREBUILT_CPUCFG
|
||||
OTHER_HFILES += $(OBJDIR)/jsautocfg.h
|
||||
endif
|
||||
OTHER_HFILES += $(OBJDIR)/jsautokw.h
|
||||
|
||||
HFILES = $(JS_HFILES) $(API_HFILES) $(OTHER_HFILES)
|
||||
|
||||
JS_CPPFILES = \
|
||||
jsapi.cpp \
|
||||
jsarena.cpp \
|
||||
jsarray.cpp \
|
||||
jsatom.cpp \
|
||||
jsbool.cpp \
|
||||
jscntxt.cpp \
|
||||
jsdate.cpp \
|
||||
jsdbgapi.cpp \
|
||||
jsdhash.cpp \
|
||||
jsdtoa.cpp \
|
||||
jsemit.cpp \
|
||||
jsexn.cpp \
|
||||
jsfun.cpp \
|
||||
jsgc.cpp \
|
||||
jshash.cpp \
|
||||
jsinterp.cpp \
|
||||
jsinvoke.cpp \
|
||||
jsiter.cpp \
|
||||
jslock.cpp \
|
||||
jslog2.cpp \
|
||||
jslong.cpp \
|
||||
jsmath.cpp \
|
||||
jsnum.cpp \
|
||||
jsobj.cpp \
|
||||
json.cpp \
|
||||
jsopcode.cpp \
|
||||
jsparse.cpp \
|
||||
jsprf.cpp \
|
||||
jsregexp.cpp \
|
||||
jsscan.cpp \
|
||||
jsscope.cpp \
|
||||
jsscript.cpp \
|
||||
jsstr.cpp \
|
||||
jsutil.cpp \
|
||||
jsxdrapi.cpp \
|
||||
jsxml.cpp \
|
||||
prmjtime.cpp \
|
||||
$(NULL)
|
||||
|
||||
ifdef ENABLE_JIT
|
||||
JS_CPPFILES += \
|
||||
jsbuiltins.cpp \
|
||||
jstracer.cpp \
|
||||
nanojit/Assembler.cpp \
|
||||
nanojit/Fragmento.cpp \
|
||||
nanojit/LIR.cpp \
|
||||
nanojit/Native$(NANOJIT_ARCH).cpp \
|
||||
nanojit/RegAlloc.cpp \
|
||||
nanojit/avmplus.cpp \
|
||||
$(NULL)
|
||||
|
||||
ifdef DEBUG
|
||||
JS_CPPFILES += nanojit/TraceTreeDrawer.cpp
|
||||
endif
|
||||
endif
|
||||
|
||||
ifndef BUILD_OPT
|
||||
#JS_CPPFILES += \
|
||||
# vprof/vprof.cpp \
|
||||
# $(NULL)
|
||||
endif
|
||||
|
||||
ifdef JS_LIVECONNECT
|
||||
DIRS += liveconnect
|
||||
endif
|
||||
|
||||
ifdef JS_HAS_FILE_OBJECT
|
||||
JS_CPPFILES += jsfile.cpp
|
||||
JS_HFILES += jsfile.h
|
||||
endif
|
||||
|
||||
LIB_CPPFILES = $(JS_CPPFILES)
|
||||
LIB_ASFILES := $(wildcard *_$(OS_ARCH).s)
|
||||
PROG_CPPFILES = js.cpp
|
||||
|
||||
ifdef USE_MSVC
|
||||
LIBRARY = $(OBJDIR)/js32.lib
|
||||
SHARED_LIBRARY = $(OBJDIR)/js32.dll
|
||||
PROGRAM = $(OBJDIR)/js.exe
|
||||
else
|
||||
LIBRARY = $(OBJDIR)/libjs.a
|
||||
SHARED_LIBRARY = $(OBJDIR)/libjs.$(SO_SUFFIX)
|
||||
PROGRAM = $(OBJDIR)/js
|
||||
endif
|
||||
|
||||
include rules.mk
|
||||
|
||||
MOZ_DEPTH = ../..
|
||||
include jsconfig.mk
|
||||
|
||||
nsinstall-target:
|
||||
cd ../../config; $(MAKE) OBJDIR=$(OBJDIR) OBJDIR_NAME=$(OBJDIR)
|
||||
|
||||
#
|
||||
# Automatic header generation
|
||||
#
|
||||
|
||||
AUTO_HEADERS = $(OBJDIR)/jsautokw.h $(OBJDIR)/jsautooplen.h
|
||||
|
||||
$(OBJDIR)/jsautokw.h: jskeyword.tbl
|
||||
|
||||
$(OBJDIR)/jsautooplen.h: jsopcode.tbl
|
||||
|
||||
GARBAGE += $(AUTO_HEADERS)
|
||||
GARBAGE += $(AUTO_HEADERS:$(OBJDIR)/jsauto%.h=$(OBJDIR)/js%gen$(HOST_BIN_SUFFIX))
|
||||
|
||||
ifdef USE_MSVC
|
||||
|
||||
GARBAGE += $(AUTO_HEADERS:$(OBJDIR)/jsauto%.h=$(OBJDIR)/js%gen.obj)
|
||||
|
||||
$(AUTO_HEADERS): $(OBJDIR)/jsauto%.h: js%gen.cpp
|
||||
@$(MAKE_OBJDIR)
|
||||
$(CXX) -Fo$(OBJDIR)/ -c $(CFLAGS) $(OPTIMIZER) $<
|
||||
link.exe -out:"$(OBJDIR)/js$*gen$(HOST_BIN_SUFFIX)" $(EXE_LINK_FLAGS) $(OBJDIR)/js$*gen.obj
|
||||
$(OBJDIR)/js$*gen$(HOST_BIN_SUFFIX) $@
|
||||
else
|
||||
|
||||
GARBAGE += $(AUTO_HEADERS:$(OBJDIR)/jsauto%.h=$(OBJDIR)/js%gen.d)
|
||||
$(AUTO_HEADERS): $(OBJDIR)/jsauto%.h: js%gen.cpp
|
||||
@$(MAKE_OBJDIR)
|
||||
$(CXX) -o $(OBJDIR)/js$*gen$(HOST_BIN_SUFFIX) $(CFLAGS) $(OPTIMIZER) $(LDFLAGS) $<
|
||||
$(OBJDIR)/js$*gen$(HOST_BIN_SUFFIX) $@
|
||||
|
||||
endif
|
||||
|
||||
# force creation of autoheaders before compiling any source that may use them
|
||||
$(LIB_OBJS) : $(AUTO_HEADERS)
|
||||
|
||||
#
|
||||
# JS shell executable
|
||||
#
|
||||
|
||||
ifdef USE_MSVC
|
||||
$(PROGRAM): $(PROG_OBJS) $(LIBRARY)
|
||||
link.exe -out:"$@" $(EXE_LINK_FLAGS) $^
|
||||
else
|
||||
$(PROGRAM): $(PROG_OBJS) $(LIBRARY)
|
||||
$(CXX) -o $@ $(CFLAGS) $(PROG_OBJS) $(LIBRARY) $(LDFLAGS) $(OTHER_LIBS) \
|
||||
$(PROG_LIBS)
|
||||
endif
|
||||
|
||||
$(PROGRAM).pure: $(PROG_OBJS) $(LIBRARY)
|
||||
purify $(PUREFLAGS) \
|
||||
$(CXX) -o $@ $(PURE_OS_CFLAGS) $(PROG_OBJS) $(LIBRARY) $(LDFLAGS) \
|
||||
$(OTHER_LIBS) $(PROG_LIBS)
|
||||
|
||||
ifndef PREBUILT_CPUCFG
|
||||
$(filter-out jscpucfg.h $(OBJDIR)/jsautocfg.h, $(HFILES)) $(CPPFILES): $(OBJDIR)/jsautocfg.h
|
||||
|
||||
$(OBJDIR)/jsautocfg.h: $(OBJDIR)/jscpucfg
|
||||
rm -f $@
|
||||
$(OBJDIR)/jscpucfg > $@
|
||||
|
||||
$(OBJDIR)/jscpucfg: $(OBJDIR)/jscpucfg.o
|
||||
$(CXX) $(OS_LDFLAGS) -o $@ $(OBJDIR)/jscpucfg.o
|
||||
|
||||
GARBAGE += $(OBJDIR)/jsautocfg.h $(OBJDIR)/jscpucfg \
|
||||
$(OBJDIR)/jscpucfg.o $(OBJDIR)/jscpucfg.d
|
||||
endif
|
||||
|
||||
# Automatic make dependencies files
|
||||
DEPENDENCIES = $(CPPFILES:%.cpp=$(OBJDIR)/%.d)
|
||||
|
||||
#
|
||||
# Hardwire dependencies for some files
|
||||
#
|
||||
ifdef USE_MSVC
|
||||
OBJ=obj
|
||||
else
|
||||
OBJ=o
|
||||
endif
|
||||
|
||||
$(OBJDIR)/jsinvoke.$(OBJ): jsinterp.h jsinterp.cpp
|
||||
$(OBJDIR)/jsinvoke.obj : jsinterp.h jsinterp.cpp
|
||||
|
||||
-include $(DEPENDENCIES)
|
||||
|
||||
TARNAME = jsref.tar
|
||||
TARFILES = files `cat files`
|
||||
|
||||
SUFFIXES: .i
|
||||
%.i: %.cpp
|
||||
$(CXX) -C -E $(CFLAGS) $< > $*.i
|
|
@ -0,0 +1,10 @@
|
|||
dnl
|
||||
dnl Local autoconf macros used with mozilla
|
||||
dnl The contents of this file are under the Public Domain.
|
||||
dnl
|
||||
|
||||
builtin(include, build/autoconf/glib.m4)dnl
|
||||
builtin(include, build/autoconf/pkg.m4)dnl
|
||||
builtin(include, build/autoconf/nspr.m4)dnl
|
||||
builtin(include, build/autoconf/altoptions.m4)dnl
|
||||
|
|
@ -0,0 +1,202 @@
|
|||
#! /usr/bin/env perl
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla 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/MPL/
|
||||
#
|
||||
# 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 the Initial Developer are Copyright (C) 1999
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
# acoutput-fast.pl - Quickly create makefiles that are in a common format.
|
||||
#
|
||||
# Most of the makefiles in mozilla only refer to two configure variables:
|
||||
# @srcdir@
|
||||
# @top_srcdir@
|
||||
# However, configure does not know any better and it runs sed on each file
|
||||
# with over 150 replacement rules (slow as molasses).
|
||||
#
|
||||
# This script takes a list of makefiles as input. For example,
|
||||
#
|
||||
# echo $MAKEFILES | acoutput-fast.pl
|
||||
#
|
||||
# The script creates each Makefile that only references @srcdir@ and
|
||||
# @top_srcdir@. For other files, it lists them in a shell command that is
|
||||
# printed to stdout:
|
||||
#
|
||||
# CONFIG_FILES="unhandled_files..."; export CONFIG_FILES
|
||||
#
|
||||
# This command can be used to have config.status create the unhandled
|
||||
# files. For example,
|
||||
#
|
||||
# eval "echo $MAKEFILES | acoutput-fast.pl"
|
||||
# AC_OUTPUT($MAKEFILES)
|
||||
#
|
||||
# Send comments, improvements, bugs to Steve Lamm (slamm@netscape.com).
|
||||
|
||||
#use File::Basename;
|
||||
sub dirname {
|
||||
my $dir = $_[0];
|
||||
return '.' if not $dir =~ m%/%;
|
||||
$dir =~ s%/[^/][^/]*$%%;
|
||||
return $dir;
|
||||
}
|
||||
|
||||
# Create one directory. Assumes it doesn't already exist.
|
||||
# Will create parent(s) if needed.
|
||||
sub create_directory {
|
||||
my $dir = $_[0];
|
||||
my $parent = dirname($dir);
|
||||
create_directory($parent) if not -d $parent;
|
||||
mkdir "$dir",0777;
|
||||
}
|
||||
|
||||
# Create all the directories at once.
|
||||
# This can be much faster than calling mkdir() for each one.
|
||||
sub create_directories {
|
||||
my @makefiles = @_;
|
||||
my @dirs = ();
|
||||
my $ac_file;
|
||||
foreach $ac_file (@makefiles) {
|
||||
push @dirs, dirname($ac_file);
|
||||
}
|
||||
# Call mkdir with the directories sorted by subdir count (how many /'s)
|
||||
if (@dirs) {
|
||||
foreach $dir (@dirs) {
|
||||
if (not -d $dir) {
|
||||
print STDERR "Creating directory $dir\n";
|
||||
create_directory($dir);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
while($arg = shift) {
|
||||
if ($arg =~ /^--srcdir=/) {
|
||||
$ac_given_srcdir = (split /=/, $arg)[1];
|
||||
}
|
||||
if ($arg =~ /^--cygwin-srcdir/) {
|
||||
$ac_cygwin_srcdir = (split /=/, $arg)[1];
|
||||
}
|
||||
}
|
||||
|
||||
if (!$ac_given_srcdir) {
|
||||
$ac_given_srcdir = $0;
|
||||
$ac_given_srcdir =~ s|/?build/autoconf/.*$||;
|
||||
$ac_given_srcdir = '.' if $ac_given_srcdir eq '';
|
||||
}
|
||||
|
||||
if (!$ac_cygwin_srcdir) {
|
||||
$ac_cygwin_srcdir = $ac_given_srcdir;
|
||||
}
|
||||
|
||||
# Read list of makefiles from the stdin or,
|
||||
# from files listed on the command-line.
|
||||
#
|
||||
@makefiles=();
|
||||
push @makefiles, split while (<STDIN>);
|
||||
|
||||
# Create all the directories at once.
|
||||
# This can be much faster than calling mkdir() for each one.
|
||||
create_directories(@makefiles);
|
||||
|
||||
# Output the makefiles.
|
||||
#
|
||||
@unhandled=();
|
||||
foreach $ac_file (@makefiles) {
|
||||
if (not $ac_file =~ /Makefile$/ or $ac_file =~ /:/) {
|
||||
push @unhandled, $ac_file;
|
||||
next;
|
||||
}
|
||||
$ac_file_in = "$ac_given_srcdir/$ac_file.in";
|
||||
$ac_dir = dirname($ac_file);
|
||||
if ($ac_dir eq '.') {
|
||||
$ac_dir_suffix = '';
|
||||
$ac_dots = '';
|
||||
} else {
|
||||
$ac_dir_suffix = "/$ac_dir";
|
||||
$ac_dir_suffix =~ s%^/\./%/%;
|
||||
$ac_dots = $ac_dir_suffix;
|
||||
$ac_dots =~ s%/[^/]*%../%g;
|
||||
}
|
||||
if ($ac_given_srcdir eq '.') {
|
||||
$srcdir = '.';
|
||||
if ($ac_dots eq '') {
|
||||
$top_srcdir = '.'
|
||||
} else {
|
||||
$top_srcdir = $ac_dots;
|
||||
$top_srcdir =~ s%/$%%;
|
||||
}
|
||||
} elsif ($ac_cygwin_srcdir =~ m%^/% or $ac_cygwin_srcdir =~ m%^.:/%) {
|
||||
$srcdir = "$ac_cygwin_srcdir$ac_dir_suffix";
|
||||
$top_srcdir = "$ac_cygwin_srcdir";
|
||||
} else {
|
||||
$srcdir = "$ac_dots$ac_cygwin_srcdir$ac_dir_suffix";
|
||||
$top_srcdir = "$ac_dots$ac_cygwin_srcdir";
|
||||
}
|
||||
|
||||
if (-e $ac_file) {
|
||||
next if -M _ < -M $ac_file_in;
|
||||
print STDERR "updating $ac_file\n";
|
||||
} else {
|
||||
print STDERR "creating $ac_file\n";
|
||||
}
|
||||
|
||||
open (INFILE, "<$ac_file_in")
|
||||
or ( warn "can't read $ac_file_in: No such file or directory\n" and next);
|
||||
open (OUTFILE, ">$ac_file")
|
||||
or ( warn "Unable to create $ac_file\n" and next);
|
||||
|
||||
while (<INFILE>) {
|
||||
#if (/\@[_a-zA-Z]*\@.*\@[_a-zA-Z]*\@/) {
|
||||
# warn "Two defines on a line:$ac_file:$.:$_";
|
||||
# push @unhandled, $ac_file;
|
||||
# last;
|
||||
#}
|
||||
|
||||
s/\@srcdir\@/$srcdir/g;
|
||||
s/\@top_srcdir\@/$top_srcdir/g;
|
||||
|
||||
if (/\@[_a-zA-Z]*\@/) {
|
||||
warn "Unknown variable:$ac_file:$.:$_";
|
||||
push @unhandled, $ac_file;
|
||||
last;
|
||||
}
|
||||
print OUTFILE;
|
||||
}
|
||||
close INFILE;
|
||||
close OUTFILE;
|
||||
}
|
||||
|
||||
# Print the shell command to be evaluated by configure.
|
||||
#
|
||||
print "CONFIG_FILES=\"".join(' ', @unhandled)."\"; export CONFIG_FILES\n";
|
||||
|
|
@ -0,0 +1,154 @@
|
|||
dnl ***** BEGIN LICENSE BLOCK *****
|
||||
dnl Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
dnl
|
||||
dnl The contents of this file are subject to the Mozilla Public License Version
|
||||
dnl 1.1 (the "License"); you may not use this file except in compliance with
|
||||
dnl the License. You may obtain a copy of the License at
|
||||
dnl http://www.mozilla.org/MPL/
|
||||
dnl
|
||||
dnl Software distributed under the License is distributed on an "AS IS" basis,
|
||||
dnl WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
dnl for the specific language governing rights and limitations under the
|
||||
dnl License.
|
||||
dnl
|
||||
dnl The Original Code is mozilla.org code.
|
||||
dnl
|
||||
dnl The Initial Developer of the Original Code is
|
||||
dnl Netscape Communications Corporation.
|
||||
dnl Portions created by the Initial Developer are Copyright (C) 1999
|
||||
dnl the Initial Developer. All Rights Reserved.
|
||||
dnl
|
||||
dnl Contributor(s):
|
||||
dnl
|
||||
dnl Alternatively, the contents of this file may be used under the terms of
|
||||
dnl either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
dnl or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
dnl in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
dnl of those above. If you wish to allow use of your version of this file only
|
||||
dnl under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
dnl use your version of this file under the terms of the MPL, indicate your
|
||||
dnl decision by deleting the provisions above and replace them with the notice
|
||||
dnl and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
dnl the provisions above, a recipient may use your version of this file under
|
||||
dnl the terms of any one of the MPL, the GPL or the LGPL.
|
||||
dnl
|
||||
dnl ***** END LICENSE BLOCK *****
|
||||
|
||||
dnl altoptions.m4 - An alternative way of specifying command-line options.
|
||||
dnl These macros are needed to support a menu-based configurator.
|
||||
dnl This file also includes the macro, AM_READ_MYCONFIG, for reading
|
||||
dnl the 'myconfig.m4' file.
|
||||
|
||||
dnl Send comments, improvements, bugs to Steve Lamm (slamm@netscape.com).
|
||||
|
||||
|
||||
dnl MOZ_ARG_ENABLE_BOOL( NAME, HELP, IF-YES [, IF-NO [, ELSE]])
|
||||
dnl MOZ_ARG_DISABLE_BOOL( NAME, HELP, IF-NO [, IF-YES [, ELSE]])
|
||||
dnl MOZ_ARG_ENABLE_STRING( NAME, HELP, IF-SET [, ELSE])
|
||||
dnl MOZ_ARG_ENABLE_BOOL_OR_STRING( NAME, HELP, IF-YES, IF-NO, IF-SET[, ELSE]]])
|
||||
dnl MOZ_ARG_WITH_BOOL( NAME, HELP, IF-YES [, IF-NO [, ELSE])
|
||||
dnl MOZ_ARG_WITHOUT_BOOL( NAME, HELP, IF-NO [, IF-YES [, ELSE])
|
||||
dnl MOZ_ARG_WITH_STRING( NAME, HELP, IF-SET [, ELSE])
|
||||
dnl MOZ_ARG_HEADER(Comment)
|
||||
dnl MOZ_CHECK_PTHREADS( NAME, IF-YES [, ELSE ])
|
||||
dnl MOZ_READ_MYCONFIG() - Read in 'myconfig.sh' file
|
||||
|
||||
|
||||
dnl MOZ_TWO_STRING_TEST(NAME, VAL, STR1, IF-STR1, STR2, IF-STR2 [, ELSE])
|
||||
AC_DEFUN([MOZ_TWO_STRING_TEST],
|
||||
[if test "[$2]" = "[$3]"; then
|
||||
ifelse([$4], , :, [$4])
|
||||
elif test "[$2]" = "[$5]"; then
|
||||
ifelse([$6], , :, [$6])
|
||||
else
|
||||
ifelse([$7], ,
|
||||
[AC_MSG_ERROR([Option, [$1], does not take an argument ([$2]).])],
|
||||
[$7])
|
||||
fi])
|
||||
|
||||
dnl MOZ_ARG_ENABLE_BOOL(NAME, HELP, IF-YES [, IF-NO [, ELSE]])
|
||||
AC_DEFUN([MOZ_ARG_ENABLE_BOOL],
|
||||
[AC_ARG_ENABLE([$1], [$2],
|
||||
[MOZ_TWO_STRING_TEST([$1], [$enableval], yes, [$3], no, [$4])],
|
||||
[$5])])
|
||||
|
||||
dnl MOZ_ARG_DISABLE_BOOL(NAME, HELP, IF-NO [, IF-YES [, ELSE]])
|
||||
AC_DEFUN([MOZ_ARG_DISABLE_BOOL],
|
||||
[AC_ARG_ENABLE([$1], [$2],
|
||||
[MOZ_TWO_STRING_TEST([$1], [$enableval], no, [$3], yes, [$4])],
|
||||
[$5])])
|
||||
|
||||
dnl MOZ_ARG_ENABLE_STRING(NAME, HELP, IF-SET [, ELSE])
|
||||
AC_DEFUN([MOZ_ARG_ENABLE_STRING],
|
||||
[AC_ARG_ENABLE([$1], [$2], [$3], [$4])])
|
||||
|
||||
dnl MOZ_ARG_ENABLE_BOOL_OR_STRING(NAME, HELP, IF-YES, IF-NO, IF-SET[, ELSE]]])
|
||||
AC_DEFUN([MOZ_ARG_ENABLE_BOOL_OR_STRING],
|
||||
[ifelse([$5], ,
|
||||
[errprint([Option, $1, needs an "IF-SET" argument.
|
||||
])
|
||||
m4exit(1)],
|
||||
[AC_ARG_ENABLE([$1], [$2],
|
||||
[MOZ_TWO_STRING_TEST([$1], [$enableval], yes, [$3], no, [$4], [$5])],
|
||||
[$6])])])
|
||||
|
||||
dnl MOZ_ARG_WITH_BOOL(NAME, HELP, IF-YES [, IF-NO [, ELSE])
|
||||
AC_DEFUN([MOZ_ARG_WITH_BOOL],
|
||||
[AC_ARG_WITH([$1], [$2],
|
||||
[MOZ_TWO_STRING_TEST([$1], [$withval], yes, [$3], no, [$4])],
|
||||
[$5])])
|
||||
|
||||
dnl MOZ_ARG_WITHOUT_BOOL(NAME, HELP, IF-NO [, IF-YES [, ELSE])
|
||||
AC_DEFUN([MOZ_ARG_WITHOUT_BOOL],
|
||||
[AC_ARG_WITH([$1], [$2],
|
||||
[MOZ_TWO_STRING_TEST([$1], [$withval], no, [$3], yes, [$4])],
|
||||
[$5])])
|
||||
|
||||
dnl MOZ_ARG_WITH_STRING(NAME, HELP, IF-SET [, ELSE])
|
||||
AC_DEFUN([MOZ_ARG_WITH_STRING],
|
||||
[AC_ARG_WITH([$1], [$2], [$3], [$4])])
|
||||
|
||||
dnl MOZ_ARG_HEADER(Comment)
|
||||
dnl This is used by webconfig to group options
|
||||
define(MOZ_ARG_HEADER, [# $1])
|
||||
|
||||
dnl
|
||||
dnl Apparently, some systems cannot properly check for the pthread
|
||||
dnl library unless <pthread.h> is included so we need to test
|
||||
dnl using it
|
||||
dnl
|
||||
dnl MOZ_CHECK_PTHREADS(lib, success, failure)
|
||||
AC_DEFUN([MOZ_CHECK_PTHREADS],
|
||||
[
|
||||
AC_MSG_CHECKING([for pthread_create in -l$1])
|
||||
echo "
|
||||
#include <pthread.h>
|
||||
#include <stdlib.h>
|
||||
void *foo(void *v) { int a = 1; }
|
||||
int main() {
|
||||
pthread_t t;
|
||||
if (!pthread_create(&t, 0, &foo, 0)) {
|
||||
pthread_join(t, 0);
|
||||
}
|
||||
exit(0);
|
||||
}" > dummy.c ;
|
||||
echo "${CC-cc} -o dummy${ac_exeext} dummy.c $CFLAGS $CPPFLAGS -l[$1] $LDFLAGS $LIBS" 1>&5;
|
||||
${CC-cc} -o dummy${ac_exeext} dummy.c $CFLAGS $CPPFLAGS -l[$1] $LDFLAGS $LIBS 2>&5;
|
||||
_res=$? ;
|
||||
rm -f dummy.c dummy${ac_exeext} ;
|
||||
if test "$_res" = "0"; then
|
||||
AC_MSG_RESULT([yes])
|
||||
[$2]
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
[$3]
|
||||
fi
|
||||
])
|
||||
|
||||
dnl MOZ_READ_MYCONFIG() - Read in 'myconfig.sh' file
|
||||
AC_DEFUN([MOZ_READ_MOZCONFIG],
|
||||
[AC_REQUIRE([AC_INIT_BINSH])dnl
|
||||
# Read in '.mozconfig' script to set the initial options.
|
||||
# See the mozconfig2configure script for more details.
|
||||
_AUTOCONF_TOOLS_DIR=`dirname [$]0`/[$1]/build/autoconf
|
||||
. $_AUTOCONF_TOOLS_DIR/mozconfig2configure])
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -0,0 +1,200 @@
|
|||
# Configure paths for GLIB
|
||||
# Owen Taylor 97-11-3
|
||||
|
||||
dnl AM_PATH_GLIB([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
|
||||
dnl Test for GLIB, and define GLIB_CFLAGS and GLIB_LIBS, if "gmodule" or
|
||||
dnl gthread is specified in MODULES, pass to glib-config
|
||||
dnl
|
||||
AC_DEFUN([AM_PATH_GLIB],
|
||||
[dnl
|
||||
dnl Get the cflags and libraries from the glib-config script
|
||||
dnl
|
||||
AC_ARG_WITH(glib-prefix,[ --with-glib-prefix=PFX Prefix where GLIB is installed (optional)],
|
||||
glib_config_prefix="$withval", glib_config_prefix="")
|
||||
AC_ARG_WITH(glib-exec-prefix,[ --with-glib-exec-prefix=PFX
|
||||
Exec prefix where GLIB is installed (optional)],
|
||||
glib_config_exec_prefix="$withval", glib_config_exec_prefix="")
|
||||
AC_ARG_ENABLE(glibtest, [ --disable-glibtest Do not try to compile and run a test GLIB program],
|
||||
, enable_glibtest=yes)
|
||||
|
||||
if test x$glib_config_exec_prefix != x ; then
|
||||
glib_config_args="$glib_config_args --exec-prefix=$glib_config_exec_prefix"
|
||||
if test x${GLIB_CONFIG+set} != xset ; then
|
||||
GLIB_CONFIG=$glib_config_exec_prefix/bin/glib-config
|
||||
fi
|
||||
fi
|
||||
if test x$glib_config_prefix != x ; then
|
||||
glib_config_args="$glib_config_args --prefix=$glib_config_prefix"
|
||||
if test x${GLIB_CONFIG+set} != xset ; then
|
||||
GLIB_CONFIG=$glib_config_prefix/bin/glib-config
|
||||
fi
|
||||
fi
|
||||
|
||||
for module in . $4
|
||||
do
|
||||
case "$module" in
|
||||
gmodule)
|
||||
glib_config_args="$glib_config_args gmodule"
|
||||
;;
|
||||
gthread)
|
||||
glib_config_args="$glib_config_args gthread"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
dnl Force a version check to keep upgraded versions from being overridden by the cached value.
|
||||
unset ac_cv_path_GLIB_CONFIG
|
||||
|
||||
AC_PATH_PROG(GLIB_CONFIG, glib-config, no)
|
||||
min_glib_version=ifelse([$1], ,0.99.7,$1)
|
||||
AC_MSG_CHECKING(for GLIB - version >= $min_glib_version)
|
||||
no_glib=""
|
||||
if test "$GLIB_CONFIG" = "no" ; then
|
||||
no_glib=yes
|
||||
else
|
||||
GLIB_CFLAGS=`$GLIB_CONFIG $glib_config_args --cflags`
|
||||
GLIB_LIBS=`$GLIB_CONFIG $glib_config_args --libs`
|
||||
glib_config_major_version=`$GLIB_CONFIG $glib_config_args --version | \
|
||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
|
||||
glib_config_minor_version=`$GLIB_CONFIG $glib_config_args --version | \
|
||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
|
||||
glib_config_micro_version=`$GLIB_CONFIG $glib_config_args --version | \
|
||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
|
||||
if test "x$enable_glibtest" = "xyes" ; then
|
||||
ac_save_CFLAGS="$CFLAGS"
|
||||
ac_save_LIBS="$LIBS"
|
||||
CFLAGS="$CFLAGS $GLIB_CFLAGS"
|
||||
LIBS="$GLIB_LIBS $LIBS"
|
||||
dnl
|
||||
dnl Now check if the installed GLIB is sufficiently new. (Also sanity
|
||||
dnl checks the results of glib-config to some extent
|
||||
dnl
|
||||
rm -f conf.glibtest
|
||||
AC_TRY_RUN([
|
||||
#include <glib.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
int major, minor, micro;
|
||||
char *tmp_version;
|
||||
|
||||
system ("touch conf.glibtest");
|
||||
|
||||
/* HP/UX 9 (%@#!) writes to sscanf strings */
|
||||
tmp_version = g_strdup("$min_glib_version");
|
||||
if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) {
|
||||
printf("%s, bad version string\n", "$min_glib_version");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if ((glib_major_version != $glib_config_major_version) ||
|
||||
(glib_minor_version != $glib_config_minor_version) ||
|
||||
(glib_micro_version != $glib_config_micro_version))
|
||||
{
|
||||
printf("\n*** 'glib-config --version' returned %d.%d.%d, but GLIB (%d.%d.%d)\n",
|
||||
$glib_config_major_version, $glib_config_minor_version, $glib_config_micro_version,
|
||||
glib_major_version, glib_minor_version, glib_micro_version);
|
||||
printf ("*** was found! If glib-config was correct, then it is best\n");
|
||||
printf ("*** to remove the old version of GLIB. You may also be able to fix the error\n");
|
||||
printf("*** by modifying your LD_LIBRARY_PATH environment variable, or by editing\n");
|
||||
printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
|
||||
printf("*** required on your system.\n");
|
||||
printf("*** If glib-config was wrong, set the environment variable GLIB_CONFIG\n");
|
||||
printf("*** to point to the correct copy of glib-config, and remove the file config.cache\n");
|
||||
printf("*** before re-running configure\n");
|
||||
}
|
||||
else if ((glib_major_version != GLIB_MAJOR_VERSION) ||
|
||||
(glib_minor_version != GLIB_MINOR_VERSION) ||
|
||||
(glib_micro_version != GLIB_MICRO_VERSION))
|
||||
{
|
||||
printf("*** GLIB header files (version %d.%d.%d) do not match\n",
|
||||
GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION, GLIB_MICRO_VERSION);
|
||||
printf("*** library (version %d.%d.%d)\n",
|
||||
glib_major_version, glib_minor_version, glib_micro_version);
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((glib_major_version > major) ||
|
||||
((glib_major_version == major) && (glib_minor_version > minor)) ||
|
||||
((glib_major_version == major) && (glib_minor_version == minor) && (glib_micro_version >= micro)))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("\n*** An old version of GLIB (%d.%d.%d) was found.\n",
|
||||
glib_major_version, glib_minor_version, glib_micro_version);
|
||||
printf("*** You need a version of GLIB newer than %d.%d.%d. The latest version of\n",
|
||||
major, minor, micro);
|
||||
printf("*** GLIB is always available from ftp://ftp.gtk.org.\n");
|
||||
printf("***\n");
|
||||
printf("*** If you have already installed a sufficiently new version, this error\n");
|
||||
printf("*** probably means that the wrong copy of the glib-config shell script is\n");
|
||||
printf("*** being found. The easiest way to fix this is to remove the old version\n");
|
||||
printf("*** of GLIB, but you can also set the GLIB_CONFIG environment to point to the\n");
|
||||
printf("*** correct copy of glib-config. (In this case, you will have to\n");
|
||||
printf("*** modify your LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf\n");
|
||||
printf("*** so that the correct libraries are found at run-time))\n");
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
],, no_glib=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
|
||||
CFLAGS="$ac_save_CFLAGS"
|
||||
LIBS="$ac_save_LIBS"
|
||||
fi
|
||||
fi
|
||||
if test "x$no_glib" = x ; then
|
||||
AC_MSG_RESULT(yes)
|
||||
ifelse([$2], , :, [$2])
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
if test "$GLIB_CONFIG" = "no" ; then
|
||||
echo "*** The glib-config script installed by GLIB could not be found"
|
||||
echo "*** If GLIB was installed in PREFIX, make sure PREFIX/bin is in"
|
||||
echo "*** your path, or set the GLIB_CONFIG environment variable to the"
|
||||
echo "*** full path to glib-config."
|
||||
else
|
||||
if test -f conf.glibtest ; then
|
||||
:
|
||||
else
|
||||
echo "*** Could not run GLIB test program, checking why..."
|
||||
CFLAGS="$CFLAGS $GLIB_CFLAGS"
|
||||
LIBS="$LIBS $GLIB_LIBS"
|
||||
AC_TRY_LINK([
|
||||
#include <glib.h>
|
||||
#include <stdio.h>
|
||||
], [ return ((glib_major_version) || (glib_minor_version) || (glib_micro_version)); ],
|
||||
[ echo "*** The test program compiled, but did not run. This usually means"
|
||||
echo "*** that the run-time linker is not finding GLIB or finding the wrong"
|
||||
echo "*** version of GLIB. If it is not finding GLIB, you'll need to set your"
|
||||
echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
|
||||
echo "*** to the installed location Also, make sure you have run ldconfig if that"
|
||||
echo "*** is required on your system"
|
||||
echo "***"
|
||||
echo "*** If you have an old version installed, it is best to remove it, although"
|
||||
echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
|
||||
echo "***"
|
||||
echo "*** If you have a RedHat 5.0 system, you should remove the GTK package that"
|
||||
echo "*** came with the system with the command"
|
||||
echo "***"
|
||||
echo "*** rpm --erase --nodeps gtk gtk-devel" ],
|
||||
[ echo "*** The test program failed to compile or link. See the file config.log for the"
|
||||
echo "*** exact error that occured. This usually means GLIB was incorrectly installed"
|
||||
echo "*** or that you have moved GLIB since it was installed. In the latter case, you"
|
||||
echo "*** may want to edit the glib-config script: $GLIB_CONFIG" ])
|
||||
CFLAGS="$ac_save_CFLAGS"
|
||||
LIBS="$ac_save_LIBS"
|
||||
fi
|
||||
fi
|
||||
GLIB_CFLAGS=""
|
||||
GLIB_LIBS=""
|
||||
ifelse([$3], , :, [$3])
|
||||
fi
|
||||
AC_SUBST(GLIB_CFLAGS)
|
||||
AC_SUBST(GLIB_LIBS)
|
||||
rm -f conf.glibtest
|
||||
])
|
|
@ -0,0 +1,119 @@
|
|||
#!/bin/sh
|
||||
|
||||
#
|
||||
# install - install a program, script, or datafile
|
||||
# This comes from X11R5; it is not part of GNU.
|
||||
#
|
||||
# $XConsortium: install.sh,v 1.2 89/12/18 14:47:22 jim Exp $
|
||||
#
|
||||
# This script is compatible with the BSD install script, but was written
|
||||
# from scratch.
|
||||
#
|
||||
|
||||
|
||||
# set DOITPROG to echo to test this script
|
||||
|
||||
# Don't use :- since 4.3BSD and earlier shells don't like it.
|
||||
doit="${DOITPROG-}"
|
||||
|
||||
|
||||
# put in absolute paths if you don't have them in your path; or use env. vars.
|
||||
|
||||
mvprog="${MVPROG-mv}"
|
||||
cpprog="${CPPROG-cp}"
|
||||
chmodprog="${CHMODPROG-chmod}"
|
||||
chownprog="${CHOWNPROG-chown}"
|
||||
chgrpprog="${CHGRPPROG-chgrp}"
|
||||
stripprog="${STRIPPROG-strip}"
|
||||
rmprog="${RMPROG-rm}"
|
||||
|
||||
instcmd="$mvprog"
|
||||
chmodcmd=""
|
||||
chowncmd=""
|
||||
chgrpcmd=""
|
||||
stripcmd=""
|
||||
rmcmd="$rmprog -f"
|
||||
mvcmd="$mvprog"
|
||||
src=""
|
||||
dst=""
|
||||
|
||||
while [ x"$1" != x ]; do
|
||||
case $1 in
|
||||
-c) instcmd="$cpprog"
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-m) chmodcmd="$chmodprog $2"
|
||||
shift
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-o) chowncmd="$chownprog $2"
|
||||
shift
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-g) chgrpcmd="$chgrpprog $2"
|
||||
shift
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-s) stripcmd="$stripprog"
|
||||
shift
|
||||
continue;;
|
||||
|
||||
*) if [ x"$src" = x ]
|
||||
then
|
||||
src=$1
|
||||
else
|
||||
dst=$1
|
||||
fi
|
||||
shift
|
||||
continue;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ x"$src" = x ]
|
||||
then
|
||||
echo "install: no input file specified"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ x"$dst" = x ]
|
||||
then
|
||||
echo "install: no destination specified"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
# If destination is a directory, append the input filename; if your system
|
||||
# does not like double slashes in filenames, you may need to add some logic
|
||||
|
||||
if [ -d $dst ]
|
||||
then
|
||||
dst="$dst"/`basename $src`
|
||||
fi
|
||||
|
||||
# Make a temp file name in the proper directory.
|
||||
|
||||
dstdir=`dirname $dst`
|
||||
dsttmp=$dstdir/#inst.$$#
|
||||
|
||||
# Move or copy the file name to the temp name
|
||||
|
||||
$doit $instcmd $src $dsttmp
|
||||
|
||||
# and set any options; do chmod last to preserve setuid bits
|
||||
|
||||
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; fi
|
||||
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; fi
|
||||
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; fi
|
||||
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; fi
|
||||
|
||||
# Now rename the file to the real destination.
|
||||
|
||||
$doit $rmcmd $dst
|
||||
$doit $mvcmd $dsttmp $dst
|
||||
|
||||
|
||||
exit 0
|
|
@ -0,0 +1,315 @@
|
|||
#! /usr/bin/env perl
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla 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/MPL/
|
||||
#
|
||||
# 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 the Initial Developer are Copyright (C) 1999
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
# make-makefiles - Quickly create Makefiles for subdirectories.
|
||||
# Also, creates any needed subdirectories.
|
||||
#
|
||||
# usage: make-makefiles [ -t <topsrcdir> -p <print_topsrcdir> -d <depth> ] [ <subdir> | <subdir>/Makefile ] ...
|
||||
|
||||
# Send comments, improvements, bugs to Steve Lamm (slamm@netscape.com).
|
||||
|
||||
#$debug = 1;
|
||||
|
||||
# Determine various tree path variables
|
||||
#
|
||||
($topsrcdir, $ptopsrcdir, $depth, @makefiles) = parse_arguments(@ARGV);
|
||||
|
||||
$object_fullpath = `pwd`;
|
||||
chdir $depth;
|
||||
$object_root = `pwd`;
|
||||
chomp $object_fullpath;
|
||||
chomp $object_root;
|
||||
|
||||
# $source_subdir is the path from the object root to where
|
||||
# 'make-makefile' was called. For example, if make-makefile was
|
||||
# called from "mozilla/gfx/src", then $source_subdir would be
|
||||
# "gfx/src/".
|
||||
$source_subdir = "$object_fullpath/";
|
||||
my $quoted_object_root = quotemeta($object_root);
|
||||
$source_subdir =~ s|^$quoted_object_root/||;
|
||||
|
||||
# Prefix makefiles with $source_subdir so that paths
|
||||
# will be relative to the top of the object tree.
|
||||
#
|
||||
for $makefile (@makefiles) {
|
||||
$makefile = "$source_subdir$makefile";
|
||||
}
|
||||
|
||||
create_directories(@makefiles);
|
||||
|
||||
# Find the path to the source directory based on how 'make-makefile'
|
||||
# was invoked. The path is either relative to the object directory
|
||||
# or an absolute path.
|
||||
$given_srcdir = find_srcdir($topsrcdir, $depth);
|
||||
$pgiven_srcdir = find_srcdir($ptopsrcdir, $depth);
|
||||
|
||||
if ($debug) {
|
||||
warn "object_fullpath = $object_fullpath\n";
|
||||
warn "object_root = $object_root\n";
|
||||
warn "source_subdir = $source_subdir\n";
|
||||
warn "makefiles = @makefiles\n";
|
||||
warn "given_srcdir = $given_srcdir\n";
|
||||
}
|
||||
|
||||
@unhandled = update_makefiles($given_srcdir, $pgiven_srcdir, @makefiles);
|
||||
|
||||
run_config_status(@unhandled);
|
||||
|
||||
# end of Main
|
||||
############################################################
|
||||
|
||||
sub dirname {
|
||||
return $_[0] =~ /(.*)\/.*/ ? "$1" : '.';
|
||||
}
|
||||
|
||||
# find_depth: Pull the value of DEPTH out of a Makefile (or Makefile.in)
|
||||
sub find_depth {
|
||||
my $depth = '';
|
||||
open(MAKEFILE, "<$_[0]") || die "Unable to open $_[0]: $!\n";
|
||||
while (<MAKEFILE>) {
|
||||
next unless /^DEPTH\s*=\s*(\..*)/;
|
||||
$depth = $1;
|
||||
last;
|
||||
}
|
||||
close MAKEFILE;
|
||||
return $depth;
|
||||
}
|
||||
|
||||
sub parse_arguments {
|
||||
my @args = @_;
|
||||
my $depth = '';
|
||||
my $topsrcdir = '';
|
||||
my $ptopsrcdir;
|
||||
my @makefiles = ();
|
||||
|
||||
while (1) {
|
||||
if ($args[0] eq '-d') {
|
||||
$depth = $args[1];
|
||||
shift @args;
|
||||
shift @args;
|
||||
} elsif ($args[0] eq '-t') {
|
||||
$topsrcdir = $args[1];
|
||||
shift @args;
|
||||
shift @args;
|
||||
} elsif ($args[0] eq '-p') {
|
||||
$ptopsrcdir = $args[1];
|
||||
shift @args;
|
||||
shift @args;
|
||||
} else {
|
||||
last;
|
||||
}
|
||||
}
|
||||
|
||||
if ($topsrcdir eq '') {
|
||||
$topsrcdir = $0; # Figure out topsrcdir based on program name.
|
||||
$topsrcdir =~ s|/?build/autoconf/.*$||;
|
||||
}
|
||||
if ($ptopsrcdir eq '') {
|
||||
$ptopsrcdir = $topsrcdir;
|
||||
}
|
||||
if ($depth eq '') {
|
||||
# Use $(DEPTH) in the Makefile or Makefile.in to determine the depth
|
||||
if (-e "Makefile.in") {
|
||||
$depth = find_depth("Makefile.in");
|
||||
} elsif (-e "Makefile") {
|
||||
$depth = find_depth("Makefile");
|
||||
} elsif (-e "../Makefile") {
|
||||
$depth = "../".find_depth("../Makefile");
|
||||
$depth =~ s/\/\.$//;
|
||||
} else {
|
||||
warn "Unable to determine depth (e.g. ../..) to root of objdir tree.\n";
|
||||
die "No Makefile(.in) present. Try running with '-d <depth>'\n";
|
||||
}
|
||||
}
|
||||
|
||||
# Build the list of makefiles to generate
|
||||
#
|
||||
@makefiles = ();
|
||||
my $makefile;
|
||||
foreach $makefile (@args) {
|
||||
$makefile =~ s/\.in$//;
|
||||
$makefile =~ s/\/$//;
|
||||
$makefile =~ /Makefile$/ or $makefile .= "/Makefile";
|
||||
push @makefiles, "$makefile";
|
||||
}
|
||||
@makefiles = "Makefile" unless @args;
|
||||
|
||||
return ($topsrcdir, $ptopsrcdir, $depth, @makefiles);
|
||||
}
|
||||
|
||||
|
||||
# Create all the directories at once.
|
||||
# This can be much faster than calling mkdir() for each one.
|
||||
sub create_directories {
|
||||
my @makefiles = @_;
|
||||
my @dirs = ();
|
||||
my $ac_file;
|
||||
foreach $ac_file (@makefiles) {
|
||||
push @dirs, dirname($ac_file);
|
||||
}
|
||||
# Call mkdir with the directories sorted by subdir count (how many /'s)
|
||||
system "mkdir -p ". join(' ', map("\"$_\"", @dirs)) if @dirs;
|
||||
}
|
||||
|
||||
# Find the top of the source directory
|
||||
# (Assuming that the executable is in $top_srcdir/build/autoconf)
|
||||
sub find_srcdir {
|
||||
my ($ac_given_srcdir, $depth) = @_;
|
||||
|
||||
if ($debug) {
|
||||
print "ac_given_srcdir = $ac_given_srcdir\n";
|
||||
print "depth = $depth\n";
|
||||
}
|
||||
if ($ac_given_srcdir =~ /^\./ and $depth ne '.') {
|
||||
my $quoted_depth = quotemeta($depth);
|
||||
$ac_given_srcdir =~ s|^$quoted_depth/?||;
|
||||
}
|
||||
if ($debug) {
|
||||
print "ac_given_srcdir = $ac_given_srcdir\n";
|
||||
}
|
||||
$ac_given_srcdir = '.' if $ac_given_srcdir eq '';
|
||||
return $ac_given_srcdir;
|
||||
}
|
||||
|
||||
# Output the makefiles.
|
||||
#
|
||||
sub update_makefiles {
|
||||
my ($ac_given_srcdir, $pac_given_srcdir, @makefiles) = @_;
|
||||
my @unhandled=();
|
||||
|
||||
my $ac_file;
|
||||
foreach $ac_file (@makefiles) {
|
||||
my $ac_file_in = "$ac_given_srcdir/${ac_file}.in";
|
||||
my $ac_dir = dirname($ac_file);
|
||||
my $ac_dots = '';
|
||||
my $ac_dir_suffix = '';
|
||||
my $srcdir = '.';
|
||||
my $top_srcdir = '.';
|
||||
|
||||
# Determine $srcdir and $top_srcdir
|
||||
#
|
||||
if ($ac_dir ne '.') {
|
||||
$ac_dir_suffix = "/$ac_dir";
|
||||
$ac_dir_suffix =~ s%^/\./%/%;
|
||||
$ac_dots = $ac_dir_suffix;
|
||||
# Remove .. components from the provided dir suffix, and
|
||||
# also the forward path components they were reversing.
|
||||
my $backtracks = $ac_dots =~ s%\.\.(/|$)%%g;
|
||||
while ($backtracks--) {
|
||||
$ac_dots =~ s%/[^/]*%%;
|
||||
}
|
||||
$ac_dots =~ s%/[^/]*%../%g;
|
||||
}
|
||||
if ($ac_given_srcdir eq '.') {
|
||||
if ($ac_dots ne '') {
|
||||
$top_srcdir = $ac_dots;
|
||||
$top_srcdir =~ s%/$%%;
|
||||
}
|
||||
} elsif ($pac_given_srcdir =~ m%^/% or $pac_given_srcdir =~ m%^.:/%) {
|
||||
$srcdir = "$pac_given_srcdir$ac_dir_suffix";
|
||||
$top_srcdir = "$pac_given_srcdir";
|
||||
} else {
|
||||
if ($debug) {
|
||||
print "ac_dots = $ac_dots\n";
|
||||
print "ac_dir_suffix = $ac_dir_suffix\n";
|
||||
}
|
||||
$srcdir = "$ac_dots$ac_given_srcdir$ac_dir_suffix";
|
||||
$top_srcdir = "$ac_dots$ac_given_srcdir";
|
||||
}
|
||||
|
||||
if ($debug) {
|
||||
print "ac_dir = $ac_dir\n";
|
||||
print "ac_file = $ac_file\n";
|
||||
print "ac_file_in = $ac_file_in\n";
|
||||
print "srcdir = $srcdir\n";
|
||||
print "top_srcdir = $top_srcdir\n";
|
||||
print "cwd = " . `pwd` . "\n";
|
||||
}
|
||||
|
||||
# Copy the file and make substitutions.
|
||||
# @srcdir@ -> value of $srcdir
|
||||
# @top_srcdir@ -> value of $top_srcdir
|
||||
#
|
||||
if (-e $ac_file) {
|
||||
next if -M _ < -M $ac_file_in; # Next if Makefile is up-to-date.
|
||||
warn "updating $ac_file\n";
|
||||
} else {
|
||||
warn "creating $ac_file\n";
|
||||
}
|
||||
|
||||
open INFILE, "<$ac_file_in" or do {
|
||||
warn "$0: Cannot read $ac_file_in: No such file or directory\n";
|
||||
next;
|
||||
};
|
||||
open OUTFILE, ">$ac_file" or do {
|
||||
warn "$0: Unable to create $ac_file\n";
|
||||
next;
|
||||
};
|
||||
|
||||
while (<INFILE>) {
|
||||
#if (/\@[_a-zA-Z]*\@.*\@[_a-zA-Z]*\@/) {
|
||||
# #warn "Two defines on a line:$ac_file:$.:$_";
|
||||
# push @unhandled, $ac_file;
|
||||
# last;
|
||||
#}
|
||||
|
||||
s/\@srcdir\@/$srcdir/g;
|
||||
s/\@top_srcdir\@/$top_srcdir/g;
|
||||
|
||||
if (/\@[_a-zA-Z]*\@/) {
|
||||
#warn "Unknown variable:$ac_file:$.:$_";
|
||||
push @unhandled, $ac_file;
|
||||
last;
|
||||
}
|
||||
print OUTFILE;
|
||||
}
|
||||
close INFILE;
|
||||
close OUTFILE;
|
||||
}
|
||||
return @unhandled;
|
||||
}
|
||||
|
||||
sub run_config_status {
|
||||
my @unhandled = @_;
|
||||
|
||||
# Run config.status with any unhandled files.
|
||||
#
|
||||
if (@unhandled) {
|
||||
$ENV{CONFIG_FILES}= join ' ', @unhandled;
|
||||
system "./config.status";
|
||||
}
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
# -*- Mode: makefile -*-
|
||||
#!/bin/sh
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
|
@ -13,8 +13,7 @@
|
|||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is Mozilla Communicator client code, released
|
||||
# March 31, 1998.
|
||||
# The Original Code is mozilla.org code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
|
@ -24,8 +23,8 @@
|
|||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
|
@ -38,50 +37,65 @@
|
|||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config stuff for SunOS5.5
|
||||
# This script will match a dir with a set of dirs.
|
||||
#
|
||||
# Usage: match-dir.sh match [dir1 dir2 ... dirn]
|
||||
#
|
||||
# Send comments, improvements, bugs to ramiro@netscape.com
|
||||
#
|
||||
|
||||
AS = /usr/ccs/bin/as
|
||||
ifndef NS_USE_NATIVE
|
||||
CC = gcc
|
||||
CCC = g++
|
||||
CFLAGS += -Wall -Wno-format
|
||||
if [ -f Makefile ]; then
|
||||
MAKEFILE="Makefile"
|
||||
else
|
||||
CC = cc
|
||||
CCC = CC
|
||||
endif
|
||||
if [ -f Makefile.in ]; then
|
||||
MAKEFILE="Makefile.in"
|
||||
else
|
||||
echo
|
||||
echo "There ain't no 'Makefile' or 'Makefile.in' over here: $pwd, dude."
|
||||
echo
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
RANLIB = echo
|
||||
# Use DEPTH in the Makefile.in to determine the depth
|
||||
depth=`grep -w DEPTH ${MAKEFILE} | grep "\.\." | awk -F"=" '{ print $2; }'`
|
||||
cwd=`pwd`
|
||||
|
||||
#.c.o:
|
||||
# $(CC) -c -MD $*.d $(CFLAGS) $<
|
||||
# Determine the depth count
|
||||
n=`echo $depth | tr '/' ' ' | wc -w`
|
||||
|
||||
CPU_ARCH = sparc
|
||||
GFX_ARCH = x
|
||||
cd $depth
|
||||
objdir=`pwd`
|
||||
|
||||
OS_CFLAGS = -DXP_UNIX -DSVR4 -DSYSV -DSOLARIS -DHAVE_LOCALTIME_R
|
||||
OS_LIBS = -lsocket -lnsl -ldl
|
||||
path=`echo $cwd | sed "s|^${objdir}/||"`
|
||||
|
||||
ASFLAGS += -P -L -K PIC -D_ASM -D__STDC__=0
|
||||
match=$path
|
||||
|
||||
HAVE_PURIFY = 1
|
||||
for i in $*
|
||||
do
|
||||
# echo "Looking for $match in $i"
|
||||
|
||||
NOSUCHFILE = /solaris-rm-f-sucks
|
||||
echo $i | grep -q -x $match
|
||||
|
||||
ifeq ($(OS_CPUARCH),sun4u) # ultra sparc?
|
||||
ifeq ($(CC),gcc) # using gcc?
|
||||
ifndef JS_NO_ULTRA # do we want ultra?
|
||||
ifdef JS_THREADSAFE # only in thread-safe mode
|
||||
DEFINES += -DULTRA_SPARC
|
||||
DEFINES += -Wa,-xarch=v8plus,-DULTRA_SPARC
|
||||
else
|
||||
ASFLAGS += -xarch=v8plus -DULTRA_SPARC
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
if [ $? -eq 0 ]
|
||||
then
|
||||
echo "1"
|
||||
|
||||
MKSHLIB = $(LD) -G
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Use the editline library to provide line-editing support.
|
||||
JS_EDITLINE = 1
|
||||
# echo "Looking for $i in $match"
|
||||
|
||||
echo $match | grep -q $i
|
||||
|
||||
if [ $? -eq 0 ]
|
||||
then
|
||||
echo "1"
|
||||
|
||||
exit 0
|
||||
fi
|
||||
done
|
||||
|
||||
echo "0"
|
||||
|
||||
exit 0
|
|
@ -0,0 +1,82 @@
|
|||
# -*- tab-width: 4; -*-
|
||||
# Configure paths for NSPR
|
||||
# Public domain - Chris Seawood <cls@seawood.org> 2001-04-05
|
||||
# Based upon gtk.m4 (also PD) by Owen Taylor
|
||||
|
||||
dnl AM_PATH_NSPR([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
|
||||
dnl Test for NSPR, and define NSPR_CFLAGS and NSPR_LIBS
|
||||
AC_DEFUN([AM_PATH_NSPR],
|
||||
[dnl
|
||||
|
||||
AC_ARG_WITH(nspr-prefix,
|
||||
[ --with-nspr-prefix=PFX Prefix where NSPR is installed],
|
||||
nspr_config_prefix="$withval",
|
||||
nspr_config_prefix="")
|
||||
|
||||
AC_ARG_WITH(nspr-exec-prefix,
|
||||
[ --with-nspr-exec-prefix=PFX
|
||||
Exec prefix where NSPR is installed],
|
||||
nspr_config_exec_prefix="$withval",
|
||||
nspr_config_exec_prefix="")
|
||||
|
||||
if test -n "$nspr_config_exec_prefix"; then
|
||||
nspr_config_args="$nspr_config_args --exec-prefix=$nspr_config_exec_prefix"
|
||||
if test -z "$NSPR_CONFIG"; then
|
||||
NSPR_CONFIG=$nspr_config_exec_prefix/bin/nspr-config
|
||||
fi
|
||||
fi
|
||||
if test -n "$nspr_config_prefix"; then
|
||||
nspr_config_args="$nspr_config_args --prefix=$nspr_config_prefix"
|
||||
if test -z "$NSPR_CONFIG"; then
|
||||
NSPR_CONFIG=$nspr_config_prefix/bin/nspr-config
|
||||
fi
|
||||
fi
|
||||
|
||||
unset ac_cv_path_NSPR_CONFIG
|
||||
AC_PATH_PROG(NSPR_CONFIG, nspr-config, no)
|
||||
min_nspr_version=ifelse([$1], ,4.0.0,$1)
|
||||
AC_MSG_CHECKING(for NSPR - version >= $min_nspr_version)
|
||||
|
||||
no_nspr=""
|
||||
if test "$NSPR_CONFIG" = "no"; then
|
||||
no_nspr="yes"
|
||||
else
|
||||
NSPR_CFLAGS=`$NSPR_CONFIG $nspr_config_args --cflags`
|
||||
NSPR_LIBS=`$NSPR_CONFIG $nspr_config_args --libs`
|
||||
|
||||
nspr_config_major_version=`$NSPR_CONFIG $nspr_config_args --version | \
|
||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
|
||||
nspr_config_minor_version=`$NSPR_CONFIG $nspr_config_args --version | \
|
||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
|
||||
nspr_config_micro_version=`$NSPR_CONFIG $nspr_config_args --version | \
|
||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
|
||||
min_nspr_major_version=`echo $min_nspr_version | \
|
||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
|
||||
min_nspr_minor_version=`echo $min_nspr_version | \
|
||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
|
||||
min_nspr_micro_version=`echo $min_nspr_version | \
|
||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
|
||||
if test "$nspr_config_major_version" -ne "$min_nspr_major_version"; then
|
||||
no_nspr="yes"
|
||||
elif test "$nspr_config_major_version" -eq "$min_nspr_major_version" &&
|
||||
test "$nspr_config_minor_version" -lt "$min_nspr_minor_version"; then
|
||||
no_nspr="yes"
|
||||
elif test "$nspr_config_major_version" -eq "$min_nspr_major_version" &&
|
||||
test "$nspr_config_minor_version" -eq "$min_nspr_minor_version" &&
|
||||
test "$nspr_config_micro_version" -lt "$min_nspr_micro_version"; then
|
||||
no_nspr="yes"
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -z "$no_nspr"; then
|
||||
AC_MSG_RESULT(yes)
|
||||
ifelse([$2], , :, [$2])
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
fi
|
||||
|
||||
|
||||
AC_SUBST(NSPR_CFLAGS)
|
||||
AC_SUBST(NSPR_LIBS)
|
||||
|
||||
])
|
|
@ -0,0 +1,59 @@
|
|||
# PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not)
|
||||
# defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page
|
||||
# also defines GSTUFF_PKG_ERRORS on error
|
||||
AC_DEFUN([PKG_CHECK_MODULES],
|
||||
[succeeded=no
|
||||
|
||||
if test -z "$PKG_CONFIG"; then
|
||||
AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
|
||||
fi
|
||||
|
||||
if test "$PKG_CONFIG" = "no" ; then
|
||||
echo "*** The pkg-config script could not be found. Make sure it is"
|
||||
echo "*** in your path, or set the PKG_CONFIG environment variable"
|
||||
echo "*** to the full path to pkg-config."
|
||||
echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
|
||||
else
|
||||
PKG_CONFIG_MIN_VERSION=0.9.0
|
||||
if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
|
||||
AC_MSG_CHECKING(for $2)
|
||||
|
||||
if $PKG_CONFIG --exists "$2" ; then
|
||||
AC_MSG_RESULT(yes)
|
||||
succeeded=yes
|
||||
|
||||
AC_MSG_CHECKING($1_CFLAGS)
|
||||
$1_CFLAGS=`$PKG_CONFIG --cflags "$2"`
|
||||
AC_MSG_RESULT($$1_CFLAGS)
|
||||
|
||||
AC_MSG_CHECKING($1_LIBS)
|
||||
## Remove evil flags like -Wl,--export-dynamic
|
||||
$1_LIBS="`$PKG_CONFIG --libs \"$2\" |sed s/-Wl,--export-dynamic//g`"
|
||||
AC_MSG_RESULT($$1_LIBS)
|
||||
else
|
||||
$1_CFLAGS=""
|
||||
$1_LIBS=""
|
||||
## If we have a custom action on failure, don't print errors, but
|
||||
## do set a variable so people can do so.
|
||||
$1_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
|
||||
ifelse([$4], ,echo $$1_PKG_ERRORS,)
|
||||
fi
|
||||
|
||||
AC_SUBST($1_CFLAGS)
|
||||
AC_SUBST($1_LIBS)
|
||||
else
|
||||
echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
|
||||
echo "*** See http://www.freedesktop.org/software/pkgconfig"
|
||||
fi
|
||||
fi
|
||||
|
||||
if test $succeeded = yes; then
|
||||
ifelse([$3], , :, [$3])
|
||||
else
|
||||
if test "$COMPILE_ENVIRONMENT"; then
|
||||
ifelse([$4], , AC_MSG_ERROR([Library requirements ($2) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.]), [$4])
|
||||
fi
|
||||
fi
|
||||
])
|
||||
|
||||
|
|
@ -0,0 +1,118 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla 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/MPL/
|
||||
#
|
||||
# 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 the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# This script will generate a single Makefile from a Makefile.in using
|
||||
# the config.status script.
|
||||
#
|
||||
# The config.status script is generated the first time you run
|
||||
# ./configure.
|
||||
#
|
||||
#
|
||||
# Usage: update-makefile.sh
|
||||
#
|
||||
# Send comments, improvements, bugs to ramiro@netscape.com
|
||||
#
|
||||
|
||||
update_makefile_usage() {
|
||||
_progname=`expr //$0 : '.*/\(.*\)'`
|
||||
cat <<END_USAGE 2>&1
|
||||
|
||||
Usage: $_progname [-h -u] [<keyword>]
|
||||
-d <dir> Subdir to update
|
||||
-h Print usage
|
||||
END_USAGE
|
||||
}
|
||||
|
||||
# Parse the command-line options
|
||||
#
|
||||
subdir=
|
||||
while getopts d:h OPT; do
|
||||
case $OPT in
|
||||
d) # Make sure "subdir" has exactly one ending slash
|
||||
subdir=`echo $OPTARG | sed 's/\/$//;'`"/" ;;
|
||||
\?|h) update_makefile_usage
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
|
||||
# find_depth: Pull the value of DEPTH out of Makefile (or Makefile.in)
|
||||
find_depth() {
|
||||
egrep '^DEPTH[ ]*=[ ]*\.' $1 | awk -F= '{ print $2; }'
|
||||
}
|
||||
|
||||
# The Makefile to create
|
||||
target_makefile=`pwd`"/${subdir}Makefile"
|
||||
|
||||
# Use $(DEPTH) in the Makefile or Makefile.in to determine the depth
|
||||
if [ -f Makefile.in ]
|
||||
then
|
||||
depth=`find_depth Makefile.in`
|
||||
elif [ -f Makefile ]
|
||||
then
|
||||
depth=`find_depth Makefile`
|
||||
elif [ -f ../Makefile ]
|
||||
then
|
||||
depth="../"`find_depth Makefile`
|
||||
else
|
||||
echo
|
||||
echo "There ain't no 'Makefile' or 'Makefile.in' over here: $pwd"
|
||||
echo
|
||||
exit
|
||||
fi
|
||||
|
||||
# 'cd' to the root of the tree to run "config.status" there
|
||||
cd $depth
|
||||
|
||||
# Strip the tree root off the Makefile's path
|
||||
#
|
||||
root_path=`pwd`
|
||||
target_makefile=`expr $target_makefile : $root_path'/\(.*\)'`
|
||||
|
||||
# Make sure config.status exists
|
||||
#
|
||||
if [ -f config.status ]
|
||||
then
|
||||
CONFIG_FILES=$target_makefile ./config.status
|
||||
else
|
||||
echo
|
||||
echo "There ain't no 'config.status' over here: $pwd"
|
||||
echo
|
||||
fi
|
|
@ -0,0 +1,75 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# Stupid wrapper to avoid win32 dospath/cygdrive issues
|
||||
# Try not to spawn programs from within this file. If the stuff in here looks royally
|
||||
# confusing, see bug: http://bugzilla.mozilla.org/show_bug.cgi?id=206643
|
||||
# and look at the older versions of this file that are easier to read, but
|
||||
# do basically the same thing
|
||||
#
|
||||
|
||||
prog=$1
|
||||
shift
|
||||
if test -z "$prog"; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# If $CYGDRIVE_MOUNT was not set in configure, give $mountpoint the results of mount -p
|
||||
mountpoint=$CYGDRIVE_MOUNT
|
||||
if test -z "$mountpoint"; then
|
||||
mountpoint=`mount -p`
|
||||
if test -z "$mountpoint"; then
|
||||
print "Cannot determine cygwin mount points. Exiting"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# Delete everything but "/cygdrive" (or other mountpoint) from mount=`mount -p`
|
||||
mountpoint=${mountpoint#*/}
|
||||
mountpoint=/${mountpoint%%[!A-Za-z0-9_]*}
|
||||
mountpoint=${mountpoint%/}
|
||||
|
||||
args=""
|
||||
up=""
|
||||
if test "${prog}" = "-up"; then
|
||||
up=1
|
||||
prog=${1}
|
||||
shift
|
||||
fi
|
||||
|
||||
process=1
|
||||
|
||||
# Convert the mountpoint in parameters to Win32 filenames
|
||||
# For instance: /cygdrive/c/foo -> c:/foo
|
||||
for i in "${@}"
|
||||
do
|
||||
if test "${i}" = "-wrap"; then
|
||||
process=1
|
||||
else
|
||||
if test "${i}" = "-nowrap"; then
|
||||
process=
|
||||
else
|
||||
if test -n "${process}"; then
|
||||
if test -n "${up}"; then
|
||||
pathname=${i#-I[a-zA-Z]:/}
|
||||
if ! test "${pathname}" = "${i}"; then
|
||||
no_i=${i#-I}
|
||||
driveletter=${no_i%%:*}
|
||||
i=-I${mountpoint}/${driveletter}/${pathname}
|
||||
fi
|
||||
else
|
||||
eval 'leader=${i%%'${mountpoint}'/[a-zA-Z]/*}'
|
||||
if ! test "${leader}" = "${i}"; then
|
||||
eval 'pathname=${i#'${leader}${mountpoint}'/[a-zA-Z]/}'
|
||||
eval 'no_mountpoint=${i#'${leader}${mountpoint}'/}'
|
||||
driveletter=${no_mountpoint%%/*}
|
||||
i=${leader}${driveletter}:/${pathname}
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
args="${args} ${i}"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
exec $prog $args
|
|
@ -1,4 +1,4 @@
|
|||
# -*- Mode: makefile -*-
|
||||
#!/bin/sh
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
|
@ -13,8 +13,7 @@
|
|||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is Mozilla Communicator client code, released
|
||||
# March 31, 1998.
|
||||
# The Original Code is mozilla.org code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
|
@ -22,11 +21,10 @@
|
|||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
# Steve Zellers (zellers@apple.com)
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
|
@ -39,47 +37,75 @@
|
|||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config for Mac OS X as of PR3
|
||||
# Just ripped from Linux config
|
||||
# Fix brain-damaged compilers that don't understand -o and -c together
|
||||
#
|
||||
CC=`echo $1 | sed -e "s|'||g" -e 's|"||g'`
|
||||
shift
|
||||
DASH_C=0
|
||||
DASH_O=0
|
||||
DUMMY="XxxXxxX"
|
||||
GET_OBJECT=0
|
||||
OBJ="${DUMMY}"
|
||||
OBJECT="${DUMMY}"
|
||||
|
||||
CC = gcc
|
||||
CCC = g++
|
||||
CFLAGS += -Wall -Wno-format -MMD
|
||||
OS_CFLAGS = -DXP_UNIX -DSVR4 -DSYSV -D_BSD_SOURCE -DPOSIX_SOURCE -DDARWIN
|
||||
for i in $*
|
||||
do
|
||||
[ "${CHECK_O}" = yes ] && {
|
||||
case $i in
|
||||
./*/*.o) OBJECT="$i"
|
||||
OPTS="${OPTS} -o"
|
||||
DASH_O=1
|
||||
;;
|
||||
./*.o) OBJECT="`basename $i`"
|
||||
i=""
|
||||
DASH_O=1
|
||||
;;
|
||||
*.o) if [ $i = `basename $i` ]
|
||||
then
|
||||
OBJECT="$i"
|
||||
i=""
|
||||
else
|
||||
OPTS="${OPTS} -o"
|
||||
fi
|
||||
DASH_O=1
|
||||
;;
|
||||
*) OPTS="${OPTS} -o $i"
|
||||
DASH_O=1
|
||||
i=""
|
||||
;;
|
||||
esac
|
||||
CHECK_O=no
|
||||
}
|
||||
case $i in
|
||||
-c) DASH_C=1
|
||||
OPTS="${OPTS} -c"
|
||||
;;
|
||||
-o) CHECK_O=yes
|
||||
;;
|
||||
*.c) C_SRC=$i
|
||||
OPTS="${OPTS} $i"
|
||||
# cc always creates the .o from the .c name
|
||||
OBJ=`basename $C_SRC .c`.o
|
||||
;;
|
||||
*.s) S_SRC=$i
|
||||
OPTS="${OPTS} $i"
|
||||
# or the .o from the .s name
|
||||
OBJ=`basename $S_SRC .s`.o
|
||||
;;
|
||||
*.o) OBJECT=$i
|
||||
OPTS="${OPTS} $i"
|
||||
;;
|
||||
*) OPTS="${OPTS} $i"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
RANLIB = ranlib
|
||||
MKSHLIB = $(CCC) -dynamiclib $(XMKSHLIBOPTS) -framework System
|
||||
${CC} ${OPTS} || exit $?
|
||||
|
||||
SO_SUFFIX = dylib
|
||||
# if there was no -c and -o we're done
|
||||
[ $DASH_C = 1 -a $DASH_O = 1 ] || exit 0
|
||||
|
||||
#.c.o:
|
||||
# $(CC) -c -MD $*.d $(CFLAGS) $<
|
||||
|
||||
CPU_ARCH = $(shell uname -m)
|
||||
ifeq (86,$(findstring 86,$(CPU_ARCH)))
|
||||
CPU_ARCH = x86
|
||||
OS_CFLAGS+= -DX86_LINUX
|
||||
OS_CFLAGS += -DAVMPLUS_IA32 -DAVMPLUS_UNIX
|
||||
NANOJIT_ARCH = i386
|
||||
endif
|
||||
GFX_ARCH = x
|
||||
|
||||
OS_LIBS = -lc -framework System
|
||||
|
||||
ASFLAGS += -x assembler-with-cpp
|
||||
|
||||
ifeq ($(CPU_ARCH),alpha)
|
||||
|
||||
# Ask the C compiler on alpha linux to let us work with denormalized
|
||||
# double values, which are required by the ECMA spec.
|
||||
|
||||
OS_CFLAGS += -mieee
|
||||
endif
|
||||
|
||||
# Use the editline library to provide line-editing support.
|
||||
JS_EDITLINE = 1
|
||||
|
||||
# Don't allow Makefile.ref to use libmath
|
||||
NO_LIBM = 1
|
||||
# if $OBJ and $OBJECT are the same we're done
|
||||
[ $OBJ = $OBJECT ] && exit 0
|
||||
|
||||
[ -f $OBJ ] && mv -f $OBJ $OBJECT
|
|
@ -0,0 +1,155 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla 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/MPL/
|
||||
#
|
||||
# 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 the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Wrapper for brain-damaged compilers that don't understand -o and -c together.
|
||||
#
|
||||
CXX=`echo $1 | sed -e "s|'||g" -e 's|"||g'`
|
||||
shift
|
||||
DUMMY="XxxXxxX"
|
||||
DASH_C=0
|
||||
DASH_O=0
|
||||
GET_OBJECT=0
|
||||
C_SRC="${DUMMY}"
|
||||
CC_SRC="${DUMMY}"
|
||||
CPP_SRC="${DUMMY}"
|
||||
S_SRC="${DUMMY}"
|
||||
OBJECT="${DUMMY}"
|
||||
NEW_i="${DUMMY}"
|
||||
PLATFORM=`uname -s`
|
||||
|
||||
for i in $*
|
||||
do
|
||||
[ ${GET_OBJECT} -eq 1 ] && {
|
||||
case $i in
|
||||
./*/*.o) OBJECT="$i"
|
||||
OPTS="${OPTS} -o"
|
||||
DASH_O=1
|
||||
;;
|
||||
./*.o) OBJECT="`basename $i`"
|
||||
i=""
|
||||
DASH_O=1
|
||||
;;
|
||||
*.o) if [ $i = `basename $i` ]
|
||||
then
|
||||
i=""
|
||||
else
|
||||
OPTS="${OPTS} -o"
|
||||
DASH_O=1
|
||||
fi
|
||||
;;
|
||||
*) OPTS="${OPTS} -o $i"
|
||||
DASH_O=1
|
||||
i=""
|
||||
;;
|
||||
esac
|
||||
GET_OBJECT=0
|
||||
}
|
||||
case $i in
|
||||
-c)
|
||||
DASH_C=1
|
||||
OPTS="${OPTS} -c"
|
||||
;;
|
||||
-o)
|
||||
GET_OBJECT=1
|
||||
;;
|
||||
*.c)
|
||||
C_SRC="$i"
|
||||
OPTS="${OPTS} $i"
|
||||
# cc always creates the .o from the .c name
|
||||
OBJ=`basename ${C_SRC} .c`.o
|
||||
;;
|
||||
+.*)
|
||||
OPTS="${OPTS} $i"
|
||||
;;
|
||||
*.cpp)
|
||||
CPP_SRC="$i"
|
||||
if [ "${PLATFORM}" = "SCO_SV" ]; then
|
||||
OPTS="${OPTS} +.cpp $i"
|
||||
elif [ "${PLATFORM}" = "IRIX" ]; then
|
||||
NEW_i=`basename ${CPP_SRC} .cpp`.C
|
||||
rm -f ${NEW_i}
|
||||
cp $i ${NEW_i}
|
||||
OPTS="${OPTS} ${NEW_i}"
|
||||
else
|
||||
OPTS="${OPTS} $i"
|
||||
fi
|
||||
# cc always creates the .o from the .cpp name
|
||||
OBJ=`basename ${CPP_SRC} .cpp`.o
|
||||
;;
|
||||
*.cc)
|
||||
CC_SRC="$i"
|
||||
OPTS="${OPTS} $i"
|
||||
# cc always creates the .o from the .cc name
|
||||
OBJ=`basename ${CC_SRC} .cc`.o
|
||||
;;
|
||||
*.s)
|
||||
S_SRC="$i"
|
||||
OPTS="${OPTS} $i"
|
||||
# cc always creates the .o from the .s name
|
||||
OBJ=`basename ${S_SRC} .s`.o
|
||||
;;
|
||||
*.o) OBJECT=$i
|
||||
OPTS="${OPTS} $i"
|
||||
;;
|
||||
*) OPTS="${OPTS} $i"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
${CXX} ${OPTS} || exit $?
|
||||
rm -f ${NEW_i}
|
||||
|
||||
# Really only needed for NSPR now.
|
||||
if [ "${PLATFORM}" = "IRIX" -a "$OBJ" != "$OBJECT" ]; then
|
||||
OBJ=$OBJECT
|
||||
fi
|
||||
|
||||
# LAME!!!
|
||||
if [ -f -O ]; then
|
||||
mv -f -- -O ${OBJECT}
|
||||
fi
|
||||
|
||||
# if there was no -c and -o we're done
|
||||
[ ${DASH_C} -eq 1 -a ${DASH_O} -eq 1 ] || exit 0
|
||||
|
||||
# if $OBJ and $OBJECT are the same we're done
|
||||
[ $OBJ = $OBJECT ] && exit 0
|
||||
|
||||
[ -f $OBJ ] && mv -f $OBJ $OBJECT
|
||||
|
|
@ -0,0 +1,165 @@
|
|||
#!/usr/bin/env perl
|
||||
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla 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/MPL/
|
||||
#
|
||||
# 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 this file as it was released upon March 8, 1999.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1999
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
# mddepend.pl - Reads in dependencies generated my -MD flag. Prints list
|
||||
# of objects that need to be rebuilt. These can then be added to the
|
||||
# PHONY target. Using this script copes with the problem of header
|
||||
# files that have been removed from the build.
|
||||
#
|
||||
# Usage:
|
||||
# mddepend.pl <output_file> <dependency_files...>
|
||||
#
|
||||
# Send comments, improvements, bugs to Steve Lamm (slamm@netscape.com).
|
||||
|
||||
use strict;
|
||||
|
||||
use constant DEBUG => 0;
|
||||
|
||||
my $outfile = shift @ARGV;
|
||||
my $silent = $ENV{MAKEFLAGS} =~ /^\w*s|\s-s/;
|
||||
|
||||
my $line = '';
|
||||
my %alldeps;
|
||||
# Parse dependency files
|
||||
while (<>) {
|
||||
s/\r?\n$//; # Handle both unix and DOS line endings
|
||||
$line .= $_;
|
||||
if ($line =~ /\\$/) {
|
||||
chop $line;
|
||||
next;
|
||||
}
|
||||
|
||||
my ($obj,$rest) = split /\s*:\s+/, $line, 2;
|
||||
$line = '';
|
||||
next if !$obj || !$rest;
|
||||
|
||||
my @deps = split /\s+/, $rest;
|
||||
push @{$alldeps{$obj}}, @deps;
|
||||
if (DEBUG >= 2) {
|
||||
foreach my $dep (@deps) { print "add $obj $dep\n"; }
|
||||
}
|
||||
}
|
||||
|
||||
# Test dependencies
|
||||
my %modtimes; # cache
|
||||
my @objs; # force rebuild on these
|
||||
OBJ_LOOP: foreach my $obj (keys %alldeps) {
|
||||
my $mtime = (stat $obj)[9] or next;
|
||||
|
||||
my %not_in_cache;
|
||||
my $deps = $alldeps{$obj};
|
||||
foreach my $dep_file (@{$deps}) {
|
||||
my $dep_mtime = $modtimes{$dep_file};
|
||||
if (not defined $dep_mtime) {
|
||||
print "Skipping $dep_file for $obj, will stat() later\n" if DEBUG >= 2;
|
||||
$not_in_cache{$dep_file} = 1;
|
||||
next;
|
||||
}
|
||||
|
||||
print "Found $dep_file in cache\n" if DEBUG >= 2;
|
||||
|
||||
if ($dep_mtime > $mtime) {
|
||||
print "$dep_file($dep_mtime) newer than $obj($mtime)\n" if DEBUG;
|
||||
}
|
||||
elsif ($dep_mtime == -1) {
|
||||
print "Couldn't stat $dep_file for $obj\n" if DEBUG;
|
||||
}
|
||||
else {
|
||||
print "$dep_file($dep_mtime) older than $obj($mtime)\n" if DEBUG >= 2;
|
||||
next;
|
||||
}
|
||||
|
||||
push @objs, $obj; # dependency is missing or newer
|
||||
next OBJ_LOOP; # skip checking the rest of the dependencies
|
||||
}
|
||||
|
||||
foreach my $dep_file (keys %not_in_cache) {
|
||||
print "STAT $dep_file for $obj\n" if DEBUG >= 2;
|
||||
my $dep_mtime = $modtimes{$dep_file} = (stat $dep_file)[9] || -1;
|
||||
|
||||
if ($dep_mtime > $mtime) {
|
||||
print "$dep_file($dep_mtime) newer than $obj($mtime)\n" if DEBUG;
|
||||
}
|
||||
elsif ($dep_mtime == -1) {
|
||||
print "Couldn't stat $dep_file for $obj\n" if DEBUG;
|
||||
}
|
||||
else {
|
||||
print "$dep_file($dep_mtime) older than $obj($mtime)\n" if DEBUG >= 2;
|
||||
next;
|
||||
}
|
||||
|
||||
push @objs, $obj; # dependency is missing or newer
|
||||
next OBJ_LOOP; # skip checking the rest of the dependencies
|
||||
}
|
||||
|
||||
# If we get here it means nothing needs to be done for $obj
|
||||
}
|
||||
|
||||
# Output objects to rebuild (if needed).
|
||||
if (@objs) {
|
||||
my $old_output;
|
||||
my $new_output = "@objs: FORCE\n";
|
||||
|
||||
# Read in the current dependencies file.
|
||||
open(OLD, "<$outfile")
|
||||
and $old_output = <OLD>;
|
||||
close(OLD);
|
||||
|
||||
# Only write out the dependencies if they are different.
|
||||
if ($new_output ne $old_output) {
|
||||
open(OUT, ">$outfile") and print OUT "$new_output";
|
||||
print "Updating dependencies file, $outfile\n" unless $silent;
|
||||
if (DEBUG) {
|
||||
print "new: $new_output\n";
|
||||
print "was: $old_output\n" if $old_output ne '';
|
||||
}
|
||||
}
|
||||
} elsif (-s $outfile) {
|
||||
# Remove the old dependencies because all objects are up to date.
|
||||
print "Removing old dependencies file, $outfile\n" unless $silent;
|
||||
|
||||
if (DEBUG) {
|
||||
my $old_output;
|
||||
open(OLD, "<$outfile")
|
||||
and $old_output = <OLD>;
|
||||
close(OLD);
|
||||
print "was: $old_output\n";
|
||||
}
|
||||
|
||||
unlink $outfile;
|
||||
}
|
|
@ -0,0 +1,63 @@
|
|||
#!/usr/bin/env perl
|
||||
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla 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/MPL/
|
||||
#
|
||||
# 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 this file as it was released upon December 26, 2000.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 2000
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
# Christopher Seawood <cls@seawood.org>
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
use Getopt::Std;
|
||||
|
||||
getopts('rs');
|
||||
$regexp = 1 if (defined($opt_r));
|
||||
$sort = 1 if (defined($opt_s));
|
||||
|
||||
undef @out;
|
||||
if ($sort) {
|
||||
@in = sort @ARGV;
|
||||
} else {
|
||||
@in = @ARGV;
|
||||
}
|
||||
foreach $d (@in) {
|
||||
if ($regexp) {
|
||||
$found = 0;
|
||||
foreach $dir (@out) {
|
||||
$found++, last if ($d =~ m/^$dir\// || $d eq $dir);
|
||||
}
|
||||
push @out, $d if (!$found);
|
||||
} else {
|
||||
push @out, $d if (!grep(/^$d$/, @out));
|
||||
}
|
||||
}
|
||||
print "@out\n"
|
206
js/src/config.mk
206
js/src/config.mk
|
@ -1,206 +0,0 @@
|
|||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla 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/MPL/
|
||||
#
|
||||
# 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 Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998-1999
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
ifdef JS_DIST
|
||||
DIST = $(JS_DIST)
|
||||
else
|
||||
DIST = $(DEPTH)/../../dist
|
||||
endif
|
||||
|
||||
# Set os+release dependent make variables
|
||||
OS_ARCH := $(subst /,_,$(shell uname -s | sed /\ /s//_/))
|
||||
|
||||
# Attempt to differentiate between SunOS 5.4 and x86 5.4
|
||||
OS_CPUARCH := $(shell uname -m)
|
||||
ifeq ($(OS_CPUARCH),i86pc)
|
||||
OS_RELEASE := $(shell uname -r)_$(OS_CPUARCH)
|
||||
else
|
||||
ifeq ($(OS_ARCH),AIX)
|
||||
OS_RELEASE := $(shell uname -v).$(shell uname -r)
|
||||
else
|
||||
OS_RELEASE := $(shell uname -r)
|
||||
endif
|
||||
endif
|
||||
ifeq ($(OS_ARCH),IRIX64)
|
||||
OS_ARCH := IRIX
|
||||
endif
|
||||
|
||||
# Handle output from win32 unames other than Netscape's version
|
||||
ifeq (,$(filter-out Windows_95 Windows_98 CYGWIN_95-4.0 CYGWIN_98-4.10, $(OS_ARCH)))
|
||||
OS_ARCH := WIN95
|
||||
endif
|
||||
ifeq ($(OS_ARCH),WIN95)
|
||||
OS_ARCH := WINNT
|
||||
OS_RELEASE := 4.0
|
||||
endif
|
||||
ifeq ($(OS_ARCH), Windows_NT)
|
||||
OS_ARCH := WINNT
|
||||
OS_MINOR_RELEASE := $(shell uname -v)
|
||||
ifeq ($(OS_MINOR_RELEASE),00)
|
||||
OS_MINOR_RELEASE = 0
|
||||
endif
|
||||
OS_RELEASE := $(OS_RELEASE).$(OS_MINOR_RELEASE)
|
||||
endif
|
||||
ifeq (CYGWIN_NT,$(findstring CYGWIN_NT,$(OS_ARCH)))
|
||||
OS_RELEASE := $(patsubst CYGWIN_NT-%,%,$(OS_ARCH))
|
||||
OS_ARCH := WINNT
|
||||
endif
|
||||
ifeq ($(OS_ARCH), CYGWIN32_NT)
|
||||
OS_ARCH := WINNT
|
||||
endif
|
||||
ifeq (MINGW32_NT,$(findstring MINGW32_NT,$(OS_ARCH)))
|
||||
OS_RELEASE := $(patsubst MINGW32_NT-%,%,$(OS_ARCH))
|
||||
OS_ARCH := WINNT
|
||||
endif
|
||||
|
||||
# Virtually all Linux versions are identical.
|
||||
# Any distinctions are handled in linux.h
|
||||
ifeq ($(OS_ARCH),Linux)
|
||||
OS_CONFIG := Linux_All
|
||||
else
|
||||
ifeq ($(OS_ARCH),dgux)
|
||||
OS_CONFIG := dgux
|
||||
else
|
||||
ifeq ($(OS_ARCH),Darwin)
|
||||
OS_CONFIG := Darwin
|
||||
else
|
||||
ifeq ($(OS_ARCH),Darwin64)
|
||||
OS_CONFIG := Darwin64
|
||||
else
|
||||
OS_CONFIG := $(OS_ARCH)$(OS_OBJTYPE)$(OS_RELEASE)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
ASFLAGS =
|
||||
DEFINES =
|
||||
|
||||
ifeq ($(OS_ARCH), WINNT)
|
||||
INSTALL = nsinstall
|
||||
CP = cp
|
||||
else
|
||||
INSTALL = $(DIST)/bin/nsinstall
|
||||
CP = cp
|
||||
endif
|
||||
|
||||
ifdef BUILD_OPT
|
||||
ifdef USE_MSVC
|
||||
OPTIMIZER = -O2 -GL
|
||||
INTERP_OPTIMIZER = -O2 -GL
|
||||
BUILTINS_OPTIMIZER = -O2 -GL
|
||||
LDFLAGS += -LTCG
|
||||
else
|
||||
OPTIMIZER = -Os -fstrict-aliasing -fno-exceptions -fno-rtti -Wstrict-aliasing=2
|
||||
BUILTINS_OPTIMIZER = -O9 -fstrict-aliasing -fno-exceptions -fno-rtti
|
||||
INTERP_OPTIMIZER = -O3 -fstrict-aliasing -fno-exceptions -fno-rtti
|
||||
endif
|
||||
DEFINES += -UDEBUG -DNDEBUG -UDEBUG_$(USER)
|
||||
OBJDIR_TAG = _OPT
|
||||
else
|
||||
ifdef USE_MSVC
|
||||
OPTIMIZER = -Zi
|
||||
INTERP_OPTIMIZER = -Zi
|
||||
BUILTINS_OPTIMIZER = $(INTERP_OPTIMIZER)
|
||||
else
|
||||
OPTIMIZER = -g3 -fstrict-aliasing -fno-exceptions -fno-rtti -Wstrict-aliasing=2
|
||||
INTERP_OPTIMIZER = -g3 -fstrict-aliasing -fno-exceptions -fno-rtti
|
||||
BUILTINS_OPTIMIZER = $(INTERP_OPTIMIZER)
|
||||
endif
|
||||
DEFINES += -DDEBUG -DDEBUG_$(USER)
|
||||
OBJDIR_TAG = _DBG
|
||||
endif
|
||||
|
||||
SO_SUFFIX = so
|
||||
|
||||
NS_USE_NATIVE = 1
|
||||
|
||||
# Java stuff
|
||||
CLASSDIR = $(DEPTH)/liveconnect/classes
|
||||
JAVA_CLASSES = $(patsubst %.java,%.class,$(JAVA_SRCS))
|
||||
TARGETS += $(addprefix $(CLASSDIR)/$(OBJDIR)/$(JARPATH)/, $(JAVA_CLASSES))
|
||||
JAVAC = $(JDK)/bin/javac
|
||||
JAVAC_FLAGS = -classpath "$(CLASSPATH)" -d $(CLASSDIR)/$(OBJDIR)
|
||||
ifeq ($(OS_ARCH), WINNT)
|
||||
SEP = ;
|
||||
else
|
||||
SEP = :
|
||||
endif
|
||||
CLASSPATH = $(JDK)/lib/classes.zip$(SEP)$(CLASSDIR)/$(OBJDIR)
|
||||
|
||||
include $(DEPTH)/config/$(OS_CONFIG).mk
|
||||
|
||||
ifndef OBJ_SUFFIX
|
||||
ifdef USE_MSVC
|
||||
OBJ_SUFFIX = obj
|
||||
else
|
||||
OBJ_SUFFIX = o
|
||||
endif
|
||||
endif
|
||||
|
||||
ifndef HOST_BIN_SUFFIX
|
||||
ifeq ($(OS_ARCH),WINNT)
|
||||
HOST_BIN_SUFFIX = .exe
|
||||
else
|
||||
HOST_BIN_SUFFIX =
|
||||
endif
|
||||
endif
|
||||
|
||||
# Name of the binary code directories
|
||||
ifdef OBJROOT
|
||||
# prepend $(DEPTH) to the root unless it is an absolute path
|
||||
OBJDIR = $(if $(filter /%,$(OBJROOT)),$(OBJROOT),$(DEPTH)/$(OBJROOT))
|
||||
else
|
||||
ifeq ($(DEPTH),.)
|
||||
OBJDIR = $(OS_CONFIG)$(OBJDIR_TAG).$(if $(BUILD_IDG),OBJD,OBJ)
|
||||
else
|
||||
OBJDIR = $(DEPTH)/$(OS_CONFIG)$(OBJDIR_TAG).$(if $(BUILD_IDG),OBJD,OBJ)
|
||||
endif
|
||||
endif
|
||||
|
||||
VPATH = $(OBJDIR)
|
||||
|
||||
LCJAR = js15lc30.jar
|
||||
|
||||
# Library name
|
||||
LIBDIR := lib
|
||||
ifeq ($(CPU_ARCH), x86_64)
|
||||
LIBDIR := lib64
|
||||
endif
|
||||
|
|
@ -1,65 +0,0 @@
|
|||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla 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/MPL/
|
||||
#
|
||||
# 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 Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config stuff for AIX
|
||||
#
|
||||
|
||||
CC = xlC_r
|
||||
CCC = xlC_r
|
||||
|
||||
RANLIB = ranlib
|
||||
|
||||
#.c.o:
|
||||
# $(CC) -c -MD $*.d $(CFLAGS) $<
|
||||
ARCH := aix
|
||||
CPU_ARCH = rs6000
|
||||
GFX_ARCH = x
|
||||
INLINES = js_compare_and_swap:js_fast_lock1:js_fast_unlock1:js_lock_get_slot:js_lock_set_slot:js_lock_scope1
|
||||
|
||||
OS_CFLAGS = -qarch=com -qinline+$(INLINES) -DXP_UNIX -DAIX -DAIXV3 -DSYSV -DHAVE_LOCALTIME_R
|
||||
OS_LIBS = -lbsd -lsvld -lm
|
||||
#-lpthreads -lc_r
|
||||
|
||||
MKSHLIB = $(LD) -bM:SRE -bh:4 -bnoentry -berok
|
||||
XLDFLAGS += -lc
|
||||
|
||||
ifdef JS_THREADSAFE
|
||||
XLDFLAGS += -lsvld
|
||||
endif
|
|
@ -1,81 +0,0 @@
|
|||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla 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/MPL/
|
||||
#
|
||||
# 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 Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
# Steve Zellers (zellers@apple.com)
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config for Mac OS X as of PR3
|
||||
# Just ripped from Linux config
|
||||
#
|
||||
|
||||
CC = cc
|
||||
CCC = g++
|
||||
CFLAGS += -Wall -Wno-format
|
||||
OS_CFLAGS = -DXP_UNIX -DSVR4 -DSYSV -D_BSD_SOURCE -DPOSIX_SOURCE -DRHAPSODY
|
||||
|
||||
RANLIB = ranlib
|
||||
MKSHLIB = libtool $(XMKSHLIBOPTS) -framework System
|
||||
|
||||
#.c.o:
|
||||
# $(CC) -c -MD $*.d $(CFLAGS) $<
|
||||
|
||||
CPU_ARCH = $(shell uname -m)
|
||||
ifeq (86,$(findstring 86,$(CPU_ARCH)))
|
||||
CPU_ARCH = x86
|
||||
OS_CFLAGS+= -DX86_LINUX
|
||||
endif
|
||||
GFX_ARCH = x
|
||||
|
||||
OS_LIBS = -lc -framework System
|
||||
|
||||
ASFLAGS += -x assembler-with-cpp
|
||||
|
||||
ifeq ($(CPU_ARCH),alpha)
|
||||
|
||||
# Ask the C compiler on alpha linux to let us work with denormalized
|
||||
# double values, which are required by the ECMA spec.
|
||||
|
||||
OS_CFLAGS += -mieee
|
||||
endif
|
||||
|
||||
# Use the editline library to provide line-editing support.
|
||||
JS_EDITLINE = 1
|
||||
|
||||
# Don't allow Makefile.ref to use libmath
|
||||
NO_LIBM = 1
|
||||
|
|
@ -1,41 +0,0 @@
|
|||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla 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/MPL/
|
||||
#
|
||||
# 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 Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
# Mike McCabe <mike+mozilla@meer.net>
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
include $(DEPTH)/config/Darwin1.3.mk
|
|
@ -1,81 +0,0 @@
|
|||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla 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/MPL/
|
||||
#
|
||||
# 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 Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
# Steve Zellers (zellers@apple.com)
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config for Mac OS X as of PR3
|
||||
# Just ripped from Linux config
|
||||
#
|
||||
|
||||
CC = cc
|
||||
CCC = g++
|
||||
CFLAGS += -Wall -Wno-format
|
||||
OS_CFLAGS = -DXP_UNIX -DSVR4 -DSYSV -D_BSD_SOURCE -DPOSIX_SOURCE -DDARWIN
|
||||
|
||||
RANLIB = ranlib
|
||||
MKSHLIB = libtool $(XMKSHLIBOPTS) -framework System
|
||||
|
||||
#.c.o:
|
||||
# $(CC) -c -MD $*.d $(CFLAGS) $<
|
||||
|
||||
CPU_ARCH = $(shell uname -m)
|
||||
ifeq (86,$(findstring 86,$(CPU_ARCH)))
|
||||
CPU_ARCH = x86
|
||||
OS_CFLAGS+= -DX86_LINUX
|
||||
endif
|
||||
GFX_ARCH = x
|
||||
|
||||
OS_LIBS = -lc -framework System
|
||||
|
||||
ASFLAGS += -x assembler-with-cpp
|
||||
|
||||
ifeq ($(CPU_ARCH),alpha)
|
||||
|
||||
# Ask the C compiler on alpha linux to let us work with denormalized
|
||||
# double values, which are required by the ECMA spec.
|
||||
|
||||
OS_CFLAGS += -mieee
|
||||
endif
|
||||
|
||||
# Use the editline library to provide line-editing support.
|
||||
JS_EDITLINE = 1
|
||||
|
||||
# Don't allow Makefile.ref to use libmath
|
||||
NO_LIBM = 1
|
||||
|
|
@ -1,81 +0,0 @@
|
|||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla 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/MPL/
|
||||
#
|
||||
# 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 Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
# Steve Zellers (zellers@apple.com)
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config for Mac OS X as of PR3
|
||||
# Just ripped from Linux config
|
||||
#
|
||||
|
||||
CC = cc
|
||||
CCC = g++
|
||||
CFLAGS += -Wall -Wno-format
|
||||
OS_CFLAGS = -DXP_UNIX -DSVR4 -DSYSV -D_BSD_SOURCE -DPOSIX_SOURCE -DDARWIN
|
||||
|
||||
RANLIB = ranlib
|
||||
MKSHLIB = libtool $(XMKSHLIBOPTS) -framework System
|
||||
|
||||
#.c.o:
|
||||
# $(CC) -c -MD $*.d $(CFLAGS) $<
|
||||
|
||||
CPU_ARCH = $(shell uname -m)
|
||||
ifeq (86,$(findstring 86,$(CPU_ARCH)))
|
||||
CPU_ARCH = x86
|
||||
OS_CFLAGS+= -DX86_LINUX
|
||||
endif
|
||||
GFX_ARCH = x
|
||||
|
||||
OS_LIBS = -lc -framework System
|
||||
|
||||
ASFLAGS += -x assembler-with-cpp
|
||||
|
||||
ifeq ($(CPU_ARCH),alpha)
|
||||
|
||||
# Ask the C compiler on alpha linux to let us work with denormalized
|
||||
# double values, which are required by the ECMA spec.
|
||||
|
||||
OS_CFLAGS += -mieee
|
||||
endif
|
||||
|
||||
# Use the editline library to provide line-editing support.
|
||||
JS_EDITLINE = 1
|
||||
|
||||
# Don't allow Makefile.ref to use libmath
|
||||
NO_LIBM = 1
|
||||
|
|
@ -1,72 +0,0 @@
|
|||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla 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/MPL/
|
||||
#
|
||||
# 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 Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
# Steve Zellers (zellers@apple.com)
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config for Mac OS X as of PR3
|
||||
# Just ripped from Linux config
|
||||
#
|
||||
|
||||
CC = cc
|
||||
CCC = g++
|
||||
CFLAGS += -Wall -Wno-format -MMD
|
||||
OS_LDFLAGS += -m64
|
||||
OS_CFLAGS = -m64 -DXP_UNIX -DSVR4 -DSYSV -D_BSD_SOURCE -DPOSIX_SOURCE -DDARWIN
|
||||
|
||||
RANLIB = ranlib
|
||||
MKSHLIB = $(CCC) -dynamiclib $(XMKSHLIBOPTS) -framework System
|
||||
|
||||
SO_SUFFIX = dylib
|
||||
|
||||
#.c.o:
|
||||
# $(CC) -c -MD $*.d $(CFLAGS) $<
|
||||
|
||||
CPU_ARCH = x86_64
|
||||
GFX_ARCH = x
|
||||
|
||||
OS_LIBS = -lc -framework System
|
||||
|
||||
ASFLAGS += -x assembler-with-cpp
|
||||
|
||||
# Use the editline library to provide line-editing support.
|
||||
JS_EDITLINE = 1
|
||||
|
||||
# Don't allow Makefile.ref to use libmath
|
||||
NO_LIBM = 1
|
||||
|
|
@ -1,77 +0,0 @@
|
|||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla 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/MPL/
|
||||
#
|
||||
# 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 Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config stuff for HPUX
|
||||
#
|
||||
|
||||
# CC = gcc
|
||||
# CCC = g++
|
||||
# CFLAGS += -Wall -Wno-format -fPIC
|
||||
|
||||
CC = cc -Ae +Z
|
||||
CCC = CC -Ae +a1 +eh +Z
|
||||
|
||||
RANLIB = echo
|
||||
MKSHLIB = $(LD) -b
|
||||
|
||||
SO_SUFFIX = sl
|
||||
|
||||
#.c.o:
|
||||
# $(CC) -c -MD $*.d $(CFLAGS) $<
|
||||
|
||||
CPU_ARCH = hppa
|
||||
GFX_ARCH = x
|
||||
|
||||
OS_CFLAGS = -DXP_UNIX -DHPUX -DSYSV -DHAVE_LOCALTIME_R
|
||||
OS_LIBS = -ldld
|
||||
|
||||
ifeq ($(OS_RELEASE),B.10)
|
||||
PLATFORM_FLAGS += -DHPUX10 -Dhpux10
|
||||
PORT_FLAGS += -DRW_NO_OVERLOAD_SCHAR -DHAVE_MODEL_H
|
||||
ifeq ($(OS_VERSION),.10)
|
||||
PLATFORM_FLAGS += -DHPUX10_10
|
||||
endif
|
||||
ifeq ($(OS_VERSION),.20)
|
||||
PLATFORM_FLAGS += -DHPUX10_20
|
||||
endif
|
||||
ifeq ($(OS_VERSION),.30)
|
||||
PLATFORM_FLAGS += -DHPUX10_30
|
||||
endif
|
||||
endif
|
|
@ -1,77 +0,0 @@
|
|||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla 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/MPL/
|
||||
#
|
||||
# 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 Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config stuff for HPUX
|
||||
#
|
||||
|
||||
# CC = gcc
|
||||
# CCC = g++
|
||||
# CFLAGS += -Wall -Wno-format -fPIC
|
||||
|
||||
CC = cc -Ae +Z
|
||||
CCC = CC -Ae +a1 +eh +Z
|
||||
|
||||
RANLIB = echo
|
||||
MKSHLIB = $(LD) -b
|
||||
|
||||
SO_SUFFIX = sl
|
||||
|
||||
#.c.o:
|
||||
# $(CC) -c -MD $*.d $(CFLAGS) $<
|
||||
|
||||
CPU_ARCH = hppa
|
||||
GFX_ARCH = x
|
||||
|
||||
OS_CFLAGS = -DXP_UNIX -DHPUX -DSYSV -DHAVE_LOCALTIME_R
|
||||
OS_LIBS = -ldld
|
||||
|
||||
ifeq ($(OS_RELEASE),B.10)
|
||||
PLATFORM_FLAGS += -DHPUX10 -Dhpux10
|
||||
PORT_FLAGS += -DRW_NO_OVERLOAD_SCHAR -DHAVE_MODEL_H
|
||||
ifeq ($(OS_VERSION),.10)
|
||||
PLATFORM_FLAGS += -DHPUX10_10
|
||||
endif
|
||||
ifeq ($(OS_VERSION),.20)
|
||||
PLATFORM_FLAGS += -DHPUX10_20
|
||||
endif
|
||||
ifeq ($(OS_VERSION),.30)
|
||||
PLATFORM_FLAGS += -DHPUX10_30
|
||||
endif
|
||||
endif
|
|
@ -1,87 +0,0 @@
|
|||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla 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/MPL/
|
||||
#
|
||||
# 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 Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config stuff for IRIX
|
||||
#
|
||||
|
||||
CPU_ARCH = mips
|
||||
GFX_ARCH = x
|
||||
|
||||
RANLIB = /bin/true
|
||||
|
||||
#NS_USE_GCC = 1
|
||||
|
||||
ifndef NS_USE_NATIVE
|
||||
CC = gcc
|
||||
CCC = g++
|
||||
AS = $(CC) -x assembler-with-cpp
|
||||
ODD_CFLAGS = -Wall -Wno-format
|
||||
ifdef BUILD_OPT
|
||||
OPTIMIZER = -O6
|
||||
endif
|
||||
else
|
||||
ifeq ($(OS_RELEASE),6.2)
|
||||
CC = cc -n32 -DIRIX6_2
|
||||
endif
|
||||
ifeq ($(OS_RELEASE),6.3)
|
||||
CC = cc -n32 -DIRIX6_3
|
||||
endif
|
||||
ifeq ($(OS_RELEASE),6.5)
|
||||
CC = cc -n32 -DIRIX6_5
|
||||
endif
|
||||
CCC = CC
|
||||
# LD = CC
|
||||
ODD_CFLAGS = -fullwarn -xansi
|
||||
ifdef BUILD_OPT
|
||||
OPTIMIZER += -Olimit 4000
|
||||
endif
|
||||
endif
|
||||
|
||||
# For purify
|
||||
HAVE_PURIFY = 1
|
||||
PURE_OS_CFLAGS = $(ODD_CFLAGS) -DXP_UNIX -DSVR4 -DSW_THREADS -DIRIX -DHAVE_LOCALTIME_R
|
||||
|
||||
OS_CFLAGS = $(PURE_OS_CFLAGS) -MDupdate $(DEPENDENCIES)
|
||||
|
||||
BSDECHO = echo
|
||||
MKSHLIB = $(LD) -n32 -shared
|
||||
|
||||
# Use the editline library to provide line-editing support.
|
||||
JS_EDITLINE = 1
|
|
@ -1,44 +0,0 @@
|
|||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla 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/MPL/
|
||||
#
|
||||
# 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 Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config stuff for IRIX6.3
|
||||
#
|
||||
|
||||
include $(DEPTH)/config/IRIX.mk
|
|
@ -1,105 +0,0 @@
|
|||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla 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/MPL/
|
||||
#
|
||||
# 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 Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config for all versions of Linux
|
||||
#
|
||||
|
||||
CC = gcc
|
||||
CCC = g++
|
||||
LD = g++
|
||||
CFLAGS += -Wall -Wno-format -MMD
|
||||
OS_CFLAGS = -DXP_UNIX -DSVR4 -DSYSV -D_BSD_SOURCE -DPOSIX_SOURCE -DHAVE_LOCALTIME_R -DLINUX
|
||||
|
||||
RANLIB = echo
|
||||
MKSHLIB = $(LD) -shared $(XMKSHLIBOPTS)
|
||||
|
||||
#.c.o:
|
||||
# $(CC) -c -MD $*.d $(CFLAGS) $<
|
||||
|
||||
CPU_ARCH = $(shell uname -m)
|
||||
# don't filter in x86-64 architecture
|
||||
ifneq (x86_64,$(CPU_ARCH))
|
||||
ifeq (86,$(findstring 86,$(CPU_ARCH)))
|
||||
CPU_ARCH = x86
|
||||
OS_CFLAGS += -DX86_LINUX -DAVMPLUS_IA32 -DAVMPLUS_UNIX -DAVMPLUS_LINUX
|
||||
NANOJIT_ARCH = i386
|
||||
endif # 86
|
||||
endif # !x86_64
|
||||
|
||||
#JIT disabled until x64 port is cleaned up
|
||||
#ifeq ($(CPU_ARCH),x86_64)
|
||||
#OS_CFLAGS += -DAVMPLUS_AMD64 -DAVMPLUS_64BIT -DAVMPLUS_UNIX -DAVMPLUS_LINUX
|
||||
#NANOJIT_ARCH = i386
|
||||
#endif
|
||||
|
||||
ifeq ($(CPU_ARCH),arm)
|
||||
OS_CFLAGS += -DAVMPLUS_ARM -DAVMPLUS_UNIX -DAVMPLUS_LINUX
|
||||
NANOJIT_ARCH = ARM
|
||||
endif
|
||||
|
||||
GFX_ARCH = x
|
||||
|
||||
OS_LIBS = -lm -lc
|
||||
|
||||
ASFLAGS += -x assembler-with-cpp
|
||||
|
||||
|
||||
ifeq ($(CPU_ARCH),alpha)
|
||||
|
||||
# Ask the C compiler on alpha linux to let us work with denormalized
|
||||
# double values, which are required by the ECMA spec.
|
||||
|
||||
OS_CFLAGS += -mieee
|
||||
endif
|
||||
|
||||
# Use the editline library to provide line-editing support.
|
||||
JS_EDITLINE = 1
|
||||
|
||||
ifeq ($(CPU_ARCH),x86_64)
|
||||
# Use VA_COPY() standard macro on x86-64
|
||||
# FIXME: better use it everywhere
|
||||
OS_CFLAGS += -DHAVE_VA_COPY -DVA_COPY=va_copy
|
||||
endif
|
||||
|
||||
ifeq ($(CPU_ARCH),x86_64)
|
||||
# We need PIC code for shared libraries
|
||||
# FIXME: better patch rules.mk & fdlibm/Makefile*
|
||||
OS_CFLAGS += -DPIC -fPIC
|
||||
endif
|
|
@ -1,82 +0,0 @@
|
|||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla 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/MPL/
|
||||
#
|
||||
# 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 Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
# Steve Zellers (zellers@apple.com)
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config for Mac OS X as of PR3
|
||||
# Just ripped from Linux config
|
||||
#
|
||||
|
||||
CC = cc
|
||||
CCC = g++
|
||||
CFLAGS += -Wall -Wno-format
|
||||
OS_CFLAGS = -DXP_UNIX -DSVR4 -DSYSV -D_BSD_SOURCE -DPOSIX_SOURCE
|
||||
-DRHAPSODY
|
||||
|
||||
RANLIB = ranlib
|
||||
MKSHLIB = libtool -dynamic $(XMKSHLIBOPTS) -framework System
|
||||
|
||||
#.c.o:
|
||||
# $(CC) -c -MD $*.d $(CFLAGS) $<
|
||||
|
||||
CPU_ARCH = $(shell uname -m)
|
||||
ifeq (86,$(findstring 86,$(CPU_ARCH)))
|
||||
CPU_ARCH = x86
|
||||
OS_CFLAGS+= -DX86_LINUX
|
||||
endif
|
||||
GFX_ARCH = x
|
||||
|
||||
OS_LIBS = -lc -framework System
|
||||
|
||||
ASFLAGS += -x assembler-with-cpp
|
||||
|
||||
ifeq ($(CPU_ARCH),alpha)
|
||||
|
||||
# Ask the C compiler on alpha linux to let us work with denormalized
|
||||
# double values, which are required by the ECMA spec.
|
||||
|
||||
OS_CFLAGS += -mieee
|
||||
endif
|
||||
|
||||
# Use the editline library to provide line-editing support.
|
||||
JS_EDITLINE = 1
|
||||
|
||||
# Don't allow Makefile.ref to use libmath
|
||||
NO_LIBM = 1
|
||||
|
|
@ -0,0 +1,121 @@
|
|||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla 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/MPL/
|
||||
#
|
||||
# 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 the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
# Robert Ginda <rginda@netscape.com>
|
||||
# John Taylor <jtaylor@netscape.com>
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
DEPTH = ..
|
||||
topsrcdir = @top_srcdir@
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
|
||||
include $(DEPTH)/config/autoconf.mk
|
||||
|
||||
# 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 =
|
||||
|
||||
ifneq (,$(CROSS_COMPILE)$(filter-out WINNT OS2,$(OS_ARCH)))
|
||||
ifneq ($(OS_ARCH), WINCE)
|
||||
HOST_PROGRAM = nsinstall$(HOST_BIN_SUFFIX)
|
||||
HOST_CSRCS = nsinstall.c pathsub.c
|
||||
endif
|
||||
endif
|
||||
|
||||
PLSRCS = nfspwd.pl revdepth.pl
|
||||
|
||||
TARGETS = $(HOST_PROGRAM) $(PLSRCS:.pl=) $(SIMPLE_PROGRAMS)
|
||||
|
||||
ifndef CROSS_COMPILE
|
||||
ifdef USE_ELF_DYNSTR_GC
|
||||
TARGETS += elf-dynstr-gc
|
||||
MAKE_DIRS += $(MDDEPDIR)
|
||||
GARBAGE_DIRS += $(MDDEPDIR)
|
||||
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
|
||||
|
||||
ifndef COMPILER_DEPEND
|
||||
ifndef MOZ_NATIVE_MAKEDEPEND
|
||||
DIRS += mkdepend
|
||||
endif
|
||||
endif
|
||||
|
||||
include $(topsrcdir)/config/config.mk
|
||||
|
||||
# Do not install util programs
|
||||
NO_INSTALL=1
|
||||
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
|
||||
export:: $(TARGETS)
|
||||
ifdef HOST_PROGRAM
|
||||
$(INSTALL) $(HOST_PROGRAM) $(DIST)/bin
|
||||
endif
|
||||
|
||||
ifdef WRAP_SYSTEM_INCLUDES
|
||||
export::
|
||||
if test ! -d system_wrappers; then mkdir system_wrappers; fi
|
||||
$(PERL) $(srcdir)/preprocessor.pl $(DEFINES) $(ACDEFINES) \
|
||||
-DBUILD_STATIC_LIBS=$(BUILD_STATIC_LIBS) \
|
||||
$(srcdir)/system-headers | $(PERL) $(srcdir)/make-system-wrappers.pl system_wrappers
|
||||
$(INSTALL) system_wrappers $(DIST)/include
|
||||
|
||||
GARBAGE_DIRS += system_wrappers
|
||||
endif
|
||||
|
||||
ifndef CROSS_COMPILE
|
||||
ifdef USE_ELF_DYNSTR_GC
|
||||
elf-dynstr-gc: elf-dynstr-gc.c Makefile Makefile.in
|
||||
$(CC) $(COMPILE_CFLAGS) $(GLIB_CFLAGS) -o $@ $< $(LDFLAGS) $(GLIB_LIBS)
|
||||
endif
|
||||
endif
|
||||
|
||||
FORCE:
|
||||
|
||||
ifdef MKDEPEND_DIR
|
||||
clean clobber realclean clobber_all::
|
||||
cd $(MKDEPEND_DIR); $(MAKE) $@
|
||||
endif
|
|
@ -0,0 +1,232 @@
|
|||
#!/usr/bin/perl -w
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla 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/MPL/
|
||||
#
|
||||
# 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 the Win32 Version System.
|
||||
#
|
||||
# The Initial Developer of the Original Code is Netscape Communications Corporation
|
||||
# Portions created by the Initial Developer are Copyright (C) 2002
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
package Moz::Milestone;
|
||||
use strict;
|
||||
|
||||
use vars qw($officialMilestone
|
||||
$milestone);
|
||||
|
||||
local $Moz::Milestone::milestone;
|
||||
local $Moz::Milestone::officialMilestone;
|
||||
|
||||
#
|
||||
# Usage: getOfficialMilestone($milestoneFile)
|
||||
# Returns full milestone (x.x.x.x[ab12pre+])
|
||||
#
|
||||
sub getOfficialMilestone($) {
|
||||
my $mfile = $_[0];
|
||||
open(FILE,"$mfile") ||
|
||||
die ("Can't open $mfile for reading!");
|
||||
|
||||
my $num = <FILE>;
|
||||
while($num =~ /^\s*#/ || $num !~ /^\d/) {
|
||||
$num = <FILE>;
|
||||
}
|
||||
|
||||
close(FILE);
|
||||
if ($num !~ /^\d/) { return; }
|
||||
chomp($num);
|
||||
# Remove extra ^M caused by using dos-mode line-endings
|
||||
chop $num if (substr($num, -1, 1) eq "\r");
|
||||
$Moz::Milestone::officialMilestone = $num;
|
||||
$Moz::Milestone::milestone = &getMilestoneNum;
|
||||
return $num;
|
||||
}
|
||||
|
||||
#
|
||||
# Usage: getMilestoneNum($num)
|
||||
# Returns: milestone without a + if it exists.
|
||||
#
|
||||
sub getMilestoneNum {
|
||||
if (defined($Moz::Milestone::milestone)) {
|
||||
return $Moz::Milestone::milestone;
|
||||
}
|
||||
|
||||
if (defined($Moz::Milestone::officialMilestone)) {
|
||||
$Moz::Milestone::milestone = $Moz::Milestone::officialMilestone;
|
||||
} else {
|
||||
$Moz::Milestone::milestone = $_[0];
|
||||
}
|
||||
|
||||
if ($Moz::Milestone::milestone =~ /\+$/) { # for x.x.x+, strip off the +
|
||||
$Moz::Milestone::milestone =~ s/\+$//;
|
||||
}
|
||||
|
||||
return $Moz::Milestone::milestone;
|
||||
}
|
||||
|
||||
#
|
||||
# Usage: getMilestoneQualifier($num)
|
||||
# Returns: + if it exists.
|
||||
#
|
||||
sub getMilestoneQualifier {
|
||||
my $milestoneQualifier;
|
||||
if (defined($Moz::Milestone::officialMilestone)) {
|
||||
$milestoneQualifier = $Moz::Milestone::officialMilestone;
|
||||
} else {
|
||||
$milestoneQualifier = $_[0];
|
||||
}
|
||||
|
||||
if ($milestoneQualifier =~ /\+$/) {
|
||||
return "+";
|
||||
}
|
||||
}
|
||||
|
||||
sub getMilestoneMajor {
|
||||
my $milestoneMajor;
|
||||
if (defined($Moz::Milestone::milestone)) {
|
||||
$milestoneMajor = $Moz::Milestone::milestone;
|
||||
} else {
|
||||
$milestoneMajor = $_[0];
|
||||
}
|
||||
my @parts = split(/\./,$milestoneMajor);
|
||||
return $parts[0];
|
||||
}
|
||||
|
||||
sub getMilestoneMinor {
|
||||
my $milestoneMinor;
|
||||
if (defined($Moz::Milestone::milestone)) {
|
||||
$milestoneMinor = $Moz::Milestone::milestone;
|
||||
} else {
|
||||
$milestoneMinor = $_[0];
|
||||
}
|
||||
my @parts = split(/\./,$milestoneMinor);
|
||||
|
||||
if ($#parts < 1 ) { return 0; }
|
||||
return $parts[1];
|
||||
}
|
||||
|
||||
sub getMilestoneMini {
|
||||
my $milestoneMini;
|
||||
if (defined($Moz::Milestone::milestone)) {
|
||||
$milestoneMini = $Moz::Milestone::milestone;
|
||||
} else {
|
||||
$milestoneMini = $_[0];
|
||||
}
|
||||
my @parts = split(/\./,$milestoneMini);
|
||||
|
||||
if ($#parts < 2 ) { return 0; }
|
||||
return $parts[2];
|
||||
}
|
||||
|
||||
sub getMilestoneMicro {
|
||||
my $milestoneMicro;
|
||||
if (defined($Moz::Milestone::milestone)) {
|
||||
$milestoneMicro = $Moz::Milestone::milestone;
|
||||
} else {
|
||||
$milestoneMicro = $_[0];
|
||||
}
|
||||
my @parts = split(/\./,$milestoneMicro);
|
||||
|
||||
if ($#parts < 3 ) { return 0; }
|
||||
return $parts[3];
|
||||
}
|
||||
|
||||
sub getMilestoneAB {
|
||||
my $milestoneAB;
|
||||
if (defined($Moz::Milestone::milestone)) {
|
||||
$milestoneAB = $Moz::Milestone::milestone;
|
||||
} else {
|
||||
$milestoneAB = $_[0];
|
||||
}
|
||||
|
||||
if ($milestoneAB =~ /a/) { return "alpha"; }
|
||||
if ($milestoneAB =~ /b/) { return "beta"; }
|
||||
return "final";
|
||||
}
|
||||
|
||||
#
|
||||
# build_file($template_file,$output_file)
|
||||
#
|
||||
sub build_file($$) {
|
||||
my @FILE;
|
||||
my @MILESTONE_PARTS;
|
||||
my $MINI_VERSION = 0;
|
||||
my $MICRO_VERSION = 0;
|
||||
my $OFFICIAL = 0;
|
||||
my $QUALIFIER = "";
|
||||
|
||||
if (!defined($Moz::Milestone::milestone)) { die("$0: no milestone file set!\n"); }
|
||||
@MILESTONE_PARTS = split(/\./, &getMilestoneNum);
|
||||
if ($#MILESTONE_PARTS >= 2) {
|
||||
$MINI_VERSION = 1;
|
||||
} else {
|
||||
$MILESTONE_PARTS[2] = 0;
|
||||
}
|
||||
if ($#MILESTONE_PARTS >= 3) {
|
||||
$MICRO_VERSION = 1;
|
||||
} else {
|
||||
$MILESTONE_PARTS[3] = 0;
|
||||
}
|
||||
if (! &getMilestoneQualifier) {
|
||||
$OFFICIAL = 1;
|
||||
} else {
|
||||
$QUALIFIER = "+";
|
||||
}
|
||||
|
||||
if (-e $_[0]) {
|
||||
open(FILE, "$_[0]") || die("$0: Can't open $_[0] for reading!\n");
|
||||
@FILE = <FILE>;
|
||||
close(FILE);
|
||||
|
||||
open(FILE, ">$_[1]") || die("$0: Can't open $_[1] for writing!\n");
|
||||
|
||||
#
|
||||
# There will be more of these based on what we need for files.
|
||||
#
|
||||
foreach(@FILE) {
|
||||
s/__MOZ_MAJOR_VERSION__/$MILESTONE_PARTS[0]/g;
|
||||
s/__MOZ_MINOR_VERSION__/$MILESTONE_PARTS[1]/g;
|
||||
s/__MOZ_MINI_VERSION__/$MILESTONE_PARTS[2]/g;
|
||||
s/__MOZ_MICRO_VERSION__/$MILESTONE_PARTS[3]/g;
|
||||
if ($MINI_VERSION) {
|
||||
s/__MOZ_OPTIONAL_MINI_VERSION__/.$MILESTONE_PARTS[2]/g;
|
||||
}
|
||||
if ($MICRO_VERSION) {
|
||||
s/__MOZ_OPTIONAL_MICRO_VERSION__/.$MILESTONE_PARTS[3]/g;
|
||||
}
|
||||
|
||||
print FILE $_;
|
||||
}
|
||||
close(FILE);
|
||||
} else {
|
||||
die("$0: $_[0] doesn't exist for autoversioning!\n");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
1;
|
|
@ -1,72 +0,0 @@
|
|||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla 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/MPL/
|
||||
#
|
||||
# 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 Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config stuff for Data General DG/UX
|
||||
#
|
||||
|
||||
#
|
||||
# Initial DG/UX port by Marc Fraioli (fraioli@dg-rtp.dg.com)
|
||||
#
|
||||
|
||||
ifndef NS_USE_NATIVE
|
||||
CC = gcc
|
||||
CCC = g++
|
||||
CFLAGS += -mieee -Wall -Wno-format
|
||||
else
|
||||
CC = cc
|
||||
CCC = cxx
|
||||
CFLAGS += -ieee -std
|
||||
# LD = cxx
|
||||
endif
|
||||
|
||||
RANLIB = echo
|
||||
MKSHLIB = $(LD) -shared -taso -all -expect_unresolved "*"
|
||||
|
||||
#
|
||||
# _DGUX_SOURCE is needed to turn on a lot of stuff in the headers if
|
||||
# you're not using DG's compiler. It shouldn't hurt if you are.
|
||||
#
|
||||
# _POSIX4A_DRAFT10_SOURCE is needed to pick up localtime_r, used in
|
||||
# prtime.c
|
||||
#
|
||||
OS_CFLAGS = -DXP_UNIX -DSVR4 -DSYSV -DDGUX -D_DGUX_SOURCE -D_POSIX4A_DRAFT10_SOURCE -DOSF1 -DHAVE_LOCALTIME_R
|
||||
OS_LIBS = -lsocket -lnsl
|
||||
|
||||
NOSUCHFILE = /no-such-file
|
|
@ -1,69 +0,0 @@
|
|||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla 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/MPL/
|
||||
#
|
||||
# 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 Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config stuff for Tru64 Unix 5.0
|
||||
#
|
||||
|
||||
#
|
||||
# Initial DG/UX port by Marc Fraioli (fraioli@dg-rtp.dg.com)
|
||||
#
|
||||
|
||||
ifndef NS_USE_NATIVE
|
||||
CC = gcc
|
||||
CCC = g++
|
||||
CFLAGS += -mieee -Wall -Wno-format
|
||||
else
|
||||
CC = cc
|
||||
CCC = cxx
|
||||
CFLAGS += -ieee -std -pthread
|
||||
# LD = cxx
|
||||
endif
|
||||
|
||||
RANLIB = echo
|
||||
MKSHLIB = $(LD) -shared -all -expect_unresolved "*"
|
||||
|
||||
#
|
||||
# _POSIX4A_DRAFT10_SOURCE is needed to pick up localtime_r, used in
|
||||
# prtime.c
|
||||
#
|
||||
OS_CFLAGS = -DXP_UNIX -DSVR4 -DSYSV -D_POSIX4A_DRAFT10_SOURCE -DOSF1 -DHAVE_LOCALTIME_R
|
||||
OS_LIBS = -lsocket -lnsl
|
||||
|
||||
NOSUCHFILE = /no-such-file
|
|
@ -1,101 +0,0 @@
|
|||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla 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/MPL/
|
||||
#
|
||||
# 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 Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config stuff for SunOS4.1
|
||||
#
|
||||
|
||||
CC = gcc
|
||||
CCC = g++
|
||||
RANLIB = ranlib
|
||||
|
||||
#.c.o:
|
||||
# $(CC) -c -MD $*.d $(CFLAGS) $<
|
||||
|
||||
CPU_ARCH = sparc
|
||||
GFX_ARCH = x
|
||||
|
||||
# A pile of -D's to build xfe on sunos
|
||||
MOZ_CFLAGS = -DSTRINGS_ALIGNED -DNO_REGEX -DNO_ISDIR -DUSE_RE_COMP \
|
||||
-DNO_REGCOMP -DUSE_GETWD -DNO_MEMMOVE -DNO_ALLOCA \
|
||||
-DBOGUS_MB_MAX -DNO_CONST
|
||||
|
||||
# Purify doesn't like -MDupdate
|
||||
NOMD_OS_CFLAGS = -DXP_UNIX -Wall -Wno-format -DSW_THREADS -DSUNOS4 -DNEED_SYSCALL \
|
||||
$(MOZ_CFLAGS)
|
||||
|
||||
OS_CFLAGS = $(NOMD_OS_CFLAGS) -MDupdate $(DEPENDENCIES)
|
||||
OS_LIBS = -ldl -lm
|
||||
|
||||
MKSHLIB = $(LD) -L$(MOTIF)/lib
|
||||
|
||||
HAVE_PURIFY = 1
|
||||
MOTIF = /home/motif/usr
|
||||
MOTIFLIB = -L$(MOTIF)/lib -lXm
|
||||
INCLUDES += -I/usr/X11R5/include -I$(MOTIF)/include
|
||||
|
||||
NOSUCHFILE = /solaris-rm-f-sucks
|
||||
|
||||
LOCALE_MAP = $(DEPTH)/cmd/xfe/intl/sunos.lm
|
||||
|
||||
EN_LOCALE = en_US
|
||||
DE_LOCALE = de
|
||||
FR_LOCALE = fr
|
||||
JP_LOCALE = ja
|
||||
SJIS_LOCALE = ja_JP.SJIS
|
||||
KR_LOCALE = ko
|
||||
CN_LOCALE = zh
|
||||
TW_LOCALE = zh_TW
|
||||
I2_LOCALE = i2
|
||||
IT_LOCALE = it
|
||||
SV_LOCALE = sv
|
||||
ES_LOCALE = es
|
||||
NL_LOCALE = nl
|
||||
PT_LOCALE = pt
|
||||
|
||||
LOC_LIB_DIR = /usr/openwin/lib/locale
|
||||
|
||||
BSDECHO = echo
|
||||
|
||||
#
|
||||
# These defines are for building unix plugins
|
||||
#
|
||||
BUILD_UNIX_PLUGINS = 1
|
||||
DSO_LDOPTS =
|
||||
DSO_LDFLAGS =
|
|
@ -1,91 +0,0 @@
|
|||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla 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/MPL/
|
||||
#
|
||||
# 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 Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config stuff for SunOS5.3
|
||||
#
|
||||
|
||||
CC = gcc
|
||||
CCC = g++
|
||||
CFLAGS += -Wall -Wno-format
|
||||
|
||||
#CC = /opt/SUNWspro/SC3.0.1/bin/cc
|
||||
RANLIB = echo
|
||||
|
||||
#.c.o:
|
||||
# $(CC) -c -MD $*.d $(CFLAGS) $<
|
||||
|
||||
CPU_ARCH = sparc
|
||||
GFX_ARCH = x
|
||||
|
||||
OS_CFLAGS = -DXP_UNIX -DSVR4 -DSYSV -DSOLARIS -DHAVE_LOCALTIME_R
|
||||
OS_LIBS = -lsocket -lnsl -ldl
|
||||
|
||||
ASFLAGS += -P -L -K PIC -D_ASM -D__STDC__=0
|
||||
|
||||
HAVE_PURIFY = 1
|
||||
|
||||
NOSUCHFILE = /solaris-rm-f-sucks
|
||||
|
||||
ifndef JS_NO_ULTRA
|
||||
ULTRA_OPTIONS := -xarch=v8plus
|
||||
ULTRA_OPTIONSD := -DULTRA_SPARC
|
||||
else
|
||||
ULTRA_OPTIONS := -xarch=v8
|
||||
ULTRA_OPTIONSD :=
|
||||
endif
|
||||
|
||||
ifeq ($(OS_CPUARCH),sun4u)
|
||||
DEFINES += $(ULTRA_OPTIONSD)
|
||||
ifeq ($(findstring gcc,$(CC)),gcc)
|
||||
DEFINES += -Wa,$(ULTRA_OPTIONS),$(ULTRA_OPTIONSD)
|
||||
else
|
||||
ASFLAGS += $(ULTRA_OPTIONS) $(ULTRA_OPTIONSD)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(OS_CPUARCH),sun4m)
|
||||
ifeq ($(findstring gcc,$(CC)),gcc)
|
||||
DEFINES += -Wa,-xarch=v8
|
||||
else
|
||||
ASFLAGS += -xarch=v8
|
||||
endif
|
||||
endif
|
||||
|
||||
MKSHLIB = $(LD) -G
|
|
@ -1,44 +0,0 @@
|
|||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla 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/MPL/
|
||||
#
|
||||
# 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 Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config stuff for SunOS5.5.1
|
||||
#
|
||||
|
||||
include $(DEPTH)/config/SunOS5.5.mk
|
|
@ -1,89 +0,0 @@
|
|||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla 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/MPL/
|
||||
#
|
||||
# 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 Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config stuff for SunOS5.5
|
||||
#
|
||||
|
||||
AS = /usr/ccs/bin/as
|
||||
ifndef NS_USE_NATIVE
|
||||
CC = gcc
|
||||
CCC = g++
|
||||
CFLAGS += -Wall -Wno-format
|
||||
else
|
||||
CC = cc
|
||||
CCC = CC
|
||||
CFLAGS += -mt -KPIC
|
||||
# LD = CC
|
||||
endif
|
||||
|
||||
RANLIB = echo
|
||||
|
||||
#.c.o:
|
||||
# $(CC) -c -MD $*.d $(CFLAGS) $<
|
||||
|
||||
CPU_ARCH = sparc
|
||||
GFX_ARCH = x
|
||||
|
||||
OS_CFLAGS = -DXP_UNIX -DSVR4 -DSYSV -DSOLARIS -DHAVE_LOCALTIME_R
|
||||
OS_LIBS = -lsocket -lnsl -ldl
|
||||
|
||||
ASFLAGS += -P -L -K PIC -D_ASM -D__STDC__=0
|
||||
|
||||
HAVE_PURIFY = 1
|
||||
|
||||
NOSUCHFILE = /solaris-rm-f-sucks
|
||||
|
||||
ifeq ($(OS_CPUARCH),sun4u) # ultra sparc?
|
||||
ifeq ($(CC),gcc) # using gcc?
|
||||
ifndef JS_NO_ULTRA # do we want ultra?
|
||||
ifdef JS_THREADSAFE # only in thread-safe mode
|
||||
DEFINES += -DULTRA_SPARC
|
||||
DEFINES += -Wa,-xarch=v8plus,-DULTRA_SPARC
|
||||
else
|
||||
ASFLAGS += -xarch=v8plus -DULTRA_SPARC
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
MKSHLIB = $(LD) -G
|
||||
|
||||
# Use the editline library to provide line-editing support.
|
||||
JS_EDITLINE = 1
|
|
@ -1,44 +0,0 @@
|
|||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla 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/MPL/
|
||||
#
|
||||
# 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 Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1999
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config stuff for SunOS5.7
|
||||
#
|
||||
|
||||
include $(DEPTH)/config/SunOS5.5.mk
|
|
@ -1,44 +0,0 @@
|
|||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla 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/MPL/
|
||||
#
|
||||
# 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 Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1999
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config stuff for SunOS5.8
|
||||
#
|
||||
|
||||
include $(DEPTH)/config/SunOS5.5.mk
|
|
@ -1,44 +0,0 @@
|
|||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla 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/MPL/
|
||||
#
|
||||
# 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 Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1999
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config stuff for SunOS5.9
|
||||
#
|
||||
|
||||
include $(DEPTH)/config/SunOS5.5.mk
|
|
@ -1,118 +0,0 @@
|
|||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla 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/MPL/
|
||||
#
|
||||
# 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 Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config for Windows NT using MS Visual C++ (version?)
|
||||
#
|
||||
|
||||
CC = cl
|
||||
CXX = cl
|
||||
|
||||
RANLIB = echo
|
||||
|
||||
PDBFILE = $(basename $(@F)).pdb
|
||||
|
||||
#.c.o:
|
||||
# $(CC) -c -MD $*.d $(CFLAGS) $<
|
||||
|
||||
CPU_ARCH = x86 # XXX fixme
|
||||
GFX_ARCH = win32
|
||||
|
||||
# MSVC compiler options for both debug/optimize
|
||||
# -nologo - suppress copyright message
|
||||
# -W3 - Warning level 3
|
||||
# -Gm - enable minimal rebuild
|
||||
# -Z7 - put debug info into the executable, not in .pdb file
|
||||
# -Zi - put debug info into .pdb file
|
||||
# -YX - automatic precompiled headers
|
||||
# -GX - enable C++ exception support
|
||||
WIN_CFLAGS = -nologo -W3
|
||||
|
||||
# MSVC compiler options for debug builds linked to MSVCRTD.DLL
|
||||
# -MDd - link with MSVCRTD.LIB (Dynamically-linked, multi-threaded, debug C-runtime)
|
||||
# -Od - minimal optimization
|
||||
WIN_IDG_CFLAGS = -MDd -Od -Z7
|
||||
|
||||
# MSVC compiler options for debug builds linked to MSVCRT.DLL
|
||||
# -MD - link with MSVCRT.LIB (Dynamically-linked, multi-threaded, debug C-runtime)
|
||||
# -Od - minimal optimization
|
||||
WIN_DEBUG_CFLAGS = -MD -Od -Zi -Fd$(OBJDIR)/$(PDBFILE)
|
||||
|
||||
# MSVC compiler options for release (optimized) builds
|
||||
# -MD - link with MSVCRT.LIB (Dynamically-linked, multi-threaded, C-runtime)
|
||||
# -O2 - Optimize for speed
|
||||
# -G5 - Optimize for Pentium
|
||||
WIN_OPT_CFLAGS = -MD -O2
|
||||
|
||||
ifdef BUILD_OPT
|
||||
OPTIMIZER = $(WIN_OPT_CFLAGS)
|
||||
else
|
||||
ifdef BUILD_IDG
|
||||
OPTIMIZER = $(WIN_IDG_CFLAGS)
|
||||
else
|
||||
OPTIMIZER = $(WIN_DEBUG_CFLAGS)
|
||||
endif
|
||||
endif
|
||||
|
||||
OS_CFLAGS = -D_X86_=1 -DXP_WIN -DXP_WIN32 -DWIN32 -D_WINDOWS -D_WIN32 $(WIN_CFLAGS)
|
||||
JSDLL_CFLAGS = -DEXPORT_JS_API
|
||||
OS_LIBS = -lm -lc
|
||||
|
||||
PREBUILT_CPUCFG = 1
|
||||
USE_MSVC = 1
|
||||
|
||||
LIB_LINK_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
|
||||
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib oldnames.lib \
|
||||
winmm.lib \
|
||||
-nologo\
|
||||
-subsystem:windows -dll -debug -pdb:$(OBJDIR)/$(PDBFILE)\
|
||||
-machine:I386\
|
||||
-opt:ref -opt:noicf
|
||||
|
||||
EXE_LINK_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
|
||||
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib oldnames.lib -nologo\
|
||||
-subsystem:console -debug -pdb:$(OBJDIR)/$(PDBFILE)\
|
||||
-machine:I386\
|
||||
-opt:ref -opt:noicf
|
||||
|
||||
# CAFEDIR = t:/cafe
|
||||
# JCLASSPATH = $(CAFEDIR)/Java/Lib/classes.zip
|
||||
# JAVAC = $(CAFEDIR)/Bin/sj.exe
|
||||
# JAVAH = $(CAFEDIR)/Java/Bin/javah.exe
|
||||
# JCFLAGS = -I$(CAFEDIR)/Java/Include -I$(CAFEDIR)/Java/Include/win32
|
|
@ -1,118 +0,0 @@
|
|||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla 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/MPL/
|
||||
#
|
||||
# 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 Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config for Windows NT using MS Visual C++ (version?)
|
||||
#
|
||||
|
||||
CC = cl
|
||||
CXX = cl
|
||||
|
||||
RANLIB = echo
|
||||
|
||||
PDBFILE = $(basename $(@F)).pdb
|
||||
|
||||
#.c.o:
|
||||
# $(CC) -c -MD $*.d $(CFLAGS) $<
|
||||
|
||||
CPU_ARCH = x86 # XXX fixme
|
||||
GFX_ARCH = win32
|
||||
|
||||
# MSVC compiler options for both debug/optimize
|
||||
# -nologo - suppress copyright message
|
||||
# -W3 - Warning level 3
|
||||
# -Gm - enable minimal rebuild
|
||||
# -Z7 - put debug info into the executable, not in .pdb file
|
||||
# -Zi - put debug info into .pdb file
|
||||
# -YX - automatic precompiled headers
|
||||
# -GX - enable C++ exception support
|
||||
WIN_CFLAGS = -nologo -W3
|
||||
|
||||
# MSVC compiler options for debug builds linked to MSVCRTD.DLL
|
||||
# -MDd - link with MSVCRTD.LIB (Dynamically-linked, multi-threaded, debug C-runtime)
|
||||
# -Od - minimal optimization
|
||||
WIN_IDG_CFLAGS = -MDd -Od -Z7
|
||||
|
||||
# MSVC compiler options for debug builds linked to MSVCRT.DLL
|
||||
# -MD - link with MSVCRT.LIB (Dynamically-linked, multi-threaded, debug C-runtime)
|
||||
# -Od - minimal optimization
|
||||
WIN_DEBUG_CFLAGS = -MD -Od -Zi -Fd$(OBJDIR)/$(PDBFILE)
|
||||
|
||||
# MSVC compiler options for release (optimized) builds
|
||||
# -MD - link with MSVCRT.LIB (Dynamically-linked, multi-threaded, C-runtime)
|
||||
# -O2 - Optimize for speed
|
||||
# -G5 - Optimize for Pentium
|
||||
WIN_OPT_CFLAGS = -MD -O2
|
||||
|
||||
ifdef BUILD_OPT
|
||||
OPTIMIZER = $(WIN_OPT_CFLAGS)
|
||||
else
|
||||
ifdef BUILD_IDG
|
||||
OPTIMIZER = $(WIN_IDG_CFLAGS)
|
||||
else
|
||||
OPTIMIZER = $(WIN_DEBUG_CFLAGS)
|
||||
endif
|
||||
endif
|
||||
|
||||
OS_CFLAGS = -D_X86_=1 -DXP_WIN -DXP_WIN32 -DWIN32 -D_WINDOWS -D_WIN32 -DWINVER=0x500 -D_WIN32_WINNT=0x500 $(WIN_CFLAGS)
|
||||
JSDLL_CFLAGS = -DEXPORT_JS_API
|
||||
OS_LIBS = -lm -lc
|
||||
|
||||
PREBUILT_CPUCFG = 1
|
||||
USE_MSVC = 1
|
||||
|
||||
LIB_LINK_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
|
||||
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib oldnames.lib \
|
||||
winmm.lib \
|
||||
-nologo\
|
||||
-subsystem:windows -dll -debug -pdb:$(OBJDIR)/$(PDBFILE)\
|
||||
-machine:I386\
|
||||
-opt:ref -opt:noicf
|
||||
|
||||
EXE_LINK_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
|
||||
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib oldnames.lib -nologo\
|
||||
-subsystem:console -debug -pdb:$(OBJDIR)/$(PDBFILE)\
|
||||
-machine:I386\
|
||||
-opt:ref -opt:noicf
|
||||
|
||||
# CAFEDIR = t:/cafe
|
||||
# JCLASSPATH = $(CAFEDIR)/Java/Lib/classes.zip
|
||||
# JAVAC = $(CAFEDIR)/Bin/sj.exe
|
||||
# JAVAH = $(CAFEDIR)/Java/Bin/javah.exe
|
||||
# JCFLAGS = -I$(CAFEDIR)/Java/Include -I$(CAFEDIR)/Java/Include/win32
|
|
@ -1,118 +0,0 @@
|
|||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla 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/MPL/
|
||||
#
|
||||
# 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 Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config for Windows NT using MS Visual C++ (version?)
|
||||
#
|
||||
|
||||
CC = cl
|
||||
CXX = cl
|
||||
|
||||
RANLIB = echo
|
||||
|
||||
PDBFILE = $(basename $(@F)).pdb
|
||||
|
||||
#.c.o:
|
||||
# $(CC) -c -MD $*.d $(CFLAGS) $<
|
||||
|
||||
CPU_ARCH = x86 # XXX fixme
|
||||
GFX_ARCH = win32
|
||||
|
||||
# MSVC compiler options for both debug/optimize
|
||||
# -nologo - suppress copyright message
|
||||
# -W3 - Warning level 3
|
||||
# -Gm - enable minimal rebuild
|
||||
# -Z7 - put debug info into the executable, not in .pdb file
|
||||
# -Zi - put debug info into .pdb file
|
||||
# -YX - automatic precompiled headers
|
||||
# -GX - enable C++ exception support
|
||||
WIN_CFLAGS = -nologo -W3
|
||||
|
||||
# MSVC compiler options for debug builds linked to MSVCRTD.DLL
|
||||
# -MDd - link with MSVCRTD.LIB (Dynamically-linked, multi-threaded, debug C-runtime)
|
||||
# -Od - minimal optimization
|
||||
WIN_IDG_CFLAGS = -MDd -Od -Z7
|
||||
|
||||
# MSVC compiler options for debug builds linked to MSVCRT.DLL
|
||||
# -MD - link with MSVCRT.LIB (Dynamically-linked, multi-threaded, debug C-runtime)
|
||||
# -Od - minimal optimization
|
||||
WIN_DEBUG_CFLAGS = -MD -Od -Zi -Fd$(OBJDIR)/$(PDBFILE)
|
||||
|
||||
# MSVC compiler options for release (optimized) builds
|
||||
# -MD - link with MSVCRT.LIB (Dynamically-linked, multi-threaded, C-runtime)
|
||||
# -O2 - Optimize for speed
|
||||
# -G5 - Optimize for Pentium
|
||||
WIN_OPT_CFLAGS = -MD -O2
|
||||
|
||||
ifdef BUILD_OPT
|
||||
OPTIMIZER = $(WIN_OPT_CFLAGS)
|
||||
else
|
||||
ifdef BUILD_IDG
|
||||
OPTIMIZER = $(WIN_IDG_CFLAGS)
|
||||
else
|
||||
OPTIMIZER = $(WIN_DEBUG_CFLAGS)
|
||||
endif
|
||||
endif
|
||||
|
||||
OS_CFLAGS = -D_X86_=1 -DXP_WIN -DXP_WIN32 -DWIN32 -D_WINDOWS -D_WIN32 -DWINVER=0x500 -D_WIN32_WINNT=0x500 $(WIN_CFLAGS)
|
||||
JSDLL_CFLAGS = -DEXPORT_JS_API
|
||||
OS_LIBS = -lm -lc
|
||||
|
||||
PREBUILT_CPUCFG = 1
|
||||
USE_MSVC = 1
|
||||
|
||||
LIB_LINK_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
|
||||
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib oldnames.lib \
|
||||
winmm.lib \
|
||||
-nologo\
|
||||
-subsystem:windows -dll -debug -pdb:$(OBJDIR)/$(PDBFILE)\
|
||||
-machine:I386\
|
||||
-opt:ref -opt:noicf
|
||||
|
||||
EXE_LINK_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
|
||||
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib oldnames.lib -nologo\
|
||||
-subsystem:console -debug -pdb:$(OBJDIR)/$(PDBFILE)\
|
||||
-machine:I386\
|
||||
-opt:ref -opt:noicf
|
||||
|
||||
# CAFEDIR = t:/cafe
|
||||
# JCLASSPATH = $(CAFEDIR)/Java/Lib/classes.zip
|
||||
# JAVAC = $(CAFEDIR)/Bin/sj.exe
|
||||
# JAVAH = $(CAFEDIR)/Java/Bin/javah.exe
|
||||
# JCFLAGS = -I$(CAFEDIR)/Java/Include -I$(CAFEDIR)/Java/Include/win32
|
|
@ -1,118 +0,0 @@
|
|||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla 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/MPL/
|
||||
#
|
||||
# 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 Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config for Windows NT using MS Visual C++ (version?)
|
||||
#
|
||||
|
||||
CC = cl
|
||||
CXX = cl
|
||||
|
||||
RANLIB = echo
|
||||
|
||||
PDBFILE = $(basename $(@F)).pdb
|
||||
|
||||
#.c.o:
|
||||
# $(CC) -c -MD $*.d $(CFLAGS) $<
|
||||
|
||||
CPU_ARCH = x86 # XXX fixme
|
||||
GFX_ARCH = win32
|
||||
|
||||
# MSVC compiler options for both debug/optimize
|
||||
# -nologo - suppress copyright message
|
||||
# -W3 - Warning level 3
|
||||
# -Gm - enable minimal rebuild
|
||||
# -Z7 - put debug info into the executable, not in .pdb file
|
||||
# -Zi - put debug info into .pdb file
|
||||
# -YX - automatic precompiled headers
|
||||
# -GX - enable C++ exception support
|
||||
WIN_CFLAGS = -nologo -W3
|
||||
|
||||
# MSVC compiler options for debug builds linked to MSVCRTD.DLL
|
||||
# -MDd - link with MSVCRTD.LIB (Dynamically-linked, multi-threaded, debug C-runtime)
|
||||
# -Od - minimal optimization
|
||||
WIN_IDG_CFLAGS = -MDd -Od -Z7
|
||||
|
||||
# MSVC compiler options for debug builds linked to MSVCRT.DLL
|
||||
# -MD - link with MSVCRT.LIB (Dynamically-linked, multi-threaded, debug C-runtime)
|
||||
# -Od - minimal optimization
|
||||
WIN_DEBUG_CFLAGS = -MD -Od -Zi -Fd$(OBJDIR)/$(PDBFILE)
|
||||
|
||||
# MSVC compiler options for release (optimized) builds
|
||||
# -MD - link with MSVCRT.LIB (Dynamically-linked, multi-threaded, C-runtime)
|
||||
# -O2 - Optimize for speed
|
||||
# -G5 - Optimize for Pentium
|
||||
WIN_OPT_CFLAGS = -MD -O2
|
||||
|
||||
ifdef BUILD_OPT
|
||||
OPTIMIZER = $(WIN_OPT_CFLAGS)
|
||||
else
|
||||
ifdef BUILD_IDG
|
||||
OPTIMIZER = $(WIN_IDG_CFLAGS)
|
||||
else
|
||||
OPTIMIZER = $(WIN_DEBUG_CFLAGS)
|
||||
endif
|
||||
endif
|
||||
|
||||
OS_CFLAGS = -D_X86_=1 -DXP_WIN -DXP_WIN32 -DWIN32 -D_WINDOWS -D_WIN32 -DWINVER=0x500 -D_WIN32_WINNT=0x500 $(WIN_CFLAGS) -DAVMPLUS_WIN32 -DAVMPLUS_IA32
|
||||
JSDLL_CFLAGS = -DEXPORT_JS_API
|
||||
OS_LIBS = -lm -lc
|
||||
|
||||
PREBUILT_CPUCFG = 1
|
||||
USE_MSVC = 1
|
||||
|
||||
LIB_LINK_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
|
||||
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib oldnames.lib \
|
||||
winmm.lib \
|
||||
-nologo\
|
||||
-subsystem:windows -dll -debug -pdb:$(OBJDIR)/$(PDBFILE)\
|
||||
-machine:I386\
|
||||
-opt:ref -opt:noicf
|
||||
|
||||
EXE_LINK_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
|
||||
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib oldnames.lib -nologo\
|
||||
-subsystem:console -debug -pdb:$(OBJDIR)/$(PDBFILE)\
|
||||
-machine:I386\
|
||||
-opt:ref -opt:noicf
|
||||
|
||||
# CAFEDIR = t:/cafe
|
||||
# JCLASSPATH = $(CAFEDIR)/Java/Lib/classes.zip
|
||||
# JAVAC = $(CAFEDIR)/Bin/sj.exe
|
||||
# JAVAH = $(CAFEDIR)/Java/Bin/javah.exe
|
||||
# JCFLAGS = -I$(CAFEDIR)/Java/Include -I$(CAFEDIR)/Java/Include/win32
|
|
@ -1,118 +0,0 @@
|
|||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla 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/MPL/
|
||||
#
|
||||
# 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 Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config for Windows NT using MS Visual C++ (version?)
|
||||
#
|
||||
|
||||
CC = cl
|
||||
CXX = cl
|
||||
|
||||
RANLIB = echo
|
||||
|
||||
PDBFILE = $(basename $(@F)).pdb
|
||||
|
||||
#.c.o:
|
||||
# $(CC) -c -MD $*.d $(CFLAGS) $<
|
||||
|
||||
CPU_ARCH = x86 # XXX fixme
|
||||
GFX_ARCH = win32
|
||||
|
||||
# MSVC compiler options for both debug/optimize
|
||||
# -nologo - suppress copyright message
|
||||
# -W3 - Warning level 3
|
||||
# -Gm - enable minimal rebuild
|
||||
# -Z7 - put debug info into the executable, not in .pdb file
|
||||
# -Zi - put debug info into .pdb file
|
||||
# -YX - automatic precompiled headers
|
||||
# -GX - enable C++ exception support
|
||||
WIN_CFLAGS = -nologo -W3
|
||||
|
||||
# MSVC compiler options for debug builds linked to MSVCRTD.DLL
|
||||
# -MDd - link with MSVCRTD.LIB (Dynamically-linked, multi-threaded, debug C-runtime)
|
||||
# -Od - minimal optimization
|
||||
WIN_IDG_CFLAGS = -MDd -Od -Z7
|
||||
|
||||
# MSVC compiler options for debug builds linked to MSVCRT.DLL
|
||||
# -MD - link with MSVCRT.LIB (Dynamically-linked, multi-threaded, debug C-runtime)
|
||||
# -Od - minimal optimization
|
||||
WIN_DEBUG_CFLAGS = -MD -Od -Zi -Fd$(OBJDIR)/$(PDBFILE)
|
||||
|
||||
# MSVC compiler options for release (optimized) builds
|
||||
# -MD - link with MSVCRT.LIB (Dynamically-linked, multi-threaded, C-runtime)
|
||||
# -O2 - Optimize for speed
|
||||
# -G5 - Optimize for Pentium
|
||||
WIN_OPT_CFLAGS = -MD -O2
|
||||
|
||||
ifdef BUILD_OPT
|
||||
OPTIMIZER = $(WIN_OPT_CFLAGS)
|
||||
else
|
||||
ifdef BUILD_IDG
|
||||
OPTIMIZER = $(WIN_IDG_CFLAGS)
|
||||
else
|
||||
OPTIMIZER = $(WIN_DEBUG_CFLAGS)
|
||||
endif
|
||||
endif
|
||||
|
||||
OS_CFLAGS = -D_X86_=1 -DXP_WIN -DXP_WIN32 -DWIN32 -D_WINDOWS -D_WIN32 -DWINVER=0x500 -D_WIN32_WINNT=0x500 $(WIN_CFLAGS)
|
||||
JSDLL_CFLAGS = -DEXPORT_JS_API
|
||||
OS_LIBS = -lm -lc
|
||||
|
||||
PREBUILT_CPUCFG = 1
|
||||
USE_MSVC = 1
|
||||
|
||||
LIB_LINK_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
|
||||
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib oldnames.lib \
|
||||
winmm.lib \
|
||||
-nologo\
|
||||
-subsystem:windows -dll -debug -pdb:$(OBJDIR)/$(PDBFILE)\
|
||||
-machine:I386\
|
||||
-opt:ref -opt:noicf
|
||||
|
||||
EXE_LINK_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
|
||||
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib oldnames.lib -nologo\
|
||||
-subsystem:console -debug -pdb:$(OBJDIR)/$(PDBFILE)\
|
||||
-machine:I386\
|
||||
-opt:ref -opt:noicf
|
||||
|
||||
# CAFEDIR = t:/cafe
|
||||
# JCLASSPATH = $(CAFEDIR)/Java/Lib/classes.zip
|
||||
# JAVAC = $(CAFEDIR)/Bin/sj.exe
|
||||
# JAVAH = $(CAFEDIR)/Java/Bin/javah.exe
|
||||
# JCFLAGS = -I$(CAFEDIR)/Java/Include -I$(CAFEDIR)/Java/Include/win32
|
|
@ -0,0 +1,362 @@
|
|||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla 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/MPL/
|
||||
#
|
||||
# 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 this file as it was released upon August 6, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Christopher Seawood.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
# Benjamin Smedberg <benjamin@smedbergs.us>
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
# A netscape style .mk file for autoconf builds
|
||||
|
||||
INCLUDED_AUTOCONF_MK = 1
|
||||
USE_AUTOCONF = 1
|
||||
MOZILLA_CLIENT = 1
|
||||
target = @target@
|
||||
ac_configure_args = @ac_configure_args@
|
||||
BUILD_MODULES = @BUILD_MODULES@
|
||||
MOZILLA_VERSION = @MOZILLA_VERSION@
|
||||
|
||||
MOZ_BUILD_APP = @MOZ_BUILD_APP@
|
||||
MOZ_APP_NAME = @MOZ_APP_NAME@
|
||||
MOZ_APP_DISPLAYNAME = @MOZ_APP_DISPLAYNAME@
|
||||
MOZ_APP_VERSION = @MOZ_APP_VERSION@
|
||||
|
||||
MOZ_PKG_SPECIAL = @MOZ_PKG_SPECIAL@
|
||||
|
||||
prefix = @prefix@
|
||||
exec_prefix = @exec_prefix@
|
||||
bindir = @bindir@
|
||||
includedir = @includedir@
|
||||
libdir = @libdir@
|
||||
datadir = @datadir@
|
||||
mandir = @mandir@
|
||||
|
||||
installdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
|
||||
sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION)
|
||||
|
||||
DIST = $(DEPTH)/dist
|
||||
|
||||
MOZ_JS_LIBS = @MOZ_JS_LIBS@
|
||||
|
||||
MOZ_SYNC_BUILD_FILES = @MOZ_SYNC_BUILD_FILES@
|
||||
|
||||
MOZ_DEBUG = @MOZ_DEBUG@
|
||||
MOZ_DEBUG_MODULES = @MOZ_DEBUG_MODULES@
|
||||
MOZ_PROFILE_MODULES = @MOZ_PROFILE_MODULES@
|
||||
MOZ_DEBUG_ENABLE_DEFS = @MOZ_DEBUG_ENABLE_DEFS@
|
||||
MOZ_DEBUG_DISABLE_DEFS = @MOZ_DEBUG_DISABLE_DEFS@
|
||||
MOZ_DEBUG_FLAGS = @MOZ_DEBUG_FLAGS@
|
||||
MOZ_DEBUG_LDFLAGS=@MOZ_DEBUG_LDFLAGS@
|
||||
MOZ_DBGRINFO_MODULES = @MOZ_DBGRINFO_MODULES@
|
||||
MOZ_EXTENSIONS = @MOZ_EXTENSIONS@
|
||||
MOZ_IMG_DECODERS= @MOZ_IMG_DECODERS@
|
||||
MOZ_IMG_ENCODERS= @MOZ_IMG_ENCODERS@
|
||||
MOZ_JSDEBUGGER = @MOZ_JSDEBUGGER@
|
||||
MOZ_PERF_METRICS = @MOZ_PERF_METRICS@
|
||||
MOZ_LEAKY = @MOZ_LEAKY@
|
||||
MOZ_MEMORY = @MOZ_MEMORY@
|
||||
MOZ_JPROF = @MOZ_JPROF@
|
||||
MOZ_SHARK = @MOZ_SHARK@
|
||||
MOZ_CALLGRIND = @MOZ_CALLGRIND@
|
||||
MOZ_VTUNE = @MOZ_VTUNE@
|
||||
DEHYDRA_PATH = @DEHYDRA_PATH@
|
||||
|
||||
ENABLE_EAZEL_PROFILER=@ENABLE_EAZEL_PROFILER@
|
||||
EAZEL_PROFILER_CFLAGS=@EAZEL_PROFILER_CFLAGS@
|
||||
EAZEL_PROFILER_LIBS=@EAZEL_PROFILER_LIBS@
|
||||
GC_LEAK_DETECTOR = @GC_LEAK_DETECTOR@
|
||||
NS_TRACE_MALLOC = @NS_TRACE_MALLOC@
|
||||
USE_ELF_DYNSTR_GC = @USE_ELF_DYNSTR_GC@
|
||||
INCREMENTAL_LINKER = @INCREMENTAL_LINKER@
|
||||
MACOSX_DEPLOYMENT_TARGET = @MACOSX_DEPLOYMENT_TARGET@
|
||||
BUILD_STATIC_LIBS = @BUILD_STATIC_LIBS@
|
||||
ENABLE_TESTS = @ENABLE_TESTS@
|
||||
JS_ULTRASPARC_OPTS = @JS_ULTRASPARC_OPTS@
|
||||
JS_STATIC_BUILD = @JS_STATIC_BUILD@
|
||||
|
||||
TAR=@TAR@
|
||||
|
||||
# The MOZ_UI_LOCALE var is used to build a particular locale. Do *not*
|
||||
# use the var to change any binary files. Do *not* use this var unless you
|
||||
# write rules for the "clean-locale" and "locale" targets.
|
||||
MOZ_UI_LOCALE = @MOZ_UI_LOCALE@
|
||||
|
||||
MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS = @MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS@
|
||||
MOZ_COMPONENT_NSPR_LIBS=@MOZ_COMPONENT_NSPR_LIBS@
|
||||
|
||||
MOZ_FIX_LINK_PATHS=@MOZ_FIX_LINK_PATHS@
|
||||
|
||||
XPCOM_FROZEN_LDOPTS=@XPCOM_FROZEN_LDOPTS@
|
||||
XPCOM_LIBS=@XPCOM_LIBS@
|
||||
MOZ_TIMELINE=@MOZ_TIMELINE@
|
||||
|
||||
ENABLE_STRIP = @ENABLE_STRIP@
|
||||
PKG_SKIP_STRIP = @PKG_SKIP_STRIP@
|
||||
|
||||
MOZ_POST_DSO_LIB_COMMAND = @MOZ_POST_DSO_LIB_COMMAND@
|
||||
MOZ_POST_PROGRAM_COMMAND = @MOZ_POST_PROGRAM_COMMAND@
|
||||
|
||||
MOZ_BUILD_ROOT = @MOZ_BUILD_ROOT@
|
||||
|
||||
MOZ_INSURE = @MOZ_INSURE@
|
||||
MOZ_INSURIFYING = @MOZ_INSURIFYING@
|
||||
MOZ_INSURE_DIRS = @MOZ_INSURE_DIRS@
|
||||
MOZ_INSURE_EXCLUDE_DIRS = @MOZ_INSURE_EXCLUDE_DIRS@
|
||||
|
||||
MOZ_NATIVE_NSPR = @MOZ_NATIVE_NSPR@
|
||||
|
||||
CROSS_COMPILE = @CROSS_COMPILE@
|
||||
|
||||
WCHAR_CFLAGS = @WCHAR_CFLAGS@
|
||||
|
||||
OS_CPPFLAGS = @CPPFLAGS@
|
||||
OS_CFLAGS = $(OS_CPPFLAGS) @CFLAGS@
|
||||
OS_CXXFLAGS = $(OS_CPPFLAGS) @CXXFLAGS@
|
||||
OS_LDFLAGS = @LDFLAGS@
|
||||
|
||||
OS_COMPILE_CFLAGS = $(OS_CPPFLAGS) @COMPILE_CFLAGS@
|
||||
OS_COMPILE_CXXFLAGS = $(OS_CPPFLAGS) @COMPILE_CXXFLAGS@
|
||||
|
||||
OS_INCLUDES = $(NSPR_CFLAGS)
|
||||
OS_LIBS = @LIBS@
|
||||
ACDEFINES = @MOZ_DEFINES@
|
||||
|
||||
WARNINGS_AS_ERRORS = @WARNINGS_AS_ERRORS@
|
||||
|
||||
MOZ_OPTIMIZE = @MOZ_OPTIMIZE@
|
||||
MOZ_OPTIMIZE_FLAGS = @MOZ_OPTIMIZE_FLAGS@
|
||||
MOZ_OPTIMIZE_LDFLAGS = @MOZ_OPTIMIZE_LDFLAGS@
|
||||
MOZ_OPTIMIZE_SIZE_TWEAK = @MOZ_OPTIMIZE_SIZE_TWEAK@
|
||||
|
||||
MOZ_RTTI_FLAGS_ON = @_MOZ_RTTI_FLAGS_ON@
|
||||
|
||||
MOZ_PROFILE_GUIDED_OPTIMIZE_DISABLE = @MOZ_PROFILE_GUIDED_OPTIMIZE_DISABLE@
|
||||
PROFILE_GEN_CFLAGS = @PROFILE_GEN_CFLAGS@
|
||||
PROFILE_GEN_LDFLAGS = @PROFILE_GEN_LDFLAGS@
|
||||
PROFILE_USE_CFLAGS = @PROFILE_USE_CFLAGS@
|
||||
PROFILE_USE_LDFLAGS = @PROFILE_USE_LDFLAGS@
|
||||
|
||||
WIN_TOP_SRC = @WIN_TOP_SRC@
|
||||
CYGWIN_WRAPPER = @CYGWIN_WRAPPER@
|
||||
AS_PERL = @AS_PERL@
|
||||
CYGDRIVE_MOUNT = @CYGDRIVE_MOUNT@
|
||||
AR = @AR@
|
||||
AR_FLAGS = @AR_FLAGS@
|
||||
AR_EXTRACT = @AR_EXTRACT@
|
||||
AR_LIST = @AR_LIST@
|
||||
AR_DELETE = @AR_DELETE@
|
||||
AS = @AS@
|
||||
ASFLAGS = @ASFLAGS@
|
||||
AS_DASH_C_FLAG = @AS_DASH_C_FLAG@
|
||||
LD = @LD@
|
||||
RC = @RC@
|
||||
RCFLAGS = @RCFLAGS@
|
||||
WINDRES = @WINDRES@
|
||||
USE_SHORT_LIBNAME = @USE_SHORT_LIBNAME@
|
||||
IMPLIB = @IMPLIB@
|
||||
FILTER = @FILTER@
|
||||
BIN_FLAGS = @BIN_FLAGS@
|
||||
MIDL = @MIDL@
|
||||
MIDL_FLAGS = @MIDL_FLAGS@
|
||||
_MSC_VER = @_MSC_VER@
|
||||
|
||||
DLL_PREFIX = @DLL_PREFIX@
|
||||
LIB_PREFIX = @LIB_PREFIX@
|
||||
OBJ_SUFFIX = @OBJ_SUFFIX@
|
||||
LIB_SUFFIX = @LIB_SUFFIX@
|
||||
DLL_SUFFIX = @DLL_SUFFIX@
|
||||
BIN_SUFFIX = @BIN_SUFFIX@
|
||||
ASM_SUFFIX = @ASM_SUFFIX@
|
||||
IMPORT_LIB_SUFFIX = @IMPORT_LIB_SUFFIX@
|
||||
USE_N32 = @USE_N32@
|
||||
HAVE_64BIT_OS = @HAVE_64BIT_OS@
|
||||
|
||||
# Temp hack. It is not my intention to leave this crap in here for ever.
|
||||
# Im talking to fur right now to solve the problem without introducing
|
||||
# NS_USE_NATIVE to the build system -ramiro.
|
||||
NS_USE_NATIVE = @NS_USE_NATIVE@
|
||||
|
||||
CC = @CC@
|
||||
CXX = @CXX@
|
||||
|
||||
CC_VERSION = @CC_VERSION@
|
||||
CXX_VERSION = @CXX_VERSION@
|
||||
|
||||
GNU_AS = @GNU_AS@
|
||||
GNU_LD = @GNU_LD@
|
||||
GNU_CC = @GNU_CC@
|
||||
GNU_CXX = @GNU_CXX@
|
||||
HAVE_GCC3_ABI = @HAVE_GCC3_ABI@
|
||||
INTEL_CC = @INTEL_CC@
|
||||
INTEL_CXX = @INTEL_CXX@
|
||||
|
||||
HOST_CC = @HOST_CC@
|
||||
HOST_CXX = @HOST_CXX@
|
||||
HOST_CFLAGS = @HOST_CFLAGS@
|
||||
HOST_CXXFLAGS = @HOST_CXXFLAGS@
|
||||
HOST_OPTIMIZE_FLAGS = @HOST_OPTIMIZE_FLAGS@
|
||||
HOST_NSPR_MDCPUCFG = @HOST_NSPR_MDCPUCFG@
|
||||
HOST_AR = @HOST_AR@
|
||||
HOST_AR_FLAGS = @HOST_AR_FLAGS@
|
||||
HOST_LD = @HOST_LD@
|
||||
HOST_RANLIB = @HOST_RANLIB@
|
||||
HOST_BIN_SUFFIX = @HOST_BIN_SUFFIX@
|
||||
|
||||
HOST_OS_ARCH = @HOST_OS_ARCH@
|
||||
host_cpu = @host_cpu@
|
||||
host_vendor = @host_vendor@
|
||||
host_os = @host_os@
|
||||
|
||||
TARGET_NSPR_MDCPUCFG = @TARGET_NSPR_MDCPUCFG@
|
||||
TARGET_CPU = @TARGET_CPU@
|
||||
TARGET_VENDOR = @TARGET_VENDOR@
|
||||
TARGET_OS = @TARGET_OS@
|
||||
TARGET_MD_ARCH = @TARGET_MD_ARCH@
|
||||
TARGET_XPCOM_ABI = @TARGET_XPCOM_ABI@
|
||||
|
||||
AUTOCONF = @AUTOCONF@
|
||||
PERL = @PERL@
|
||||
PYTHON = @PYTHON@
|
||||
RANLIB = @RANLIB@
|
||||
WHOAMI = @WHOAMI@
|
||||
UNZIP = @UNZIP@
|
||||
ZIP = @ZIP@
|
||||
XARGS = @XARGS@
|
||||
STRIP = @STRIP@
|
||||
DOXYGEN = @DOXYGEN@
|
||||
MAKE = @MAKE@
|
||||
PBBUILD_BIN = @PBBUILD@
|
||||
SDP = @SDP@
|
||||
NSINSTALL_BIN = @NSINSTALL_BIN@
|
||||
|
||||
NSPR_CONFIG = @NSPR_CONFIG@
|
||||
NSPR_CFLAGS = @NSPR_CFLAGS@
|
||||
NSPR_LIBS = @NSPR_LIBS@
|
||||
|
||||
USE_DEPENDENT_LIBS = @USE_DEPENDENT_LIBS@
|
||||
|
||||
# MKSHLIB_FORCE_ALL is used to force the linker to include all object
|
||||
# files present in an archive. MKSHLIB_UNFORCE_ALL reverts the linker
|
||||
# to normal behavior. Makefile's that create shared libraries out of
|
||||
# archives use these flags to force in all of the .o files in the
|
||||
# archives into the shared library.
|
||||
WRAP_MALLOC_LIB = @WRAP_MALLOC_LIB@
|
||||
WRAP_MALLOC_CFLAGS = @WRAP_MALLOC_CFLAGS@
|
||||
DSO_CFLAGS = @DSO_CFLAGS@
|
||||
DSO_PIC_CFLAGS = @DSO_PIC_CFLAGS@
|
||||
MKSHLIB = @MKSHLIB@
|
||||
MKCSHLIB = @MKCSHLIB@
|
||||
MKSHLIB_FORCE_ALL = @MKSHLIB_FORCE_ALL@
|
||||
MKSHLIB_UNFORCE_ALL = @MKSHLIB_UNFORCE_ALL@
|
||||
DSO_LDOPTS = @DSO_LDOPTS@
|
||||
DLL_SUFFIX = @DLL_SUFFIX@
|
||||
|
||||
NO_LD_ARCHIVE_FLAGS = @NO_LD_ARCHIVE_FLAGS@
|
||||
|
||||
MOZ_TOOLKIT_REGISTRY_CFLAGS = \
|
||||
$(TK_CFLAGS)
|
||||
|
||||
GLIB_CFLAGS = @GLIB_CFLAGS@
|
||||
GLIB_LIBS = @GLIB_LIBS@
|
||||
GLIB_GMODULE_LIBS = @GLIB_GMODULE_LIBS@
|
||||
|
||||
MOZ_NATIVE_MAKEDEPEND = @SYSTEM_MAKEDEPEND@
|
||||
|
||||
# Used for LD_LIBRARY_PATH
|
||||
LIBS_PATH = @LIBS_PATH@
|
||||
|
||||
MOZ_AUTO_DEPS = @MOZ_AUTO_DEPS@
|
||||
COMPILER_DEPEND = @COMPILER_DEPEND@
|
||||
MDDEPDIR := @MDDEPDIR@
|
||||
|
||||
MOZ_DEMANGLE_SYMBOLS = @MOZ_DEMANGLE_SYMBOLS@
|
||||
|
||||
# XXX - these need to be cleaned up and have real checks added -cls
|
||||
CM_BLDTYPE=dbg
|
||||
AWT_11=1
|
||||
MOZ_BITS=32
|
||||
OS_TARGET=@OS_TARGET@
|
||||
OS_ARCH=@OS_ARCH@
|
||||
OS_RELEASE=@OS_RELEASE@
|
||||
OS_TEST=@OS_TEST@
|
||||
|
||||
TARGET_DEVICE = @TARGET_DEVICE@
|
||||
|
||||
# For AIX build
|
||||
AIX_OBJMODEL = @AIX_OBJMODEL@
|
||||
|
||||
# For OS/2 build
|
||||
MOZ_OS2_TOOLS = @MOZ_OS2_TOOLS@
|
||||
MOZ_OS2_USE_DECLSPEC = @MOZ_OS2_USE_DECLSPEC@
|
||||
MOZ_OS2_HIGH_MEMORY = @MOZ_OS2_HIGH_MEMORY@
|
||||
|
||||
MOZILLA_OFFICIAL = @MOZILLA_OFFICIAL@
|
||||
BUILD_OFFICIAL = @BUILD_OFFICIAL@
|
||||
MOZ_MILESTONE_RELEASE = @MOZ_MILESTONE_RELEASE@
|
||||
|
||||
# Win32 options
|
||||
MOZ_PROFILE = @MOZ_PROFILE@
|
||||
MOZ_BROWSE_INFO = @MOZ_BROWSE_INFO@
|
||||
MOZ_TOOLS_DIR = @MOZ_TOOLS_DIR@
|
||||
MOZ_DEBUG_SYMBOLS = @MOZ_DEBUG_SYMBOLS@
|
||||
MOZ_QUANTIFY = @MOZ_QUANTIFY@
|
||||
MSMANIFEST_TOOL = @MSMANIFEST_TOOL@
|
||||
WIN32_REDIST_DIR = @WIN32_REDIST_DIR@
|
||||
WIN32_CRT_SRC_DIR = @WIN32_CRT_SRC_DIR@
|
||||
WIN32_CUSTOM_CRT_DIR = @WIN32_CUSTOM_CRT_DIR@
|
||||
# These are for custom CRT building
|
||||
ifdef MOZ_MEMORY
|
||||
ifneq (,$(WIN32_CRT_SRC_DIR)$(WIN32_CUSTOM_CRT_DIR))
|
||||
export LIB = @MOZ_LIB@
|
||||
export PATH = @MOZ_PATH@
|
||||
DLLFLAGS = @DLLFLAGS@
|
||||
endif
|
||||
endif
|
||||
|
||||
# Codesighs tools option, enables win32 mapfiles.
|
||||
MOZ_MAPINFO = @MOZ_MAPINFO@
|
||||
|
||||
WINCE = @WINCE@
|
||||
|
||||
MACOS_SDK_DIR = @MACOS_SDK_DIR@
|
||||
NEXT_ROOT = @NEXT_ROOT@
|
||||
GCC_VERSION = @GCC_VERSION@
|
||||
XCODEBUILD_VERSION= @XCODEBUILD_VERSION@
|
||||
HAS_XCODE_2_1 = @HAS_XCODE_2_1@
|
||||
UNIVERSAL_BINARY= @UNIVERSAL_BINARY@
|
||||
HAVE_DTRACE= @HAVE_DTRACE@
|
||||
|
||||
VISIBILITY_FLAGS = @VISIBILITY_FLAGS@
|
||||
WRAP_SYSTEM_INCLUDES = @WRAP_SYSTEM_INCLUDES@
|
||||
|
||||
HAVE_ARM_SIMD= @HAVE_ARM_SIMD@
|
|
@ -0,0 +1,108 @@
|
|||
# check-sync-dirs.py --- check that one directory is an exact subset of another
|
||||
#
|
||||
# Usage: python check-sync-dirs.py COPY ORIGINAL
|
||||
#
|
||||
# Check that the files present in the directory tree COPY are exact
|
||||
# copies of their counterparts in the directory tree ORIGINAL. COPY
|
||||
# need not have all the files in ORIGINAL, but COPY may not have files
|
||||
# absent from ORIGINAL.
|
||||
#
|
||||
# Each directory in COPY may have a file named
|
||||
# 'check-sync-exceptions', which lists files in COPY that need not be
|
||||
# the same as the corresponding file in ORIGINAL, or exist at all in
|
||||
# ORIGINAL. (The 'check-sync-exceptions' file itself is always
|
||||
# treated as exceptional.) Blank lines and '#' comments in the file
|
||||
# are ignored.
|
||||
|
||||
import sys
|
||||
import os
|
||||
from os.path import join
|
||||
import filecmp
|
||||
import textwrap
|
||||
import fnmatch
|
||||
|
||||
if len(sys.argv) != 3:
|
||||
print >> sys.stderr, "Usage: %s COPY ORIGINAL" % sys.argv[0]
|
||||
sys.exit(1)
|
||||
|
||||
copy = sys.argv[1]
|
||||
original = sys.argv[2]
|
||||
|
||||
# Ignore detritus left lying around by editing tools.
|
||||
ignored_patterns = ['*~', '.#*', '#*#', '*.orig', '*.rej']
|
||||
|
||||
# Return the contents of FILENAME, a 'check-sync-exceptions' file, as
|
||||
# a dictionary whose keys are exactly the list of filenames, along
|
||||
# with the basename of FILENAME itself. If FILENAME does not exist,
|
||||
# return the empty dictionary.
|
||||
def read_exceptions(filename):
|
||||
if (os.path.exists(filename)):
|
||||
f = file(filename)
|
||||
exceptions={}
|
||||
for line in f:
|
||||
line = line.strip()
|
||||
if line != '' and line[0] != '#':
|
||||
exceptions[line] = None
|
||||
exceptions[os.path.basename (filename)] = None
|
||||
f.close()
|
||||
return exceptions
|
||||
else:
|
||||
return {}
|
||||
|
||||
# Return true if FILENAME matches any pattern in the list of filename
|
||||
# patterns PATTERNS.
|
||||
def fnmatch_any(filename, patterns):
|
||||
for pattern in patterns:
|
||||
if fnmatch.fnmatch(filename, pattern):
|
||||
return True
|
||||
return False
|
||||
|
||||
# Check the contents of COPY/SUBDIR against ORIGINAL/SUBDIR. For each
|
||||
# file that differs, apply REPORT to COPY, ORIGINAL, and the file's
|
||||
# relative path. COPY and ORIGINAL should be absolute. Ignore files
|
||||
# that match patterns given in the list IGNORE.
|
||||
def check(copy, original, ignore, report):
|
||||
os.chdir(copy)
|
||||
for (dirpath, dirnames, filenames) in os.walk('.'):
|
||||
exceptions = read_exceptions(join(dirpath, 'check-sync-exceptions'))
|
||||
for filename in filenames:
|
||||
if filename in exceptions:
|
||||
continue
|
||||
if fnmatch_any(filename, ignore):
|
||||
continue
|
||||
relative_name = join(dirpath, filename)
|
||||
original_name = join(original, relative_name)
|
||||
if (os.path.exists(original_name)
|
||||
and filecmp.cmp(relative_name, original_name)):
|
||||
continue
|
||||
report(copy, original, relative_name)
|
||||
|
||||
|
||||
differences_found = False
|
||||
|
||||
# Print an error message for DIFFERING, which was found to differ
|
||||
# between COPY and ORIGINAL. Set the global variable differences_found.
|
||||
def report(copy, original, differing):
|
||||
global differences_found
|
||||
if not differences_found:
|
||||
print >> sys.stderr, "TEST-FAIL | build file copies are not in sync"
|
||||
print >> sys.stderr, "file(s) found in: %s" % (copy)
|
||||
print >> sys.stderr, ("differ from their originals in: %s"
|
||||
% (original))
|
||||
print >> sys.stderr, "file differs: %s" % (differing)
|
||||
differences_found = True
|
||||
|
||||
check(os.path.abspath(copy),
|
||||
os.path.abspath(original),
|
||||
ignored_patterns,
|
||||
report)
|
||||
|
||||
if differences_found:
|
||||
msg=('''In general, the files in '%s' should always be exact copies of
|
||||
originals in '%s'. A change made to one should also be made to the
|
||||
other. See 'check-sync-dirs.py' for more details.'''
|
||||
% (copy, original))
|
||||
print >> sys.stderr, textwrap.fill(msg, 75)
|
||||
sys.exit(1)
|
||||
|
||||
sys.exit(0)
|
|
@ -0,0 +1,6 @@
|
|||
Makefile.in
|
||||
autoconf.mk.in
|
||||
check-sync-dirs.py
|
||||
|
||||
# This is a copy of nspr's config/make-system-wrappers.pl.
|
||||
make-system-wrappers.pl
|
|
@ -0,0 +1,884 @@
|
|||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla 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/MPL/
|
||||
#
|
||||
# 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 the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
# Benjamin Smedberg <benjamin@smedbergs.us>
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# config.mk
|
||||
#
|
||||
# Determines the platform and builds the macros needed to load the
|
||||
# appropriate platform-specific .mk file, then defines all (most?)
|
||||
# of the generic macros.
|
||||
#
|
||||
|
||||
# Define an include-at-most-once flag
|
||||
INCLUDED_CONFIG_MK = 1
|
||||
|
||||
EXIT_ON_ERROR = set -e; # Shell loops continue past errors without this.
|
||||
|
||||
ifndef topsrcdir
|
||||
topsrcdir = $(DEPTH)
|
||||
endif
|
||||
|
||||
ifndef INCLUDED_AUTOCONF_MK
|
||||
include $(DEPTH)/config/autoconf.mk
|
||||
endif
|
||||
ifndef INCLUDED_INSURE_MK
|
||||
ifdef MOZ_INSURIFYING
|
||||
include $(topsrcdir)/config/insure.mk
|
||||
endif
|
||||
endif
|
||||
|
||||
COMMA = ,
|
||||
|
||||
# Sanity check some variables
|
||||
CHECK_VARS := \
|
||||
XPI_NAME \
|
||||
LIBRARY_NAME \
|
||||
MODULE \
|
||||
DEPTH \
|
||||
SHORT_LIBNAME \
|
||||
XPI_PKGNAME \
|
||||
INSTALL_EXTENSION_ID \
|
||||
$(NULL)
|
||||
|
||||
# checks for internal spaces or trailing spaces in the variable
|
||||
# named by $x
|
||||
check-variable = $(if $(filter-out 0 1,$(words $($(x))z)),$(error Spaces are not allowed in $(x)))
|
||||
|
||||
$(foreach x,$(CHECK_VARS),$(check-variable))
|
||||
|
||||
# FINAL_TARGET specifies the location into which we copy end-user-shipped
|
||||
# build products (typelibs, components, chrome).
|
||||
#
|
||||
# It will usually be the well-loved $(DIST)/bin, today, but can also be an
|
||||
# XPI-contents staging directory for ambitious and right-thinking extensions.
|
||||
FINAL_TARGET = $(if $(XPI_NAME),$(DIST)/xpi-stage/$(XPI_NAME),$(DIST)/bin)
|
||||
|
||||
# MAKE_JARS_TARGET is a staging area for make-jars.pl. When packaging in
|
||||
# the jar format, make-jars leaves behind a directory structure that's not
|
||||
# needed in $(FINAL_TARGET). For both, flat, and symlink, the directory
|
||||
# structure contains the chrome, so leave it in $(FINAL_TARGET).
|
||||
ifeq (jar,$(MOZ_CHROME_FILE_FORMAT))
|
||||
MAKE_JARS_TARGET = $(if $(XPI_NAME),$(FINAL_TARGET).stage,$(DIST)/chrome-stage)
|
||||
else
|
||||
MAKE_JARS_TARGET = $(FINAL_TARGET)
|
||||
endif
|
||||
|
||||
#
|
||||
# The VERSION_NUMBER is suffixed onto the end of the DLLs we ship.
|
||||
# Since the longest of these is 5 characters without the suffix,
|
||||
# be sure to not set VERSION_NUMBER to anything longer than 3
|
||||
# characters for Win16's sake.
|
||||
#
|
||||
VERSION_NUMBER = 50
|
||||
|
||||
ifeq ($(HOST_OS_ARCH),WINNT)
|
||||
win_srcdir := $(subst $(topsrcdir),$(WIN_TOP_SRC),$(srcdir))
|
||||
BUILD_TOOLS = $(WIN_TOP_SRC)/build/unix
|
||||
else
|
||||
win_srcdir := $(srcdir)
|
||||
BUILD_TOOLS = $(topsrcdir)/build/unix
|
||||
endif
|
||||
|
||||
CONFIG_TOOLS = $(MOZ_BUILD_ROOT)/config
|
||||
AUTOCONF_TOOLS = $(topsrcdir)/build/autoconf
|
||||
|
||||
ifeq ($(OS_ARCH),QNX)
|
||||
ifeq ($(OS_TARGET),NTO)
|
||||
LD := qcc -Vgcc_ntox86 -nostdlib
|
||||
else
|
||||
LD := $(CC)
|
||||
endif
|
||||
endif
|
||||
ifeq ($(OS_ARCH),BeOS)
|
||||
BEOS_ADDON_WORKAROUND = 1
|
||||
endif
|
||||
|
||||
#
|
||||
# Strip off the excessively long version numbers on these platforms,
|
||||
# but save the version to allow multiple versions of the same base
|
||||
# platform to be built in the same tree.
|
||||
#
|
||||
ifneq (,$(filter FreeBSD HP-UX IRIX Linux NetBSD OpenBSD OSF1 SunOS,$(OS_ARCH)))
|
||||
OS_RELEASE := $(basename $(OS_RELEASE))
|
||||
|
||||
# Allow the user to ignore the OS_VERSION, which is usually irrelevant.
|
||||
ifdef WANT_MOZILLA_CONFIG_OS_VERSION
|
||||
OS_VERS := $(suffix $(OS_RELEASE))
|
||||
OS_VERSION := $(shell echo $(OS_VERS) | sed 's/-.*//')
|
||||
endif
|
||||
|
||||
endif
|
||||
|
||||
OS_CONFIG := $(OS_ARCH)$(OS_RELEASE)
|
||||
|
||||
FINAL_LINK_LIBS = $(DEPTH)/config/final-link-libs
|
||||
FINAL_LINK_COMPS = $(DEPTH)/config/final-link-comps
|
||||
FINAL_LINK_COMP_NAMES = $(DEPTH)/config/final-link-comp-names
|
||||
|
||||
MOZ_UNICHARUTIL_LIBS = $(LIBXUL_DIST)/lib/$(LIB_PREFIX)unicharutil_s.$(LIB_SUFFIX)
|
||||
MOZ_WIDGET_SUPPORT_LIBS = $(DIST)/lib/$(LIB_PREFIX)widgetsupport_s.$(LIB_SUFFIX)
|
||||
|
||||
ifdef MOZ_MEMORY
|
||||
ifneq ($(OS_ARCH),WINNT)
|
||||
JEMALLOC_LIBS = $(MKSHLIB_FORCE_ALL) $(call EXPAND_LIBNAME,jemalloc) $(MKSHLIB_UNFORCE_ALL)
|
||||
endif
|
||||
endif
|
||||
|
||||
# determine debug-related options
|
||||
_DEBUG_CFLAGS :=
|
||||
_DEBUG_LDFLAGS :=
|
||||
|
||||
ifndef MOZ_DEBUG
|
||||
# global debugging is disabled
|
||||
# check if it was explicitly enabled for this module
|
||||
ifneq (, $(findstring $(MODULE), $(MOZ_DEBUG_MODULES)))
|
||||
MOZ_DEBUG:=1
|
||||
endif
|
||||
else
|
||||
# global debugging is enabled
|
||||
# check if it was explicitly disabled for this module
|
||||
ifneq (, $(findstring ^$(MODULE), $(MOZ_DEBUG_MODULES)))
|
||||
MOZ_DEBUG:=
|
||||
endif
|
||||
endif
|
||||
|
||||
ifdef MOZ_DEBUG
|
||||
_DEBUG_CFLAGS += $(MOZ_DEBUG_ENABLE_DEFS)
|
||||
XULPPFLAGS += $(MOZ_DEBUG_ENABLE_DEFS)
|
||||
else
|
||||
_DEBUG_CFLAGS += $(MOZ_DEBUG_DISABLE_DEFS)
|
||||
XULPPFLAGS += $(MOZ_DEBUG_DISABLE_DEFS)
|
||||
endif
|
||||
|
||||
# determine if -g should be passed to the compiler, based on
|
||||
# the current module, and the value of MOZ_DBGRINFO_MODULES
|
||||
|
||||
ifdef MOZ_DEBUG
|
||||
MOZ_DBGRINFO_MODULES += ALL_MODULES
|
||||
pattern := ALL_MODULES ^ALL_MODULES
|
||||
else
|
||||
MOZ_DBGRINFO_MODULES += ^ALL_MODULES
|
||||
pattern := ALL_MODULES ^ALL_MODULES
|
||||
endif
|
||||
|
||||
ifdef MODULE
|
||||
# our current Makefile specifies a module name - add it to our pattern
|
||||
pattern += $(MODULE) ^$(MODULE)
|
||||
endif
|
||||
|
||||
# start by finding the first relevant module name
|
||||
# (remember that the order of the module names in MOZ_DBGRINFO_MODULES
|
||||
# is reversed from the order the user specified to configure -
|
||||
# this allows the user to put general names at the beginning
|
||||
# of the list, and to override them with explicit module names later
|
||||
# in the list)
|
||||
|
||||
first_match:=$(firstword $(filter $(pattern), $(MOZ_DBGRINFO_MODULES)))
|
||||
|
||||
ifeq ($(first_match), $(MODULE))
|
||||
# the user specified explicitly that
|
||||
# this module should be compiled with -g
|
||||
_DEBUG_CFLAGS += $(MOZ_DEBUG_FLAGS)
|
||||
_DEBUG_LDFLAGS += $(MOZ_DEBUG_LDFLAGS)
|
||||
else
|
||||
ifeq ($(first_match), ^$(MODULE))
|
||||
# the user specified explicitly that this module
|
||||
# should not be compiled with -g (nothing to do)
|
||||
else
|
||||
ifeq ($(first_match), ALL_MODULES)
|
||||
# the user didn't mention this module explicitly,
|
||||
# but wanted all modules to be compiled with -g
|
||||
_DEBUG_CFLAGS += $(MOZ_DEBUG_FLAGS)
|
||||
_DEBUG_LDFLAGS += $(MOZ_DEBUG_LDFLAGS)
|
||||
else
|
||||
ifeq ($(first_match), ^ALL_MODULES)
|
||||
# the user didn't mention this module explicitly,
|
||||
# but wanted all modules to be compiled without -g (nothing to do)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
# append debug flags
|
||||
# (these might have been above when processing MOZ_DBGRINFO_MODULES)
|
||||
OS_CFLAGS += $(_DEBUG_CFLAGS)
|
||||
OS_CXXFLAGS += $(_DEBUG_CFLAGS)
|
||||
OS_LDFLAGS += $(_DEBUG_LDFLAGS)
|
||||
|
||||
# MOZ_PROFILE equivs for win32
|
||||
ifeq ($(OS_ARCH)_$(GNU_CC),WINNT_)
|
||||
ifdef MOZ_DEBUG
|
||||
ifneq (,$(MOZ_BROWSE_INFO)$(MOZ_BSCFILE))
|
||||
OS_CFLAGS += -FR
|
||||
OS_CXXFLAGS += -FR
|
||||
endif
|
||||
else # ! MOZ_DEBUG
|
||||
|
||||
# MOZ_DEBUG_SYMBOLS generates debug symbols in separate PDB files.
|
||||
# Used for generating an optimized build with debugging symbols.
|
||||
# Used in the Windows nightlies to generate symbols for crash reporting.
|
||||
ifdef MOZ_DEBUG_SYMBOLS
|
||||
OS_CXXFLAGS += -Zi -UDEBUG -DNDEBUG
|
||||
OS_CFLAGS += -Zi -UDEBUG -DNDEBUG
|
||||
OS_LDFLAGS += -DEBUG -OPT:REF -OPT:nowin98
|
||||
endif
|
||||
|
||||
ifdef MOZ_QUANTIFY
|
||||
# -FIXED:NO is needed for Quantify to work, but it increases the size
|
||||
# of executables, so only use it if building for Quantify.
|
||||
WIN32_EXE_LDFLAGS += -FIXED:NO
|
||||
|
||||
# We need -OPT:NOICF to prevent identical methods from being merged together.
|
||||
# Otherwise, Quantify doesn't know which method was actually called when it's
|
||||
# showing you the profile.
|
||||
OS_LDFLAGS += -OPT:NOICF
|
||||
endif
|
||||
|
||||
#
|
||||
# Handle trace-malloc in optimized builds.
|
||||
# No opt to give sane callstacks.
|
||||
#
|
||||
ifdef NS_TRACE_MALLOC
|
||||
MOZ_OPTIMIZE_FLAGS=-Zi -Od -UDEBUG -DNDEBUG
|
||||
OS_LDFLAGS = -DEBUG -PDB:NONE -OPT:REF -OPT:nowin98
|
||||
endif # NS_TRACE_MALLOC
|
||||
|
||||
endif # MOZ_DEBUG
|
||||
endif # WINNT && !GNU_CC
|
||||
|
||||
#
|
||||
# Build using PIC by default
|
||||
# Do not use PIC if not building a shared lib (see exceptions below)
|
||||
#
|
||||
|
||||
ifndef BUILD_STATIC_LIBS
|
||||
_ENABLE_PIC=1
|
||||
endif
|
||||
ifneq (,$(FORCE_SHARED_LIB)$(FORCE_USE_PIC))
|
||||
_ENABLE_PIC=1
|
||||
endif
|
||||
|
||||
# In Firefox, all components are linked into either libxul or the static
|
||||
# meta-component, and should be compiled with PIC.
|
||||
ifdef MOZ_META_COMPONENT
|
||||
_ENABLE_PIC=1
|
||||
endif
|
||||
|
||||
# If module is going to be merged into the nsStaticModule,
|
||||
# make sure that the entry points are translated and
|
||||
# the module is built static.
|
||||
|
||||
ifdef IS_COMPONENT
|
||||
ifdef EXPORT_LIBRARY
|
||||
ifneq (,$(BUILD_STATIC_LIBS))
|
||||
ifdef MODULE_NAME
|
||||
DEFINES += -DXPCOM_TRANSLATE_NSGM_ENTRY_POINT=1
|
||||
FORCE_STATIC_LIB=1
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
# Determine if module being compiled is destined
|
||||
# to be merged into libxul
|
||||
|
||||
ifdef MOZ_ENABLE_LIBXUL
|
||||
ifdef LIBXUL_LIBRARY
|
||||
ifdef IS_COMPONENT
|
||||
ifdef MODULE_NAME
|
||||
DEFINES += -DXPCOM_TRANSLATE_NSGM_ENTRY_POINT=1
|
||||
else
|
||||
$(error Component makefile does not specify MODULE_NAME.)
|
||||
endif
|
||||
endif
|
||||
FORCE_STATIC_LIB=1
|
||||
_ENABLE_PIC=1
|
||||
SHORT_LIBNAME=
|
||||
endif
|
||||
endif
|
||||
|
||||
# If we are building this component into an extension/xulapp, it cannot be
|
||||
# statically linked. In the future we may want to add a xulapp meta-component
|
||||
# build option.
|
||||
|
||||
ifdef XPI_NAME
|
||||
_ENABLE_PIC=1
|
||||
ifdef IS_COMPONENT
|
||||
EXPORT_LIBRARY=
|
||||
FORCE_STATIC_LIB=
|
||||
FORCE_SHARED_LIB=1
|
||||
endif
|
||||
endif
|
||||
|
||||
#
|
||||
# Disable PIC if necessary
|
||||
#
|
||||
|
||||
ifndef _ENABLE_PIC
|
||||
DSO_CFLAGS=
|
||||
ifeq ($(OS_ARCH)_$(HAVE_GCC3_ABI),Darwin_1)
|
||||
DSO_PIC_CFLAGS=-mdynamic-no-pic
|
||||
else
|
||||
DSO_PIC_CFLAGS=
|
||||
endif
|
||||
endif
|
||||
|
||||
# This comes from configure
|
||||
ifdef MOZ_PROFILE_GUIDED_OPTIMIZE_DISABLE
|
||||
NO_PROFILE_GUIDED_OPTIMIZE = 1
|
||||
endif
|
||||
|
||||
# Enable profile-based feedback
|
||||
ifndef NO_PROFILE_GUIDED_OPTIMIZE
|
||||
ifdef MOZ_PROFILE_GENERATE
|
||||
# No sense in profiling tools
|
||||
ifndef INTERNAL_TOOLS
|
||||
OS_CFLAGS += $(PROFILE_GEN_CFLAGS)
|
||||
OS_CXXFLAGS += $(PROFILE_GEN_CFLAGS)
|
||||
OS_LDFLAGS += $(PROFILE_GEN_LDFLAGS)
|
||||
ifeq (WINNT,$(OS_ARCH))
|
||||
AR_FLAGS += -LTCG
|
||||
endif
|
||||
endif # INTERNAL_TOOLS
|
||||
endif # MOZ_PROFILE_GENERATE
|
||||
|
||||
ifdef MOZ_PROFILE_USE
|
||||
ifndef INTERNAL_TOOLS
|
||||
OS_CFLAGS += $(PROFILE_USE_CFLAGS)
|
||||
OS_CXXFLAGS += $(PROFILE_USE_CFLAGS)
|
||||
OS_LDFLAGS += $(PROFILE_USE_LDFLAGS)
|
||||
ifeq (WINNT,$(OS_ARCH))
|
||||
AR_FLAGS += -LTCG
|
||||
endif
|
||||
endif # INTERNAL_TOOLS
|
||||
endif # MOZ_PROFILE_USE
|
||||
endif # NO_PROFILE_GUIDED_OPTIMIZE
|
||||
|
||||
|
||||
# Does the makefile specifies the internal XPCOM API linkage?
|
||||
ifneq (,$(MOZILLA_INTERNAL_API)$(LIBXUL_LIBRARY))
|
||||
DEFINES += -DMOZILLA_INTERNAL_API
|
||||
endif
|
||||
|
||||
# Force XPCOM/widget/gfx methods to be _declspec(dllexport) when we're
|
||||
# building libxul libraries
|
||||
ifdef MOZ_ENABLE_LIBXUL
|
||||
ifdef LIBXUL_LIBRARY
|
||||
DEFINES += \
|
||||
-D_IMPL_NS_COM \
|
||||
-DEXPORT_XPT_API \
|
||||
-DEXPORT_XPTC_API \
|
||||
-D_IMPL_NS_COM_OBSOLETE \
|
||||
-D_IMPL_NS_GFX \
|
||||
-D_IMPL_NS_WIDGET \
|
||||
-DIMPL_XREAPI \
|
||||
-DIMPL_NS_NET \
|
||||
-DIMPL_THEBES \
|
||||
$(NULL)
|
||||
|
||||
ifndef MOZ_NATIVE_ZLIB
|
||||
DEFINES += -DZLIB_INTERNAL
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
# Force _all_ exported methods to be |_declspec(dllexport)| when we're
|
||||
# building them into the executable.
|
||||
|
||||
ifeq (,$(filter-out WINNT WINCE OS2, $(OS_ARCH)))
|
||||
ifdef BUILD_STATIC_LIBS
|
||||
DEFINES += \
|
||||
-D_IMPL_NS_GFX \
|
||||
-D_IMPL_NS_MSG_BASE \
|
||||
-D_IMPL_NS_WIDGET \
|
||||
$(NULL)
|
||||
endif
|
||||
endif
|
||||
|
||||
# Flags passed to make-jars.pl
|
||||
|
||||
MAKE_JARS_FLAGS = \
|
||||
-t $(topsrcdir) \
|
||||
-f $(MOZ_CHROME_FILE_FORMAT) \
|
||||
$(NULL)
|
||||
|
||||
ifdef USE_EXTENSION_MANIFEST
|
||||
MAKE_JARS_FLAGS += -e
|
||||
endif
|
||||
|
||||
ifdef BOTH_MANIFESTS
|
||||
MAKE_JARS_FLAGS += --both-manifests
|
||||
endif
|
||||
|
||||
TAR_CREATE_FLAGS = -cvhf
|
||||
|
||||
ifeq ($(OS_ARCH),BSD_OS)
|
||||
TAR_CREATE_FLAGS = -cvLf
|
||||
endif
|
||||
|
||||
ifeq ($(OS_ARCH),OS2)
|
||||
TAR_CREATE_FLAGS = -cvf
|
||||
endif
|
||||
|
||||
#
|
||||
# Personal makefile customizations go in these optional make include files.
|
||||
#
|
||||
MY_CONFIG := $(DEPTH)/config/myconfig.mk
|
||||
MY_RULES := $(DEPTH)/config/myrules.mk
|
||||
|
||||
#
|
||||
# Default command macros; can be overridden in <arch>.mk.
|
||||
#
|
||||
CCC = $(CXX)
|
||||
NFSPWD = $(CONFIG_TOOLS)/nfspwd
|
||||
PURIFY = purify $(PURIFYOPTIONS)
|
||||
QUANTIFY = quantify $(QUANTIFYOPTIONS)
|
||||
ifdef CROSS_COMPILE
|
||||
XPIDL_COMPILE = $(CYGWIN_WRAPPER) $(LIBXUL_DIST)/host/bin/host_xpidl$(HOST_BIN_SUFFIX)
|
||||
XPIDL_LINK = $(CYGWIN_WRAPPER) $(LIBXUL_DIST)/host/bin/host_xpt_link$(HOST_BIN_SUFFIX)
|
||||
else
|
||||
XPIDL_COMPILE = $(CYGWIN_WRAPPER) $(LIBXUL_DIST)/bin/xpidl$(BIN_SUFFIX)
|
||||
XPIDL_LINK = $(CYGWIN_WRAPPER) $(LIBXUL_DIST)/bin/xpt_link$(BIN_SUFFIX)
|
||||
endif
|
||||
|
||||
# Java macros
|
||||
JAVA_GEN_DIR = _javagen
|
||||
JAVA_DIST_DIR = $(DEPTH)/$(JAVA_GEN_DIR)
|
||||
JAVA_IFACES_PKG_NAME = org/mozilla/interfaces
|
||||
|
||||
REQ_INCLUDES = -I$(srcdir) -I. $(foreach d,$(REQUIRES),-I$(DIST)/include/$d) -I$(DIST)/include
|
||||
ifdef LIBXUL_SDK
|
||||
REQ_INCLUDES_SDK = $(foreach d,$(REQUIRES),-I$(LIBXUL_SDK)/include/$d) -I$(LIBXUL_SDK)/include
|
||||
endif
|
||||
|
||||
INCLUDES = $(LOCAL_INCLUDES) $(REQ_INCLUDES) $(REQ_INCLUDES_SDK) -I$(PUBLIC) $(OS_INCLUDES)
|
||||
|
||||
ifndef MOZILLA_INTERNAL_API
|
||||
INCLUDES += -I$(LIBXUL_DIST)/sdk/include
|
||||
endif
|
||||
|
||||
# The entire tree should be subject to static analysis using the XPCOM
|
||||
# script. Additional scripts may be added by specific subdirectories.
|
||||
|
||||
DEHYDRA_SCRIPT = $(topsrcdir)/xpcom/analysis/static-checking.js
|
||||
|
||||
DEHYDRA_MODULES = \
|
||||
$(topsrcdir)/xpcom/analysis/final.js \
|
||||
$(NULL)
|
||||
|
||||
TREEHYDRA_MODULES = \
|
||||
$(topsrcdir)/xpcom/analysis/outparams.js \
|
||||
$(topsrcdir)/xpcom/analysis/stack.js \
|
||||
$(topsrcdir)/xpcom/analysis/flow.js \
|
||||
$(NULL)
|
||||
|
||||
DEHYDRA_ARGS = \
|
||||
--topsrcdir=$(topsrcdir) \
|
||||
--objdir=$(DEPTH) \
|
||||
--dehydra-modules=$(subst $(NULL) ,$(COMMA),$(strip $(DEHYDRA_MODULES))) \
|
||||
--treehydra-modules=$(subst $(NULL) ,$(COMMA),$(strip $(TREEHYDRA_MODULES))) \
|
||||
$(NULL)
|
||||
|
||||
DEHYDRA_FLAGS = -fplugin=$(DEHYDRA_PATH) -fplugin-arg='$(DEHYDRA_SCRIPT) $(DEHYDRA_ARGS)'
|
||||
|
||||
ifdef DEHYDRA_PATH
|
||||
OS_CXXFLAGS += $(DEHYDRA_FLAGS)
|
||||
endif
|
||||
|
||||
CFLAGS = $(OS_CFLAGS)
|
||||
CXXFLAGS = $(OS_CXXFLAGS)
|
||||
LDFLAGS = $(OS_LDFLAGS) $(MOZ_FIX_LINK_PATHS)
|
||||
|
||||
# Allow each module to override the *default* optimization settings
|
||||
# by setting MODULE_OPTIMIZE_FLAGS if the developer has not given
|
||||
# arguments to --enable-optimize
|
||||
ifdef MOZ_OPTIMIZE
|
||||
ifeq (1,$(MOZ_OPTIMIZE))
|
||||
ifdef MODULE_OPTIMIZE_FLAGS
|
||||
CFLAGS += $(MODULE_OPTIMIZE_FLAGS)
|
||||
CXXFLAGS += $(MODULE_OPTIMIZE_FLAGS)
|
||||
else
|
||||
CFLAGS += $(MOZ_OPTIMIZE_FLAGS)
|
||||
CXXFLAGS += $(MOZ_OPTIMIZE_FLAGS)
|
||||
endif # MODULE_OPTIMIZE_FLAGS
|
||||
else
|
||||
CFLAGS += $(MOZ_OPTIMIZE_FLAGS)
|
||||
CXXFLAGS += $(MOZ_OPTIMIZE_FLAGS)
|
||||
endif # MOZ_OPTIMIZE == 1
|
||||
LDFLAGS += $(MOZ_OPTIMIZE_LDFLAGS)
|
||||
endif # MOZ_OPTIMIZE
|
||||
|
||||
ifdef CROSS_COMPILE
|
||||
HOST_CFLAGS += $(HOST_OPTIMIZE_FLAGS)
|
||||
else
|
||||
ifdef MOZ_OPTIMIZE
|
||||
ifeq (1,$(MOZ_OPTIMIZE))
|
||||
ifdef MODULE_OPTIMIZE_FLAGS
|
||||
HOST_CFLAGS += $(MODULE_OPTIMIZE_FLAGS)
|
||||
else
|
||||
HOST_CFLAGS += $(MOZ_OPTIMIZE_FLAGS)
|
||||
endif # MODULE_OPTIMIZE_FLAGS
|
||||
else
|
||||
HOST_CFLAGS += $(MOZ_OPTIMIZE_FLAGS)
|
||||
endif # MOZ_OPTIMIZE == 1
|
||||
endif # MOZ_OPTIMIZE
|
||||
endif # CROSS_COMPILE
|
||||
|
||||
|
||||
ifeq ($(OS_ARCH)_$(GNU_CC),WINNT_)
|
||||
#// Currently, unless USE_STATIC_LIBS is defined, the multithreaded
|
||||
#// DLL version of the RTL is used...
|
||||
#//
|
||||
#//------------------------------------------------------------------------
|
||||
ifdef USE_STATIC_LIBS
|
||||
RTL_FLAGS=-MT # Statically linked multithreaded RTL
|
||||
ifneq (,$(MOZ_DEBUG)$(NS_TRACE_MALLOC))
|
||||
ifndef MOZ_NO_DEBUG_RTL
|
||||
RTL_FLAGS=-MTd # Statically linked multithreaded MSVC4.0 debug RTL
|
||||
endif
|
||||
endif # MOZ_DEBUG || NS_TRACE_MALLOC
|
||||
|
||||
else # !USE_STATIC_LIBS
|
||||
|
||||
RTL_FLAGS=-MD # Dynamically linked, multithreaded RTL
|
||||
ifneq (,$(MOZ_DEBUG)$(NS_TRACE_MALLOC))
|
||||
ifndef MOZ_NO_DEBUG_RTL
|
||||
RTL_FLAGS=-MDd # Dynamically linked, multithreaded MSVC4.0 debug RTL
|
||||
endif
|
||||
endif # MOZ_DEBUG || NS_TRACE_MALLOC
|
||||
endif # USE_STATIC_LIBS
|
||||
endif # WINNT && !GNU_CC
|
||||
|
||||
ifeq ($(OS_ARCH),Darwin)
|
||||
# Darwin doesn't cross-compile, so just set both types of flags here.
|
||||
HOST_CMFLAGS += -fobjc-exceptions
|
||||
HOST_CMMFLAGS += -fobjc-exceptions
|
||||
OS_COMPILE_CMFLAGS += -fobjc-exceptions
|
||||
OS_COMPILE_CMMFLAGS += -fobjc-exceptions
|
||||
endif
|
||||
|
||||
COMPILE_CFLAGS = $(VISIBILITY_FLAGS) $(DEFINES) $(INCLUDES) $(XCFLAGS) $(PROFILER_CFLAGS) $(DSO_CFLAGS) $(DSO_PIC_CFLAGS) $(CFLAGS) $(RTL_FLAGS) $(OS_COMPILE_CFLAGS)
|
||||
COMPILE_CXXFLAGS = $(VISIBILITY_FLAGS) $(DEFINES) $(INCLUDES) $(XCFLAGS) $(PROFILER_CFLAGS) $(DSO_CFLAGS) $(DSO_PIC_CFLAGS) $(CXXFLAGS) $(RTL_FLAGS) $(OS_COMPILE_CXXFLAGS)
|
||||
COMPILE_CMFLAGS = $(OS_COMPILE_CMFLAGS)
|
||||
COMPILE_CMMFLAGS = $(OS_COMPILE_CMMFLAGS)
|
||||
|
||||
ifndef CROSS_COMPILE
|
||||
HOST_CFLAGS += $(RTL_FLAGS)
|
||||
endif
|
||||
|
||||
#
|
||||
# Name of the binary code directories
|
||||
#
|
||||
# Override defaults
|
||||
|
||||
# We need to know where to find the libraries we
|
||||
# put on the link line for binaries, and should
|
||||
# we link statically or dynamic? Assuming dynamic for now.
|
||||
|
||||
ifneq (WINNT_,$(OS_ARCH)_$(GNU_CC))
|
||||
ifneq (,$(filter-out WINCE,$(OS_ARCH)))
|
||||
LIBS_DIR = -L$(DIST)/bin -L$(DIST)/lib
|
||||
ifdef LIBXUL_SDK
|
||||
LIBS_DIR += -L$(LIBXUL_SDK)/bin -L$(LIBXUL_SDK)/lib
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
# Default location of include files
|
||||
IDL_DIR = $(DIST)/idl
|
||||
ifdef MODULE
|
||||
PUBLIC = $(DIST)/include/$(MODULE)
|
||||
else
|
||||
PUBLIC = $(DIST)/include
|
||||
endif
|
||||
|
||||
XPIDL_FLAGS = -I$(srcdir) -I$(IDL_DIR)
|
||||
ifdef LIBXUL_SDK
|
||||
XPIDL_FLAGS += -I$(LIBXUL_SDK)/idl
|
||||
endif
|
||||
|
||||
SDK_PUBLIC = $(DIST)/sdk/include
|
||||
SDK_IDL_DIR = $(DIST)/sdk/idl
|
||||
SDK_LIB_DIR = $(DIST)/sdk/lib
|
||||
SDK_BIN_DIR = $(DIST)/sdk/bin
|
||||
|
||||
DEPENDENCIES = .md
|
||||
|
||||
MOZ_COMPONENT_LIBS=$(XPCOM_LIBS) $(MOZ_COMPONENT_NSPR_LIBS)
|
||||
|
||||
ifdef GC_LEAK_DETECTOR
|
||||
XPCOM_LIBS += -lboehm
|
||||
endif
|
||||
|
||||
ifeq (xpconnect, $(findstring xpconnect, $(BUILD_MODULES)))
|
||||
DEFINES += -DXPCONNECT_STANDALONE
|
||||
endif
|
||||
|
||||
ifeq ($(OS_ARCH),OS2)
|
||||
ELF_DYNSTR_GC = echo
|
||||
else
|
||||
ELF_DYNSTR_GC = :
|
||||
endif
|
||||
|
||||
ifndef CROSS_COMPILE
|
||||
ifdef USE_ELF_DYNSTR_GC
|
||||
ifdef MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS
|
||||
ELF_DYNSTR_GC = $(DEPTH)/config/elf-dynstr-gc
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(OS_ARCH),Darwin)
|
||||
ifdef NEXT_ROOT
|
||||
export NEXT_ROOT
|
||||
PBBUILD = NEXT_ROOT= $(PBBUILD_BIN)
|
||||
else # NEXT_ROOT
|
||||
PBBUILD = $(PBBUILD_BIN)
|
||||
endif # NEXT_ROOT
|
||||
PBBUILD_SETTINGS = GCC_VERSION="$(GCC_VERSION)" SYMROOT=build ARCHS="$(OS_TEST)"
|
||||
ifdef MACOS_SDK_DIR
|
||||
PBBUILD_SETTINGS += SDKROOT="$(MACOS_SDK_DIR)"
|
||||
endif # MACOS_SDK_DIR
|
||||
ifdef MACOSX_DEPLOYMENT_TARGET
|
||||
export MACOSX_DEPLOYMENT_TARGET
|
||||
PBBUILD_SETTINGS += MACOSX_DEPLOYMENT_TARGET="$(MACOSX_DEPLOYMENT_TARGET)"
|
||||
endif # MACOSX_DEPLOYMENT_TARGET
|
||||
ifdef MOZ_OPTIMIZE
|
||||
ifeq (2,$(MOZ_OPTIMIZE))
|
||||
# Only override project defaults if the config specified explicit settings
|
||||
PBBUILD_SETTINGS += GCC_MODEL_TUNING= OPTIMIZATION_CFLAGS="$(MOZ_OPTIMIZE_FLAGS)"
|
||||
endif # MOZ_OPTIMIZE=2
|
||||
endif # MOZ_OPTIMIZE
|
||||
ifeq (1,$(HAS_XCODE_2_1))
|
||||
# Xcode 2.1 puts its build products in a directory corresponding to the
|
||||
# selected build style/configuration.
|
||||
XCODE_PRODUCT_DIR = build/$(BUILDSTYLE)
|
||||
else
|
||||
XCODE_PRODUCT_DIR = build
|
||||
endif # HAS_XCODE_2_1=1
|
||||
endif # OS_ARCH=Darwin
|
||||
|
||||
|
||||
ifdef MOZ_NATIVE_MAKEDEPEND
|
||||
MKDEPEND_DIR =
|
||||
MKDEPEND = $(CYGWIN_WRAPPER) $(MOZ_NATIVE_MAKEDEPEND)
|
||||
else
|
||||
MKDEPEND_DIR = $(CONFIG_TOOLS)/mkdepend
|
||||
MKDEPEND = $(CYGWIN_WRAPPER) $(MKDEPEND_DIR)/mkdepend$(BIN_SUFFIX)
|
||||
endif
|
||||
|
||||
# Set link flags according to whether we want a console.
|
||||
ifdef MOZ_WINCONSOLE
|
||||
ifeq ($(MOZ_WINCONSOLE),1)
|
||||
ifeq ($(OS_ARCH),OS2)
|
||||
BIN_FLAGS += -Zlinker -PM:VIO
|
||||
endif
|
||||
ifeq ($(OS_ARCH),WINNT)
|
||||
ifdef GNU_CC
|
||||
WIN32_EXE_LDFLAGS += -mconsole
|
||||
else
|
||||
WIN32_EXE_LDFLAGS += -SUBSYSTEM:CONSOLE
|
||||
endif
|
||||
endif
|
||||
else # MOZ_WINCONSOLE
|
||||
ifeq ($(OS_ARCH),OS2)
|
||||
BIN_FLAGS += -Zlinker -PM:PM
|
||||
endif
|
||||
ifeq ($(OS_ARCH),WINNT)
|
||||
ifdef GNU_CC
|
||||
WIN32_EXE_LDFLAGS += -mwindows
|
||||
else
|
||||
WIN32_EXE_LDFLAGS += -SUBSYSTEM:WINDOWS
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
# Flags needed to link against the component library
|
||||
ifdef MOZ_COMPONENTLIB
|
||||
MOZ_COMPONENTLIB_EXTRA_DSO_LIBS = mozcomps xpcom_compat
|
||||
|
||||
# Tell the linker where NSS is, if we're building crypto
|
||||
ifeq ($(OS_ARCH),Darwin)
|
||||
ifeq (,$(findstring crypto,$(MOZ_META_COMPONENTS)))
|
||||
MOZ_COMPONENTLIB_EXTRA_LIBS = $(foreach library, $(patsubst -l%, $(LIB_PREFIX)%$(DLL_SUFFIX), $(filter -l%, $(NSS_LIBS))), -dylib_file @executable_path/$(library):$(DIST)/bin/$(library))
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
# If we're building a component on MSVC, we don't want to generate an
|
||||
# import lib, because that import lib will collide with the name of a
|
||||
# static version of the same library.
|
||||
ifeq ($(GNU_LD)$(OS_ARCH),WINNT)
|
||||
ifdef IS_COMPONENT
|
||||
LDFLAGS += -IMPLIB:fake.lib
|
||||
DELETE_AFTER_LINK = fake.lib fake.exp
|
||||
endif
|
||||
endif
|
||||
|
||||
#
|
||||
# Include any personal overrides the user might think are needed.
|
||||
#
|
||||
-include $(topsrcdir)/$(MOZ_BUILD_APP)/app-config.mk
|
||||
-include $(MY_CONFIG)
|
||||
|
||||
######################################################################
|
||||
# Now test variables that might have been set or overridden by $(MY_CONFIG).
|
||||
|
||||
DEFINES += -DOSTYPE=\"$(OS_CONFIG)\"
|
||||
DEFINES += -DOSARCH=$(OS_ARCH)
|
||||
|
||||
# For profiling
|
||||
ifdef ENABLE_EAZEL_PROFILER
|
||||
ifndef INTERNAL_TOOLS
|
||||
ifneq ($(LIBRARY_NAME), xpt)
|
||||
ifneq (, $(findstring $(shell $(topsrcdir)/build/unix/print-depth-path.sh | awk -F/ '{ print $$2; }'), $(MOZ_PROFILE_MODULES)))
|
||||
PROFILER_CFLAGS = $(EAZEL_PROFILER_CFLAGS) -DENABLE_EAZEL_PROFILER
|
||||
PROFILER_LIBS = $(EAZEL_PROFILER_LIBS)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
######################################################################
|
||||
|
||||
GARBAGE += $(DEPENDENCIES) $(MKDEPENDENCIES) $(MKDEPENDENCIES).bak core $(wildcard core.[0-9]*) $(wildcard *.err) $(wildcard *.pure) $(wildcard *_pure_*.o) Templates.DB
|
||||
|
||||
ifeq ($(OS_ARCH),Darwin)
|
||||
ifndef NSDISTMODE
|
||||
NSDISTMODE=absolute_symlink
|
||||
endif
|
||||
PWD := $(shell pwd)
|
||||
endif
|
||||
|
||||
ifdef NSINSTALL_BIN
|
||||
NSINSTALL = $(CYGWIN_WRAPPER) $(NSINSTALL_BIN)
|
||||
else
|
||||
ifeq (WINNT,$(CROSS_COMPILE)$(OS_ARCH))
|
||||
NSINSTALL = $(CYGWIN_WRAPPER) $(MOZ_TOOLS_DIR)/bin/nsinstall
|
||||
else
|
||||
ifeq (OS2,$(CROSS_COMPILE)$(OS_ARCH))
|
||||
NSINSTALL = $(MOZ_TOOLS_DIR)/nsinstall
|
||||
else
|
||||
NSINSTALL = $(CONFIG_TOOLS)/nsinstall
|
||||
endif # OS2
|
||||
endif # WINNT
|
||||
endif # NSINSTALL_BIN
|
||||
|
||||
|
||||
ifeq (,$(CROSS_COMPILE)$(filter-out WINNT OS2, $(OS_ARCH)))
|
||||
INSTALL = $(NSINSTALL)
|
||||
else
|
||||
ifeq ($(NSDISTMODE),copy)
|
||||
# copy files, but preserve source mtime
|
||||
INSTALL = $(NSINSTALL) -t
|
||||
else
|
||||
ifeq ($(NSDISTMODE),absolute_symlink)
|
||||
# install using absolute symbolic links
|
||||
ifeq ($(OS_ARCH),Darwin)
|
||||
INSTALL = $(NSINSTALL) -L $(PWD)
|
||||
else
|
||||
INSTALL = $(NSINSTALL) -L `$(NFSPWD)`
|
||||
endif # Darwin
|
||||
else
|
||||
# install using relative symbolic links
|
||||
INSTALL = $(NSINSTALL) -R
|
||||
endif # absolute_symlink
|
||||
endif # copy
|
||||
endif # WINNT/OS2
|
||||
|
||||
ifeq (,$(filter-out WINCE,$(OS_ARCH)))
|
||||
NSINSTALL = $(CYGWIN_WRAPPER) nsinstall
|
||||
INSTALL = $(CYGWIN_WRAPPER) nsinstall
|
||||
endif
|
||||
|
||||
# Use nsinstall in copy mode to install files on the system
|
||||
SYSINSTALL = $(NSINSTALL) -t
|
||||
|
||||
ifeq ($(OS_ARCH),WINNT)
|
||||
ifneq (,$(CYGDRIVE_MOUNT))
|
||||
export CYGDRIVE_MOUNT
|
||||
endif
|
||||
endif
|
||||
|
||||
#
|
||||
# Localization build automation
|
||||
#
|
||||
|
||||
# Because you might wish to "make locales AB_CD=ab-CD", we don't hardcode
|
||||
# MOZ_UI_LOCALE directly, but use an intermediate variable that can be
|
||||
# overridden by the command line. (Besides, AB_CD is prettier).
|
||||
AB_CD = $(MOZ_UI_LOCALE)
|
||||
|
||||
ifndef L10NBASEDIR
|
||||
L10NBASEDIR = $(error L10NBASEDIR not defined by configure)
|
||||
endif
|
||||
|
||||
EXPAND_LOCALE_SRCDIR = $(if $(filter en-US,$(AB_CD)),$(topsrcdir)/$(1)/en-US,$(L10NBASEDIR)/$(AB_CD)/$(subst /locales,,$(1)))
|
||||
|
||||
ifdef relativesrcdir
|
||||
LOCALE_SRCDIR = $(call EXPAND_LOCALE_SRCDIR,$(relativesrcdir))
|
||||
endif
|
||||
|
||||
ifdef LOCALE_SRCDIR
|
||||
# if LOCALE_MERGEDIR is set, use mergedir first, then the localization,
|
||||
# and finally en-US
|
||||
ifdef LOCALE_MERGEDIR
|
||||
MAKE_JARS_FLAGS += -c $(LOCALE_MERGEDIR)/$(subst /locales,,$(relativesrcdir))
|
||||
endif
|
||||
MAKE_JARS_FLAGS += -c $(LOCALE_SRCDIR)
|
||||
ifdef LOCALE_MERGEDIR
|
||||
MAKE_JARS_FLAGS += -c $(topsrcdir)/$(relativesrcdir)/en-US
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq (,$(filter WINCE WINNT OS2,$(OS_ARCH)))
|
||||
RUN_TEST_PROGRAM = $(DIST)/bin/run-mozilla.sh
|
||||
endif
|
||||
|
||||
#
|
||||
# Java macros
|
||||
#
|
||||
|
||||
# Make sure any compiled classes work with at least JVM 1.4
|
||||
JAVAC_FLAGS += -source 1.4
|
||||
|
||||
ifdef MOZ_DEBUG
|
||||
JAVAC_FLAGS += -g
|
||||
endif
|
|
@ -1,64 +0,0 @@
|
|||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla 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/MPL/
|
||||
#
|
||||
# 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 Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config stuff for Data General DG/UX
|
||||
#
|
||||
|
||||
#
|
||||
# Initial DG/UX port by Marc Fraioli (fraioli@dg-rtp.dg.com)
|
||||
#
|
||||
|
||||
AS = as
|
||||
CC = gcc
|
||||
CCC = g++
|
||||
|
||||
RANLIB = echo
|
||||
|
||||
#
|
||||
# _DGUX_SOURCE is needed to turn on a lot of stuff in the headers if
|
||||
# you're not using DG's compiler. It shouldn't hurt if you are.
|
||||
#
|
||||
# _POSIX4A_DRAFT10_SOURCE is needed to pick up localtime_r, used in
|
||||
# prtime.c
|
||||
#
|
||||
OS_CFLAGS = -DXP_UNIX -DSVR4 -DSYSV -DDGUX -D_DGUX_SOURCE -D_POSIX4A_DRAFT10_SOURCE -DHAVE_LOCALTIME_R
|
||||
OS_LIBS = -lsocket -lnsl
|
||||
|
||||
NOSUCHFILE = /no-such-file
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -1,4 +1,4 @@
|
|||
# -*- Mode: makefile -*-
|
||||
#!perl5
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
|
@ -13,8 +13,7 @@
|
|||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is Mozilla Communicator client code, released
|
||||
# March 31, 1998.
|
||||
# The Original Code is mozilla.org code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
|
@ -24,8 +23,8 @@
|
|||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
|
@ -37,28 +36,31 @@
|
|||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config stuff for AIX
|
||||
#
|
||||
sub fastcwd {
|
||||
local($odev, $oino, $cdev, $cino, $tdev, $tino);
|
||||
local(@path, $path);
|
||||
local(*DIR);
|
||||
|
||||
CC = xlC_r
|
||||
CCC = xlC_r
|
||||
CFLAGS += -qarch=com -qnoansialias -qinline+$(INLINES) -DXP_UNIX -DAIX -DAIXV3 -DSYSV -DHAVE_LOCALTIME_R
|
||||
|
||||
RANLIB = ranlib
|
||||
|
||||
#.c.o:
|
||||
# $(CC) -c -MD $*.d $(CFLAGS) $<
|
||||
ARCH := aix
|
||||
CPU_ARCH = rs6000
|
||||
GFX_ARCH = x
|
||||
INLINES = js_compare_and_swap:js_fast_lock1:js_fast_unlock1:js_lock_get_slot:js_lock_set_slot:js_lock_scope1
|
||||
|
||||
#-lpthreads -lc_r
|
||||
|
||||
MKSHLIB = /usr/lpp/xlC/bin/makeC++SharedLib_r -p 0 -G -berok
|
||||
|
||||
ifdef JS_THREADSAFE
|
||||
XLDFLAGS += -ldl
|
||||
endif
|
||||
($cdev, $cino) = stat('.');
|
||||
for (;;) {
|
||||
($odev, $oino) = ($cdev, $cino);
|
||||
chdir('..');
|
||||
($cdev, $cino) = stat('.');
|
||||
last if $odev == $cdev && $oino == $cino;
|
||||
opendir(DIR, '.');
|
||||
for (;;) {
|
||||
$_ = readdir(DIR);
|
||||
next if $_ eq '.';
|
||||
next if $_ eq '..';
|
||||
|
||||
last unless $_;
|
||||
($tdev, $tino) = lstat($_);
|
||||
last unless $tdev != $odev || $tino != $oino;
|
||||
}
|
||||
closedir(DIR);
|
||||
unshift(@path, $_);
|
||||
}
|
||||
chdir($path = '/' . join('/', @path));
|
||||
$path;
|
||||
}
|
||||
1;
|
|
@ -0,0 +1,2 @@
|
|||
/* Begin all files as hidden visibility */
|
||||
#pragma GCC visibility push(hidden)
|
|
@ -1,4 +1,3 @@
|
|||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
|
@ -13,8 +12,7 @@
|
|||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is Mozilla Communicator client code, released
|
||||
# March 31, 1998.
|
||||
# The Original Code is mozilla.org code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
|
@ -24,8 +22,8 @@
|
|||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
|
@ -37,8 +35,19 @@
|
|||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config stuff for IRIX6.3
|
||||
#
|
||||
INCLUDED_INSURE_MK = 1
|
||||
|
||||
include $(DEPTH)/config/IRIX.mk
|
||||
INSURE_MATCH_SCRIPT=$(topsrcdir)/build/autoconf/match-dir.sh
|
||||
|
||||
INSURE_EXCLUDE=$(shell $(INSURE_MATCH_SCRIPT) $(MOZ_INSURE_EXCLUDE_DIRS))
|
||||
|
||||
INSURE_INCLUDE=$(shell $(INSURE_MATCH_SCRIPT) $(MOZ_INSURE_DIRS))
|
||||
|
||||
ifeq ($(INSURE_EXCLUDE),0)
|
||||
|
||||
ifeq ($(INSURE_INCLUDE),1)
|
||||
CC := $(MOZ_INSURE)
|
||||
CXX := $(MOZ_INSURE)
|
||||
endif # INSURE_INCLUDE == 1
|
||||
|
||||
endif # INSURE_EXCLUDE == 0
|
|
@ -1,4 +1,4 @@
|
|||
# -*- Mode: makefile -*-
|
||||
#!/usr/bin/perl
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
|
@ -13,19 +13,19 @@
|
|||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is Mozilla Communicator client code, released
|
||||
# March 31, 1998.
|
||||
# The Original Code is mozilla.org code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1999
|
||||
# IBM Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 2004
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
# Brian Ryner <bryner@brianryner.com>
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
|
@ -37,14 +37,23 @@
|
|||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config stuff for SunOS5.10, using vendor gcc and NSPR
|
||||
#
|
||||
$output_dir = shift;
|
||||
|
||||
include $(DEPTH)/config/SunOS5.5.mk
|
||||
while (<STDIN>) {
|
||||
chomp;
|
||||
if (-e "$output_dir/$_") {
|
||||
next;
|
||||
}
|
||||
|
||||
INCLUDES += -I/usr/sfw/include/mozilla/nspr
|
||||
OTHER_LIBS += -L/usr/sfw/lib/mozilla -R/usr/sfw/lib/mozilla
|
||||
if (/(.*)\/[^\/*]/) {
|
||||
mkdir "$output_dir/$1";
|
||||
}
|
||||
|
||||
CC=gcc
|
||||
open OUT, ">$output_dir/$_";
|
||||
print OUT "#pragma GCC system_header\n"; # suppress include_next warning
|
||||
print OUT "#pragma GCC visibility push(default)\n";
|
||||
print OUT "#include_next \<$_\>\n";
|
||||
print OUT "#pragma GCC visibility pop\n";
|
||||
close OUT;
|
||||
}
|
||||
|
|
@ -0,0 +1,112 @@
|
|||
#!/usr/bin/perl -w
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla 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/MPL/
|
||||
#
|
||||
# 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 the Win32 Version System.
|
||||
#
|
||||
# The Initial Developer of the Original Code is Netscape Communications Corporation
|
||||
# Portions created by the Initial Developer are Copyright (C) 2002
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
use Getopt::Long;
|
||||
|
||||
use strict;
|
||||
use vars qw(
|
||||
$OBJDIR
|
||||
$SRCDIR
|
||||
$TOPSRCDIR
|
||||
$SCRIPTDIR
|
||||
@TEMPLATE_FILE
|
||||
$MILESTONE_FILE
|
||||
$MILESTONE
|
||||
$MILESTONE_NUM
|
||||
@MILESTONE_PARTS
|
||||
$MINI_VERSION
|
||||
$MICRO_VERSION
|
||||
$opt_debug
|
||||
$opt_template
|
||||
$opt_help
|
||||
);
|
||||
|
||||
$SCRIPTDIR = $0;
|
||||
$SCRIPTDIR =~ s/[^\/]*$//;
|
||||
push(@INC,$SCRIPTDIR);
|
||||
|
||||
require "Moz/Milestone.pm";
|
||||
|
||||
&GetOptions('topsrcdir=s' => \$TOPSRCDIR, 'srcdir=s' => \$SRCDIR, 'objdir=s' => \$OBJDIR, 'debug', 'help', 'template');
|
||||
|
||||
if (defined($opt_help)) {
|
||||
&usage();
|
||||
exit;
|
||||
}
|
||||
|
||||
if (defined($opt_template)) {
|
||||
@TEMPLATE_FILE = @ARGV;
|
||||
if ($opt_debug) {
|
||||
print("TEMPLATE_FILE = --@TEMPLATE_FILE--\n");
|
||||
}
|
||||
}
|
||||
|
||||
if (!defined($SRCDIR)) { $SRCDIR = '.'; }
|
||||
if (!defined($OBJDIR)) { $OBJDIR = '.'; }
|
||||
|
||||
$MILESTONE_FILE = "$TOPSRCDIR/config/milestone.txt";
|
||||
@MILESTONE_PARTS = (0, 0, 0, 0);
|
||||
|
||||
#
|
||||
# Grab milestone (top line of $MILESTONE_FILE that starts with a digit)
|
||||
#
|
||||
my $milestone = Moz::Milestone::getOfficialMilestone($MILESTONE_FILE);
|
||||
|
||||
if (defined(@TEMPLATE_FILE)) {
|
||||
my $TFILE;
|
||||
|
||||
foreach $TFILE (@TEMPLATE_FILE) {
|
||||
my $BUILT_FILE = "$OBJDIR/$TFILE";
|
||||
$TFILE = "$SRCDIR/$TFILE.tmpl";
|
||||
|
||||
if (-e $TFILE) {
|
||||
|
||||
Moz::Milestone::build_file($TFILE,$BUILT_FILE);
|
||||
|
||||
} else {
|
||||
warn("$0: No such file $TFILE!\n");
|
||||
}
|
||||
}
|
||||
} else {
|
||||
print "$milestone\n";
|
||||
}
|
||||
|
||||
sub usage() {
|
||||
print <<END
|
||||
`milestone.pl [--topsrcdir TOPSRCDIR] [--objdir OBJDIR] [--srcdir SRCDIR] --template [file list]` # will build file list from .tmpl files
|
||||
END
|
||||
;
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
# Holds the current milestone.
|
||||
# Should be in the format of
|
||||
#
|
||||
# x.x.x
|
||||
# x.x.x.x
|
||||
# x.x.x+
|
||||
#
|
||||
# Referenced by milestone.pl.
|
||||
# Hopefully I'll be able to automate replacement of *all*
|
||||
# hardcoded milestones in the tree from these two files.
|
||||
#--------------------------------------------------------
|
||||
|
||||
1.9.1b2pre
|
|
@ -1,4 +1,3 @@
|
|||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
|
@ -13,8 +12,7 @@
|
|||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is Mozilla Communicator client code, released
|
||||
# March 31, 1998.
|
||||
# The Original Code is mozilla.org code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
|
@ -24,8 +22,8 @@
|
|||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
|
@ -37,44 +35,50 @@
|
|||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config stuff for HPUX
|
||||
#
|
||||
DEPTH = ../..
|
||||
topsrcdir = @top_srcdir@
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
|
||||
ifdef NS_USE_NATIVE
|
||||
CC = cc +Z +DAportable +DS2.0 +u4
|
||||
# LD = aCC +Z -b -Wl,+s -Wl,-B,symbolic
|
||||
include $(DEPTH)/config/autoconf.mk
|
||||
|
||||
# undefine (as best we can, thanks gmake!) so we don't need build_number
|
||||
MOZILLA_OFFICIAL =
|
||||
BUILD_OFFICIAL =
|
||||
MODULE = mkdepend
|
||||
HOST_PROGRAM = mkdepend$(BIN_SUFFIX)
|
||||
ifdef GNU_CC
|
||||
MODULE_OPTIMIZE_FLAGS = -O3
|
||||
else
|
||||
CC = gcc -Wall -Wno-format -fPIC
|
||||
CCC = g++ -Wall -Wno-format -fPIC
|
||||
endif
|
||||
|
||||
RANLIB = echo
|
||||
MKSHLIB = $(LD) -b
|
||||
|
||||
SO_SUFFIX = sl
|
||||
|
||||
#.c.o:
|
||||
# $(CC) -c -MD $*.d $(CFLAGS) $<
|
||||
|
||||
CPU_ARCH = hppa
|
||||
GFX_ARCH = x
|
||||
|
||||
OS_CFLAGS = -DXP_UNIX -DHPUX -DSYSV -D_HPUX -DNATIVE -D_POSIX_C_SOURCE=199506L -DHAVE_LOCALTIME_R
|
||||
OS_LIBS = -ldld
|
||||
|
||||
XLDFLAGS = -lpthread
|
||||
|
||||
ifeq ($(OS_RELEASE),B.10)
|
||||
PLATFORM_FLAGS += -DHPUX10 -Dhpux10
|
||||
PORT_FLAGS += -DRW_NO_OVERLOAD_SCHAR -DHAVE_MODEL_H
|
||||
ifeq ($(OS_VERSION),.10)
|
||||
PLATFORM_FLAGS += -DHPUX10_10
|
||||
endif
|
||||
ifeq ($(OS_VERSION),.20)
|
||||
PLATFORM_FLAGS += -DHPUX10_20
|
||||
endif
|
||||
ifeq ($(OS_VERSION),.30)
|
||||
PLATFORM_FLAGS += -DHPUX10_30
|
||||
ifeq ($(OS_ARCH),SunOS)
|
||||
MODULE_OPTIMIZE_FLAGS = -fast
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(OS_ARCH),WINNT)
|
||||
ifndef GNU_CC
|
||||
MODULE_OPTIMIZE_FLAGS = -Ox
|
||||
endif
|
||||
endif
|
||||
|
||||
HOST_CSRCS = \
|
||||
cppsetup.c \
|
||||
ifparser.c \
|
||||
include.c \
|
||||
main.c \
|
||||
parse.c \
|
||||
pr.c \
|
||||
$(NULL)
|
||||
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
|
||||
HOST_CFLAGS += -DINCLUDEDIR=\"/usr/include\" -DOBJSUFFIX=\".$(OBJ_SUFFIX)\"
|
||||
|
||||
ifdef GNU_CC
|
||||
_GCCDIR = $(shell $(CC) -print-file-name=include)
|
||||
HOST_CFLAGS += -DPREINCDIR=\"$(_GCCDIR)\"
|
||||
endif
|
||||
|
||||
export:: $(HOST_PROGRAM)
|
||||
|
||||
$(HOST_OBJS): def.h ifparser.h imakemdep.h
|
|
@ -0,0 +1,233 @@
|
|||
/* $Xorg: cppsetup.c,v 1.5 2001/02/09 02:03:16 xorgcvs Exp $ */
|
||||
/*
|
||||
|
||||
Copyright (c) 1993, 1994, 1998 The Open Group
|
||||
|
||||
Permission to use, copy, modify, distribute, and sell this software and its
|
||||
documentation for any purpose is hereby granted without fee, provided that
|
||||
the above copyright notice appear in all copies and that both that
|
||||
copyright notice and this permission notice appear in supporting
|
||||
documentation.
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of The Open Group shall not be
|
||||
used in advertising or otherwise to promote the sale, use or other dealings
|
||||
in this Software without prior written authorization from The Open Group.
|
||||
|
||||
*/
|
||||
/* $XFree86: xc/config/makedepend/cppsetup.c,v 3.11 2001/12/17 20:52:22 dawes Exp $ */
|
||||
|
||||
#include "def.h"
|
||||
|
||||
#ifdef CPP
|
||||
/*
|
||||
* This file is strictly for the sake of cpy.y and yylex.c (if
|
||||
* you indeed have the source for cpp).
|
||||
*/
|
||||
#define IB 1
|
||||
#define SB 2
|
||||
#define NB 4
|
||||
#define CB 8
|
||||
#define QB 16
|
||||
#define WB 32
|
||||
#define SALT '#'
|
||||
#if defined(pdp11) || defined(vax) || defined(ns16000) || defined(mc68000) || defined(ibm032)
|
||||
#define COFF 128
|
||||
#else
|
||||
#define COFF 0
|
||||
#endif
|
||||
/*
|
||||
* These variables used by cpy.y and yylex.c
|
||||
*/
|
||||
extern char *outp, *inp, *newp, *pend;
|
||||
extern char *ptrtab;
|
||||
extern char fastab[];
|
||||
extern char slotab[];
|
||||
|
||||
/*
|
||||
* cppsetup
|
||||
*/
|
||||
struct filepointer *currentfile;
|
||||
struct inclist *currentinc;
|
||||
|
||||
int
|
||||
cppsetup(char *line, struct filepointer *filep, struct inclist *inc)
|
||||
{
|
||||
char *p, savec;
|
||||
static boolean setupdone = FALSE;
|
||||
boolean value;
|
||||
|
||||
if (!setupdone) {
|
||||
cpp_varsetup();
|
||||
setupdone = TRUE;
|
||||
}
|
||||
|
||||
currentfile = filep;
|
||||
currentinc = inc;
|
||||
inp = newp = line;
|
||||
for (p=newp; *p; p++)
|
||||
;
|
||||
|
||||
/*
|
||||
* put a newline back on the end, and set up pend, etc.
|
||||
*/
|
||||
*p++ = '\n';
|
||||
savec = *p;
|
||||
*p = '\0';
|
||||
pend = p;
|
||||
|
||||
ptrtab = slotab+COFF;
|
||||
*--inp = SALT;
|
||||
outp=inp;
|
||||
value = yyparse();
|
||||
*p = savec;
|
||||
return(value);
|
||||
}
|
||||
|
||||
struct symtab **lookup(symbol)
|
||||
char *symbol;
|
||||
{
|
||||
static struct symtab *undefined;
|
||||
struct symtab **sp;
|
||||
|
||||
sp = isdefined(symbol, currentinc, NULL);
|
||||
if (sp == NULL) {
|
||||
sp = &undefined;
|
||||
(*sp)->s_value = NULL;
|
||||
}
|
||||
return (sp);
|
||||
}
|
||||
|
||||
pperror(tag, x0,x1,x2,x3,x4)
|
||||
int tag,x0,x1,x2,x3,x4;
|
||||
{
|
||||
warning("\"%s\", line %d: ", currentinc->i_file, currentfile->f_line);
|
||||
warning(x0,x1,x2,x3,x4);
|
||||
}
|
||||
|
||||
|
||||
yyerror(s)
|
||||
register char *s;
|
||||
{
|
||||
fatalerr("Fatal error: %s\n", s);
|
||||
}
|
||||
#else /* not CPP */
|
||||
|
||||
#include "ifparser.h"
|
||||
struct _parse_data {
|
||||
struct filepointer *filep;
|
||||
struct inclist *inc;
|
||||
char *filename;
|
||||
const char *line;
|
||||
};
|
||||
|
||||
static const char *
|
||||
my_if_errors (IfParser *ip, const char *cp, const char *expecting)
|
||||
{
|
||||
struct _parse_data *pd = (struct _parse_data *) ip->data;
|
||||
int lineno = pd->filep->f_line;
|
||||
char *filename = pd->filename;
|
||||
char prefix[300];
|
||||
int prefixlen;
|
||||
int i;
|
||||
|
||||
sprintf (prefix, "\"%s\":%d", filename, lineno);
|
||||
prefixlen = strlen(prefix);
|
||||
fprintf (stderr, "%s: %s", prefix, pd->line);
|
||||
i = cp - pd->line;
|
||||
if (i > 0 && pd->line[i-1] != '\n') {
|
||||
putc ('\n', stderr);
|
||||
}
|
||||
for (i += prefixlen + 3; i > 0; i--) {
|
||||
putc (' ', stderr);
|
||||
}
|
||||
fprintf (stderr, "^--- expecting %s\n", expecting);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
#define MAXNAMELEN 256
|
||||
|
||||
static struct symtab **
|
||||
lookup_variable (IfParser *ip, const char *var, int len)
|
||||
{
|
||||
char tmpbuf[MAXNAMELEN + 1];
|
||||
struct _parse_data *pd = (struct _parse_data *) ip->data;
|
||||
|
||||
if (len > MAXNAMELEN)
|
||||
return 0;
|
||||
|
||||
strncpy (tmpbuf, var, len);
|
||||
tmpbuf[len] = '\0';
|
||||
return isdefined (tmpbuf, pd->inc, NULL);
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
my_eval_defined (IfParser *ip, const char *var, int len)
|
||||
{
|
||||
if (lookup_variable (ip, var, len))
|
||||
return 1;
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
#define isvarfirstletter(ccc) (isalpha(ccc) || (ccc) == '_')
|
||||
|
||||
static long
|
||||
my_eval_variable (IfParser *ip, const char *var, int len)
|
||||
{
|
||||
long val;
|
||||
struct symtab **s;
|
||||
|
||||
s = lookup_variable (ip, var, len);
|
||||
if (!s)
|
||||
return 0;
|
||||
do {
|
||||
var = (*s)->s_value;
|
||||
if (!isvarfirstletter(*var) || !strcmp((*s)->s_name, var))
|
||||
break;
|
||||
s = lookup_variable (ip, var, strlen(var));
|
||||
} while (s);
|
||||
|
||||
var = ParseIfExpression(ip, var, &val);
|
||||
if (var && *var) debug(4, ("extraneous: '%s'\n", var));
|
||||
return val;
|
||||
}
|
||||
|
||||
int
|
||||
cppsetup(char *filename,
|
||||
char *line,
|
||||
struct filepointer *filep,
|
||||
struct inclist *inc)
|
||||
{
|
||||
IfParser ip;
|
||||
struct _parse_data pd;
|
||||
long val = 0;
|
||||
|
||||
pd.filep = filep;
|
||||
pd.inc = inc;
|
||||
pd.line = line;
|
||||
pd.filename = filename;
|
||||
ip.funcs.handle_error = my_if_errors;
|
||||
ip.funcs.eval_defined = my_eval_defined;
|
||||
ip.funcs.eval_variable = my_eval_variable;
|
||||
ip.data = (char *) &pd;
|
||||
|
||||
(void) ParseIfExpression (&ip, line, &val);
|
||||
if (val)
|
||||
return IF;
|
||||
else
|
||||
return IFFALSE;
|
||||
}
|
||||
#endif /* CPP */
|
||||
|
|
@ -0,0 +1,184 @@
|
|||
/* $Xorg: def.h,v 1.4 2001/02/09 02:03:16 xorgcvs Exp $ */
|
||||
/*
|
||||
|
||||
Copyright (c) 1993, 1994, 1998 The Open Group.
|
||||
|
||||
Permission to use, copy, modify, distribute, and sell this software and its
|
||||
documentation for any purpose is hereby granted without fee, provided that
|
||||
the above copyright notice appear in all copies and that both that
|
||||
copyright notice and this permission notice appear in supporting
|
||||
documentation.
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of The Open Group shall not be
|
||||
used in advertising or otherwise to promote the sale, use or other dealings
|
||||
in this Software without prior written authorization from The Open Group.
|
||||
|
||||
*/
|
||||
/* $XFree86: xc/config/makedepend/def.h,v 3.14 2003/01/17 17:09:49 tsi Exp $ */
|
||||
|
||||
#ifndef NO_X11
|
||||
#include <X11/Xos.h>
|
||||
#include <X11/Xfuncproto.h>
|
||||
#endif
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <ctype.h>
|
||||
#if 0
|
||||
#ifndef X_NOT_POSIX
|
||||
#ifndef _POSIX_SOURCE
|
||||
#define _POSIX_SOURCE
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
#include <sys/types.h>
|
||||
#include <fcntl.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
#define MAXDEFINES 512
|
||||
#define MAXFILES 1024
|
||||
#define MAXINCFILES 256 /* "-include" files */
|
||||
#define MAXDIRS 1024
|
||||
#define SYMTABINC 10 /* must be > 1 for define() to work right */
|
||||
#define TRUE 1
|
||||
#define FALSE 0
|
||||
|
||||
/* the following must match the directives table in main.c */
|
||||
#define IF 0
|
||||
#define IFDEF 1
|
||||
#define IFNDEF 2
|
||||
#define ELSE 3
|
||||
#define ENDIF 4
|
||||
#define DEFINE 5
|
||||
#define UNDEF 6
|
||||
#define INCLUDE 7
|
||||
#define LINE 8
|
||||
#define PRAGMA 9
|
||||
#define ERROR 10
|
||||
#define IDENT 11
|
||||
#define SCCS 12
|
||||
#define ELIF 13
|
||||
#define EJECT 14
|
||||
#define WARNING 15
|
||||
#define INCLUDENEXT 16
|
||||
#define IFFALSE 17 /* pseudo value --- never matched */
|
||||
#define ELIFFALSE 18 /* pseudo value --- never matched */
|
||||
#define INCLUDEDOT 19 /* pseudo value --- never matched */
|
||||
#define IFGUESSFALSE 20 /* pseudo value --- never matched */
|
||||
#define ELIFGUESSFALSE 21 /* pseudo value --- never matched */
|
||||
#define INCLUDENEXTDOT 22 /* pseudo value --- never matched */
|
||||
|
||||
#ifdef DEBUG
|
||||
extern int _debugmask;
|
||||
/*
|
||||
* debug levels are:
|
||||
*
|
||||
* 0 show ifn*(def)*,endif
|
||||
* 1 trace defined/!defined
|
||||
* 2 show #include
|
||||
* 3 show #include SYMBOL
|
||||
* 4-6 unused
|
||||
*/
|
||||
#define debug(level,arg) { if (_debugmask & (1 << level)) warning arg; }
|
||||
#else
|
||||
#define debug(level,arg) /**/
|
||||
#endif /* DEBUG */
|
||||
|
||||
typedef unsigned char boolean;
|
||||
|
||||
struct symtab {
|
||||
char *s_name;
|
||||
char *s_value;
|
||||
};
|
||||
|
||||
/* possible i_flag */
|
||||
#define DEFCHECKED (1<<0) /* whether defines have been checked */
|
||||
#define NOTIFIED (1<<1) /* whether we have revealed includes */
|
||||
#define MARKED (1<<2) /* whether it's in the makefile */
|
||||
#define SEARCHED (1<<3) /* whether we have read this */
|
||||
#define FINISHED (1<<4) /* whether we are done reading this */
|
||||
#define INCLUDED_SYM (1<<5) /* whether #include SYMBOL was found
|
||||
Can't use i_list if TRUE */
|
||||
struct inclist {
|
||||
char *i_incstring; /* string from #include line */
|
||||
char *i_file; /* path name of the include file */
|
||||
struct inclist **i_list; /* list of files it itself includes */
|
||||
int i_listlen; /* length of i_list */
|
||||
struct symtab **i_defs; /* symbol table for this file and its
|
||||
children when merged */
|
||||
int i_ndefs; /* current # defines */
|
||||
boolean *i_merged; /* whether we have merged child
|
||||
defines */
|
||||
unsigned char i_flags;
|
||||
};
|
||||
|
||||
struct filepointer {
|
||||
char *f_name;
|
||||
char *f_p;
|
||||
char *f_base;
|
||||
char *f_end;
|
||||
long f_len;
|
||||
long f_line;
|
||||
long cmdinc_count;
|
||||
char **cmdinc_list;
|
||||
long cmdinc_line;
|
||||
};
|
||||
|
||||
#include <stdlib.h>
|
||||
#if defined(macII) && !defined(__STDC__) /* stdlib.h fails to define these */
|
||||
char *malloc(), *realloc();
|
||||
#endif /* macII */
|
||||
|
||||
char *copy(char *str);
|
||||
int match(char *str, char **list);
|
||||
char *base_name(char *file);
|
||||
char *getnextline(struct filepointer *fp);
|
||||
struct symtab **slookup(char *symbol, struct inclist *file);
|
||||
struct symtab **isdefined(char *symbol, struct inclist *file,
|
||||
struct inclist **srcfile);
|
||||
struct symtab **fdefined(char *symbol, struct inclist *file,
|
||||
struct inclist **srcfile);
|
||||
struct filepointer *getfile(char *file);
|
||||
void included_by(struct inclist *ip,
|
||||
struct inclist *newfile);
|
||||
struct inclist *newinclude(char *newfile, char *incstring);
|
||||
void inc_clean (void);
|
||||
struct inclist *inc_path(char *file, char *include, int type);
|
||||
|
||||
void freefile(struct filepointer *fp);
|
||||
|
||||
void define2(char *name, char *val, struct inclist *file);
|
||||
void define(char *def, struct inclist *file);
|
||||
void undefine(char *symbol, struct inclist *file);
|
||||
int find_includes(struct filepointer *filep,
|
||||
struct inclist *file,
|
||||
struct inclist *file_red,
|
||||
int recursion, boolean failOK);
|
||||
|
||||
void recursive_pr_include(struct inclist *head,
|
||||
char *file, char *base);
|
||||
void add_include(struct filepointer *filep,
|
||||
struct inclist *file,
|
||||
struct inclist *file_red,
|
||||
char *include, int type,
|
||||
boolean failOK);
|
||||
|
||||
int cppsetup(char *filename,
|
||||
char *line,
|
||||
struct filepointer *filep,
|
||||
struct inclist *inc);
|
||||
|
||||
|
||||
extern void fatalerr(char *, ...);
|
||||
extern void warning(char *, ...);
|
||||
extern void warning1(char *, ...);
|
|
@ -0,0 +1,549 @@
|
|||
/*
|
||||
* $Xorg: ifparser.c,v 1.3 2000/08/17 19:41:50 cpqbld Exp $
|
||||
*
|
||||
* Copyright 1992 Network Computing Devices, Inc.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software and its
|
||||
* documentation for any purpose and without fee is hereby granted, provided
|
||||
* that the above copyright notice appear in all copies and that both that
|
||||
* copyright notice and this permission notice appear in supporting
|
||||
* documentation, and that the name of Network Computing Devices may not be
|
||||
* used in advertising or publicity pertaining to distribution of the software
|
||||
* without specific, written prior permission. Network Computing Devices makes
|
||||
* no representations about the suitability of this software for any purpose.
|
||||
* It is provided ``as is'' without express or implied warranty.
|
||||
*
|
||||
* NETWORK COMPUTING DEVICES DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
|
||||
* SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
|
||||
* IN NO EVENT SHALL NETWORK COMPUTING DEVICES BE LIABLE FOR ANY SPECIAL,
|
||||
* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
* LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
|
||||
* OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*
|
||||
* Author: Jim Fulton
|
||||
* Network Computing Devices, Inc.
|
||||
*
|
||||
* Simple if statement processor
|
||||
*
|
||||
* This module can be used to evaluate string representations of C language
|
||||
* if constructs. It accepts the following grammar:
|
||||
*
|
||||
* EXPRESSION := VALUE
|
||||
* | VALUE BINOP EXPRESSION
|
||||
* | VALUE '?' EXPRESSION ':' EXPRESSION
|
||||
*
|
||||
* VALUE := '(' EXPRESSION ')'
|
||||
* | '!' VALUE
|
||||
* | '-' VALUE
|
||||
* | '+' VALUE
|
||||
* | '~' VALUE
|
||||
* | 'defined' '(' variable ')'
|
||||
* | 'defined' variable
|
||||
* | # variable '(' variable-list ')'
|
||||
* | variable
|
||||
* | number
|
||||
*
|
||||
* BINOP := '*' | '/' | '%'
|
||||
* | '+' | '-'
|
||||
* | '<<' | '>>'
|
||||
* | '<' | '>' | '<=' | '>='
|
||||
* | '==' | '!='
|
||||
* | '&' | '^' | '|'
|
||||
* | '&&' | '||'
|
||||
*
|
||||
* The normal C order of precedence is supported.
|
||||
*
|
||||
*
|
||||
* External Entry Points:
|
||||
*
|
||||
* ParseIfExpression parse a string for #if
|
||||
*/
|
||||
/* $XFree86: xc/config/makedepend/ifparser.c,v 3.11 2002/09/23 01:48:08 tsi Exp $ */
|
||||
|
||||
#include "ifparser.h"
|
||||
#include <ctype.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
/****************************************************************************
|
||||
Internal Macros and Utilities for Parser
|
||||
****************************************************************************/
|
||||
|
||||
#define DO(val) if (!(val)) return NULL
|
||||
#define CALLFUNC(ggg,fff) (*((ggg)->funcs.fff))
|
||||
#define SKIPSPACE(ccc) while (isspace(*ccc)) ccc++
|
||||
#define isvarfirstletter(ccc) (isalpha(ccc) || (ccc) == '_')
|
||||
|
||||
|
||||
static const char *
|
||||
parse_variable (IfParser *g, const char *cp, const char **varp)
|
||||
{
|
||||
SKIPSPACE (cp);
|
||||
|
||||
if (!isvarfirstletter (*cp))
|
||||
return CALLFUNC(g, handle_error) (g, cp, "variable name");
|
||||
|
||||
*varp = cp;
|
||||
/* EMPTY */
|
||||
for (cp++; isalnum(*cp) || *cp == '_'; cp++) ;
|
||||
return cp;
|
||||
}
|
||||
|
||||
|
||||
static const char *
|
||||
parse_number (IfParser *g, const char *cp, long *valp)
|
||||
{
|
||||
long base = 10;
|
||||
SKIPSPACE (cp);
|
||||
|
||||
if (!isdigit(*cp))
|
||||
return CALLFUNC(g, handle_error) (g, cp, "number");
|
||||
|
||||
*valp = 0;
|
||||
|
||||
if (*cp == '0') {
|
||||
cp++;
|
||||
if ((*cp == 'x') || (*cp == 'X')) {
|
||||
base = 16;
|
||||
cp++;
|
||||
} else {
|
||||
base = 8;
|
||||
}
|
||||
}
|
||||
|
||||
/* Ignore overflows and assume ASCII, what source is usually written in */
|
||||
while (1) {
|
||||
int increment = -1;
|
||||
if (base == 8) {
|
||||
if ((*cp >= '0') && (*cp <= '7'))
|
||||
increment = *cp++ - '0';
|
||||
} else if (base == 16) {
|
||||
if ((*cp >= '0') && (*cp <= '9'))
|
||||
increment = *cp++ - '0';
|
||||
else if ((*cp >= 'A') && (*cp <= 'F'))
|
||||
increment = *cp++ - ('A' - 10);
|
||||
else if ((*cp >= 'a') && (*cp <= 'f'))
|
||||
increment = *cp++ - ('a' - 10);
|
||||
} else { /* Decimal */
|
||||
if ((*cp >= '0') && (*cp <= '9'))
|
||||
increment = *cp++ - '0';
|
||||
}
|
||||
if (increment < 0)
|
||||
break;
|
||||
*valp = (*valp * base) + increment;
|
||||
}
|
||||
|
||||
/* Skip trailing qualifiers */
|
||||
while (*cp == 'U' || *cp == 'u' || *cp == 'L' || *cp == 'l') cp++;
|
||||
return cp;
|
||||
}
|
||||
|
||||
static const char *
|
||||
parse_character (IfParser *g, const char *cp, long *valp)
|
||||
{
|
||||
char val;
|
||||
|
||||
SKIPSPACE (cp);
|
||||
if (*cp == '\\')
|
||||
switch (cp[1]) {
|
||||
case 'n': val = '\n'; break;
|
||||
case 't': val = '\t'; break;
|
||||
case 'v': val = '\v'; break;
|
||||
case 'b': val = '\b'; break;
|
||||
case 'r': val = '\r'; break;
|
||||
case 'f': val = '\f'; break;
|
||||
case 'a': val = '\a'; break;
|
||||
case '\\': val = '\\'; break;
|
||||
case '?': val = '\?'; break;
|
||||
case '\'': val = '\''; break;
|
||||
case '\"': val = '\"'; break;
|
||||
case 'x': val = (char) strtol (cp + 2, NULL, 16); break;
|
||||
default: val = (char) strtol (cp + 1, NULL, 8); break;
|
||||
}
|
||||
else
|
||||
val = *cp;
|
||||
while (*cp != '\'') cp++;
|
||||
*valp = (long) val;
|
||||
return cp;
|
||||
}
|
||||
|
||||
static const char *
|
||||
parse_value (IfParser *g, const char *cp, long *valp)
|
||||
{
|
||||
const char *var, *varend;
|
||||
|
||||
*valp = 0;
|
||||
|
||||
SKIPSPACE (cp);
|
||||
if (!*cp)
|
||||
return cp;
|
||||
|
||||
switch (*cp) {
|
||||
case '(':
|
||||
DO (cp = ParseIfExpression (g, cp + 1, valp));
|
||||
SKIPSPACE (cp);
|
||||
if (*cp != ')')
|
||||
return CALLFUNC(g, handle_error) (g, cp, ")");
|
||||
|
||||
return cp + 1; /* skip the right paren */
|
||||
|
||||
case '!':
|
||||
DO (cp = parse_value (g, cp + 1, valp));
|
||||
*valp = !(*valp);
|
||||
return cp;
|
||||
|
||||
case '-':
|
||||
DO (cp = parse_value (g, cp + 1, valp));
|
||||
*valp = -(*valp);
|
||||
return cp;
|
||||
|
||||
case '+':
|
||||
DO (cp = parse_value (g, cp + 1, valp));
|
||||
return cp;
|
||||
|
||||
case '~':
|
||||
DO (cp = parse_value (g, cp + 1, valp));
|
||||
*valp = ~(*valp);
|
||||
return cp;
|
||||
|
||||
case '#':
|
||||
DO (cp = parse_variable (g, cp + 1, &var));
|
||||
SKIPSPACE (cp);
|
||||
if (*cp != '(')
|
||||
return CALLFUNC(g, handle_error) (g, cp, "(");
|
||||
do {
|
||||
DO (cp = parse_variable (g, cp + 1, &var));
|
||||
SKIPSPACE (cp);
|
||||
} while (*cp && *cp != ')');
|
||||
if (*cp != ')')
|
||||
return CALLFUNC(g, handle_error) (g, cp, ")");
|
||||
*valp = 1; /* XXX */
|
||||
return cp + 1;
|
||||
|
||||
case '\'':
|
||||
DO (cp = parse_character (g, cp + 1, valp));
|
||||
if (*cp != '\'')
|
||||
return CALLFUNC(g, handle_error) (g, cp, "'");
|
||||
return cp + 1;
|
||||
|
||||
case 'd':
|
||||
if (strncmp (cp, "defined", 7) == 0 && !isalnum(cp[7])) {
|
||||
int paren = 0;
|
||||
int len;
|
||||
|
||||
cp += 7;
|
||||
SKIPSPACE (cp);
|
||||
if (*cp == '(') {
|
||||
paren = 1;
|
||||
cp++;
|
||||
}
|
||||
DO (cp = parse_variable (g, cp, &var));
|
||||
len = cp - var;
|
||||
SKIPSPACE (cp);
|
||||
if (paren && *cp != ')')
|
||||
return CALLFUNC(g, handle_error) (g, cp, ")");
|
||||
*valp = (*(g->funcs.eval_defined)) (g, var, len);
|
||||
return cp + paren; /* skip the right paren */
|
||||
}
|
||||
/* fall out */
|
||||
}
|
||||
|
||||
if (isdigit(*cp)) {
|
||||
DO (cp = parse_number (g, cp, valp));
|
||||
} else if (!isvarfirstletter(*cp))
|
||||
return CALLFUNC(g, handle_error) (g, cp, "variable or number");
|
||||
else {
|
||||
DO (cp = parse_variable (g, cp, &var));
|
||||
varend = cp;
|
||||
SKIPSPACE(cp);
|
||||
if (*cp != '(') {
|
||||
*valp = (*(g->funcs.eval_variable)) (g, var, varend - var);
|
||||
} else {
|
||||
do {
|
||||
long dummy;
|
||||
DO (cp = ParseIfExpression (g, cp + 1, &dummy));
|
||||
SKIPSPACE(cp);
|
||||
if (*cp == ')')
|
||||
break;
|
||||
if (*cp != ',')
|
||||
return CALLFUNC(g, handle_error) (g, cp, ",");
|
||||
} while (1);
|
||||
|
||||
*valp = 1; /* XXX */
|
||||
cp++;
|
||||
}
|
||||
}
|
||||
|
||||
return cp;
|
||||
}
|
||||
|
||||
|
||||
|
||||
static const char *
|
||||
parse_product (IfParser *g, const char *cp, long *valp)
|
||||
{
|
||||
long rightval;
|
||||
|
||||
DO (cp = parse_value (g, cp, valp));
|
||||
SKIPSPACE (cp);
|
||||
|
||||
switch (*cp) {
|
||||
case '*':
|
||||
DO (cp = parse_product (g, cp + 1, &rightval));
|
||||
*valp = (*valp * rightval);
|
||||
break;
|
||||
|
||||
case '/':
|
||||
DO (cp = parse_product (g, cp + 1, &rightval));
|
||||
*valp = (*valp / rightval);
|
||||
break;
|
||||
|
||||
case '%':
|
||||
DO (cp = parse_product (g, cp + 1, &rightval));
|
||||
*valp = (*valp % rightval);
|
||||
break;
|
||||
}
|
||||
return cp;
|
||||
}
|
||||
|
||||
|
||||
static const char *
|
||||
parse_sum (IfParser *g, const char *cp, long *valp)
|
||||
{
|
||||
long rightval;
|
||||
|
||||
DO (cp = parse_product (g, cp, valp));
|
||||
SKIPSPACE (cp);
|
||||
|
||||
switch (*cp) {
|
||||
case '+':
|
||||
DO (cp = parse_sum (g, cp + 1, &rightval));
|
||||
*valp = (*valp + rightval);
|
||||
break;
|
||||
|
||||
case '-':
|
||||
DO (cp = parse_sum (g, cp + 1, &rightval));
|
||||
*valp = (*valp - rightval);
|
||||
break;
|
||||
}
|
||||
return cp;
|
||||
}
|
||||
|
||||
|
||||
static const char *
|
||||
parse_shift (IfParser *g, const char *cp, long *valp)
|
||||
{
|
||||
long rightval;
|
||||
|
||||
DO (cp = parse_sum (g, cp, valp));
|
||||
SKIPSPACE (cp);
|
||||
|
||||
switch (*cp) {
|
||||
case '<':
|
||||
if (cp[1] == '<') {
|
||||
DO (cp = parse_shift (g, cp + 2, &rightval));
|
||||
*valp = (*valp << rightval);
|
||||
}
|
||||
break;
|
||||
|
||||
case '>':
|
||||
if (cp[1] == '>') {
|
||||
DO (cp = parse_shift (g, cp + 2, &rightval));
|
||||
*valp = (*valp >> rightval);
|
||||
}
|
||||
break;
|
||||
}
|
||||
return cp;
|
||||
}
|
||||
|
||||
|
||||
static const char *
|
||||
parse_inequality (IfParser *g, const char *cp, long *valp)
|
||||
{
|
||||
long rightval;
|
||||
|
||||
DO (cp = parse_shift (g, cp, valp));
|
||||
SKIPSPACE (cp);
|
||||
|
||||
switch (*cp) {
|
||||
case '<':
|
||||
if (cp[1] == '=') {
|
||||
DO (cp = parse_inequality (g, cp + 2, &rightval));
|
||||
*valp = (*valp <= rightval);
|
||||
} else {
|
||||
DO (cp = parse_inequality (g, cp + 1, &rightval));
|
||||
*valp = (*valp < rightval);
|
||||
}
|
||||
break;
|
||||
|
||||
case '>':
|
||||
if (cp[1] == '=') {
|
||||
DO (cp = parse_inequality (g, cp + 2, &rightval));
|
||||
*valp = (*valp >= rightval);
|
||||
} else {
|
||||
DO (cp = parse_inequality (g, cp + 1, &rightval));
|
||||
*valp = (*valp > rightval);
|
||||
}
|
||||
break;
|
||||
}
|
||||
return cp;
|
||||
}
|
||||
|
||||
|
||||
static const char *
|
||||
parse_equality (IfParser *g, const char *cp, long *valp)
|
||||
{
|
||||
long rightval;
|
||||
|
||||
DO (cp = parse_inequality (g, cp, valp));
|
||||
SKIPSPACE (cp);
|
||||
|
||||
switch (*cp) {
|
||||
case '=':
|
||||
if (cp[1] == '=')
|
||||
cp++;
|
||||
DO (cp = parse_equality (g, cp + 1, &rightval));
|
||||
*valp = (*valp == rightval);
|
||||
break;
|
||||
|
||||
case '!':
|
||||
if (cp[1] != '=')
|
||||
break;
|
||||
DO (cp = parse_equality (g, cp + 2, &rightval));
|
||||
*valp = (*valp != rightval);
|
||||
break;
|
||||
}
|
||||
return cp;
|
||||
}
|
||||
|
||||
|
||||
static const char *
|
||||
parse_band (IfParser *g, const char *cp, long *valp)
|
||||
{
|
||||
long rightval;
|
||||
|
||||
DO (cp = parse_equality (g, cp, valp));
|
||||
SKIPSPACE (cp);
|
||||
|
||||
switch (*cp) {
|
||||
case '&':
|
||||
if (cp[1] != '&') {
|
||||
DO (cp = parse_band (g, cp + 1, &rightval));
|
||||
*valp = (*valp & rightval);
|
||||
}
|
||||
break;
|
||||
}
|
||||
return cp;
|
||||
}
|
||||
|
||||
|
||||
static const char *
|
||||
parse_bxor (IfParser *g, const char *cp, long *valp)
|
||||
{
|
||||
long rightval;
|
||||
|
||||
DO (cp = parse_band (g, cp, valp));
|
||||
SKIPSPACE (cp);
|
||||
|
||||
switch (*cp) {
|
||||
case '^':
|
||||
DO (cp = parse_bxor (g, cp + 1, &rightval));
|
||||
*valp = (*valp ^ rightval);
|
||||
break;
|
||||
}
|
||||
return cp;
|
||||
}
|
||||
|
||||
|
||||
static const char *
|
||||
parse_bor (IfParser *g, const char *cp, long *valp)
|
||||
{
|
||||
long rightval;
|
||||
|
||||
DO (cp = parse_bxor (g, cp, valp));
|
||||
SKIPSPACE (cp);
|
||||
|
||||
switch (*cp) {
|
||||
case '|':
|
||||
if (cp[1] != '|') {
|
||||
DO (cp = parse_bor (g, cp + 1, &rightval));
|
||||
*valp = (*valp | rightval);
|
||||
}
|
||||
break;
|
||||
}
|
||||
return cp;
|
||||
}
|
||||
|
||||
|
||||
static const char *
|
||||
parse_land (IfParser *g, const char *cp, long *valp)
|
||||
{
|
||||
long rightval;
|
||||
|
||||
DO (cp = parse_bor (g, cp, valp));
|
||||
SKIPSPACE (cp);
|
||||
|
||||
switch (*cp) {
|
||||
case '&':
|
||||
if (cp[1] != '&')
|
||||
return CALLFUNC(g, handle_error) (g, cp, "&&");
|
||||
DO (cp = parse_land (g, cp + 2, &rightval));
|
||||
*valp = (*valp && rightval);
|
||||
break;
|
||||
}
|
||||
return cp;
|
||||
}
|
||||
|
||||
|
||||
static const char *
|
||||
parse_lor (IfParser *g, const char *cp, long *valp)
|
||||
{
|
||||
long rightval;
|
||||
|
||||
DO (cp = parse_land (g, cp, valp));
|
||||
SKIPSPACE (cp);
|
||||
|
||||
switch (*cp) {
|
||||
case '|':
|
||||
if (cp[1] != '|')
|
||||
return CALLFUNC(g, handle_error) (g, cp, "||");
|
||||
DO (cp = parse_lor (g, cp + 2, &rightval));
|
||||
*valp = (*valp || rightval);
|
||||
break;
|
||||
}
|
||||
return cp;
|
||||
}
|
||||
|
||||
|
||||
static const char *
|
||||
parse_cond(IfParser *g, const char *cp, long *valp)
|
||||
{
|
||||
long trueval, falseval;
|
||||
|
||||
DO (cp = parse_lor (g, cp, valp));
|
||||
SKIPSPACE (cp);
|
||||
|
||||
switch (*cp) {
|
||||
case '?':
|
||||
DO (cp = parse_cond (g, cp + 1, &trueval));
|
||||
SKIPSPACE (cp);
|
||||
if (*cp != ':')
|
||||
return CALLFUNC(g, handle_error) (g, cp, ":");
|
||||
DO (cp = parse_cond (g, cp + 1, &falseval));
|
||||
*valp = (*valp ? trueval : falseval);
|
||||
break;
|
||||
}
|
||||
return cp;
|
||||
}
|
||||
|
||||
|
||||
/****************************************************************************
|
||||
External Entry Points
|
||||
****************************************************************************/
|
||||
|
||||
const char *
|
||||
ParseIfExpression (IfParser *g, const char *cp, long *valp)
|
||||
{
|
||||
return parse_cond (g, cp, valp);
|
||||
}
|
|
@ -0,0 +1,83 @@
|
|||
/*
|
||||
* $Xorg: ifparser.h,v 1.3 2000/08/17 19:41:51 cpqbld Exp $
|
||||
*
|
||||
* Copyright 1992 Network Computing Devices, Inc.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software and its
|
||||
* documentation for any purpose and without fee is hereby granted, provided
|
||||
* that the above copyright notice appear in all copies and that both that
|
||||
* copyright notice and this permission notice appear in supporting
|
||||
* documentation, and that the name of Network Computing Devices may not be
|
||||
* used in advertising or publicity pertaining to distribution of the software
|
||||
* without specific, written prior permission. Network Computing Devices makes
|
||||
* no representations about the suitability of this software for any purpose.
|
||||
* It is provided ``as is'' without express or implied warranty.
|
||||
*
|
||||
* NETWORK COMPUTING DEVICES DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
|
||||
* SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
|
||||
* IN NO EVENT SHALL NETWORK COMPUTING DEVICES BE LIABLE FOR ANY SPECIAL,
|
||||
* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
* LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
|
||||
* OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*
|
||||
* Author: Jim Fulton
|
||||
* Network Computing Devices, Inc.
|
||||
*
|
||||
* Simple if statement processor
|
||||
*
|
||||
* This module can be used to evaluate string representations of C language
|
||||
* if constructs. It accepts the following grammar:
|
||||
*
|
||||
* EXPRESSION := VALUE
|
||||
* | VALUE BINOP EXPRESSION
|
||||
* | VALUE '?' EXPRESSION ':' EXPRESSION
|
||||
*
|
||||
* VALUE := '(' EXPRESSION ')'
|
||||
* | '!' VALUE
|
||||
* | '-' VALUE
|
||||
* | '~' VALUE
|
||||
* | 'defined' '(' variable ')'
|
||||
* | variable
|
||||
* | number
|
||||
*
|
||||
* BINOP := '*' | '/' | '%'
|
||||
* | '+' | '-'
|
||||
* | '<<' | '>>'
|
||||
* | '<' | '>' | '<=' | '>='
|
||||
* | '==' | '!='
|
||||
* | '&' | '^' | '|'
|
||||
* | '&&' | '||'
|
||||
*
|
||||
* The normal C order of precedence is supported.
|
||||
*
|
||||
*
|
||||
* External Entry Points:
|
||||
*
|
||||
* ParseIfExpression parse a string for #if
|
||||
*/
|
||||
|
||||
/* $XFree86: xc/config/makedepend/ifparser.h,v 3.5 2001/07/25 15:04:40 dawes Exp $ */
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
typedef int Bool;
|
||||
#define False 0
|
||||
#define True 1
|
||||
|
||||
typedef struct _if_parser {
|
||||
struct { /* functions */
|
||||
const char *(*handle_error) (struct _if_parser *, const char *,
|
||||
const char *);
|
||||
long (*eval_variable) (struct _if_parser *, const char *, int);
|
||||
int (*eval_defined) (struct _if_parser *, const char *, int);
|
||||
} funcs;
|
||||
char *data;
|
||||
} IfParser;
|
||||
|
||||
const char *ParseIfExpression (
|
||||
IfParser *,
|
||||
const char *,
|
||||
long *
|
||||
);
|
||||
|
|
@ -0,0 +1,733 @@
|
|||
|
||||
/* $XConsortium: imakemdep.h,v 1.83 95/04/07 19:47:46 kaleb Exp $ */
|
||||
/* $XFree86: xc/config/imake/imakemdep.h,v 3.12 1995/07/08 10:22:17 dawes Exp $ */
|
||||
/*
|
||||
|
||||
Copyright (c) 1993, 1994 X Consortium
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of the X Consortium shall not be
|
||||
used in advertising or otherwise to promote the sale, use or other dealings
|
||||
in this Software without prior written authorization from the X Consortium.
|
||||
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* This file contains machine-dependent constants for the imake utility.
|
||||
* When porting imake, read each of the steps below and add in any necessary
|
||||
* definitions. In general you should *not* edit ccimake.c or imake.c!
|
||||
*/
|
||||
|
||||
#ifdef CCIMAKE
|
||||
/*
|
||||
* Step 1: imake_ccflags
|
||||
* Define any special flags that will be needed to get imake.c to compile.
|
||||
* These will be passed to the compile along with the contents of the
|
||||
* make variable BOOTSTRAPCFLAGS.
|
||||
*/
|
||||
#ifdef hpux
|
||||
#ifdef hp9000s800
|
||||
#define imake_ccflags "-DSYSV"
|
||||
#else
|
||||
#define imake_ccflags "-Wc,-Nd4000,-Ns3000 -DSYSV"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(macII) || defined(_AUX_SOURCE)
|
||||
#define imake_ccflags "-DmacII -DSYSV"
|
||||
#endif
|
||||
|
||||
#ifdef stellar
|
||||
#define imake_ccflags "-DSYSV"
|
||||
#endif
|
||||
|
||||
#if defined(USL) || defined(Oki) || defined(NCR)
|
||||
#define imake_ccflags "-Xc -DSVR4"
|
||||
#endif
|
||||
|
||||
#ifdef sony
|
||||
#if defined(SYSTYPE_SYSV) || defined(_SYSTYPE_SYSV)
|
||||
#define imake_ccflags "-DSVR4"
|
||||
#else
|
||||
#include <sys/param.h>
|
||||
#if NEWSOS < 41
|
||||
#define imake_ccflags "-Dbsd43 -DNOSTDHDRS"
|
||||
#else
|
||||
#if NEWSOS < 42
|
||||
#define imake_ccflags "-Dbsd43"
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef _CRAY
|
||||
#define imake_ccflags "-DSYSV -DUSG"
|
||||
#endif
|
||||
|
||||
#if defined(_IBMR2) || defined(aix)
|
||||
#define imake_ccflags "-Daix -DSYSV"
|
||||
#endif
|
||||
|
||||
#ifdef Mips
|
||||
# if defined(SYSTYPE_BSD) || defined(BSD) || defined(BSD43)
|
||||
# define imake_ccflags "-DBSD43"
|
||||
# else
|
||||
# define imake_ccflags "-DSYSV"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef is68k
|
||||
#define imake_ccflags "-Dluna -Duniosb"
|
||||
#endif
|
||||
|
||||
#ifdef SYSV386
|
||||
# ifdef SVR4
|
||||
# define imake_ccflags "-Xc -DSVR4"
|
||||
# else
|
||||
# define imake_ccflags "-DSYSV"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef SVR4
|
||||
# ifdef i386
|
||||
# define imake_ccflags "-Xc -DSVR4"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef SYSV
|
||||
# ifdef i386
|
||||
# define imake_ccflags "-DSYSV"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef __convex__
|
||||
#define imake_ccflags "-fn -tm c1"
|
||||
#endif
|
||||
|
||||
#ifdef apollo
|
||||
#define imake_ccflags "-DX_NOT_POSIX"
|
||||
#endif
|
||||
|
||||
#ifdef WIN32
|
||||
#define imake_ccflags "-nologo -batch -D__STDC__"
|
||||
#endif
|
||||
|
||||
#ifdef __uxp__
|
||||
#define imake_ccflags "-DSVR4 -DANSICPP"
|
||||
#endif
|
||||
|
||||
#ifdef __sxg__
|
||||
#define imake_ccflags "-DSYSV -DUSG -DNOSTDHDRS"
|
||||
#endif
|
||||
|
||||
#ifdef sequent
|
||||
#define imake_ccflags "-DX_NOT_STDC_ENV -DX_NOT_POSIX"
|
||||
#endif
|
||||
|
||||
#ifdef _SEQUENT_
|
||||
#define imake_ccflags "-DSYSV -DUSG"
|
||||
#endif
|
||||
|
||||
#if defined(SX) || defined(PC_UX)
|
||||
#define imake_ccflags "-DSYSV"
|
||||
#endif
|
||||
|
||||
#ifdef nec_ews_svr2
|
||||
#define imake_ccflags "-DUSG"
|
||||
#endif
|
||||
|
||||
#if defined(nec_ews_svr4) || defined(_nec_ews_svr4) || defined(_nec_up) || defined(_nec_ft)
|
||||
#define imake_ccflags "-DSVR4"
|
||||
#endif
|
||||
|
||||
#ifdef MACH
|
||||
#define imake_ccflags "-DNOSTDHDRS"
|
||||
#endif
|
||||
|
||||
/* this is for OS/2 under EMX. This won't work with DOS */
|
||||
#if defined(__EMX__)
|
||||
#define imake_ccflags "-DBSD43"
|
||||
#endif
|
||||
|
||||
#else /* not CCIMAKE */
|
||||
#ifndef MAKEDEPEND
|
||||
/*
|
||||
* Step 2: dup2
|
||||
* If your OS doesn't have a dup2() system call to duplicate one file
|
||||
* descriptor onto another, define such a mechanism here (if you don't
|
||||
* already fall under the existing category(ies).
|
||||
*/
|
||||
#if defined(SYSV) && !defined(_CRAY) && !defined(Mips) && !defined(_SEQUENT_)
|
||||
#define dup2(fd1,fd2) ((fd1 == fd2) ? fd1 : (close(fd2), \
|
||||
fcntl(fd1, F_DUPFD, fd2)))
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
* Step 3: FIXUP_CPP_WHITESPACE
|
||||
* If your cpp collapses tabs macro expansions into a single space and
|
||||
* replaces escaped newlines with a space, define this symbol. This will
|
||||
* cause imake to attempt to patch up the generated Makefile by looking
|
||||
* for lines that have colons in them (this is why the rules file escapes
|
||||
* all colons). One way to tell if you need this is to see whether or not
|
||||
* your Makefiles have no tabs in them and lots of @@ strings.
|
||||
*/
|
||||
#if defined(sun) || defined(SYSV) || defined(SVR4) || defined(hcx) || defined(WIN32) || (defined(AMOEBA) && defined(CROSS_COMPILE))
|
||||
#define FIXUP_CPP_WHITESPACE
|
||||
#endif
|
||||
#ifdef WIN32
|
||||
#define REMOVE_CPP_LEADSPACE
|
||||
#define INLINE_SYNTAX
|
||||
#define MAGIC_MAKE_VARS
|
||||
#endif
|
||||
#ifdef __minix_vmd
|
||||
#define FIXUP_CPP_WHITESPACE
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Step 4: USE_CC_E, DEFAULT_CC, DEFAULT_CPP
|
||||
* If you want to use cc -E instead of cpp, define USE_CC_E.
|
||||
* If use cc -E but want a different compiler, define DEFAULT_CC.
|
||||
* If the cpp you need is not in /lib/cpp, define DEFAULT_CPP.
|
||||
*/
|
||||
#ifdef hpux
|
||||
#define USE_CC_E
|
||||
#endif
|
||||
#ifdef WIN32
|
||||
#define USE_CC_E
|
||||
#define DEFAULT_CC "cl"
|
||||
#endif
|
||||
#ifdef apollo
|
||||
#define DEFAULT_CPP "/usr/lib/cpp"
|
||||
#endif
|
||||
#if defined(_IBMR2) && !defined(DEFAULT_CPP)
|
||||
#define DEFAULT_CPP "/usr/lpp/X11/Xamples/util/cpp/cpp"
|
||||
#endif
|
||||
#if defined(sun) && defined(SVR4)
|
||||
#define DEFAULT_CPP "/usr/ccs/lib/cpp"
|
||||
#endif
|
||||
#ifdef __bsdi__
|
||||
#define DEFAULT_CPP "/usr/bin/cpp"
|
||||
#endif
|
||||
#ifdef __uxp__
|
||||
#define DEFAULT_CPP "/usr/ccs/lib/cpp"
|
||||
#endif
|
||||
#ifdef __sxg__
|
||||
#define DEFAULT_CPP "/usr/lib/cpp"
|
||||
#endif
|
||||
#ifdef _CRAY
|
||||
#define DEFAULT_CPP "/lib/pcpp"
|
||||
#endif
|
||||
#if defined(__386BSD__) || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__)
|
||||
#define DEFAULT_CPP "/usr/libexec/cpp"
|
||||
#endif
|
||||
#ifdef MACH
|
||||
#define USE_CC_E
|
||||
#endif
|
||||
#ifdef __minix_vmd
|
||||
#define DEFAULT_CPP "/usr/lib/cpp"
|
||||
#endif
|
||||
#if defined(__EMX__)
|
||||
/* expects cpp in PATH */
|
||||
#define DEFAULT_CPP "cpp"
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Step 5: cpp_argv
|
||||
* The following table contains the flags that should be passed
|
||||
* whenever a Makefile is being generated. If your preprocessor
|
||||
* doesn't predefine any unique symbols, choose one and add it to the
|
||||
* end of this table. Then, do the following:
|
||||
*
|
||||
* a. Use this symbol in Imake.tmpl when setting MacroFile.
|
||||
* b. Put this symbol in the definition of BootstrapCFlags in your
|
||||
* <platform>.cf file.
|
||||
* c. When doing a make World, always add "BOOTSTRAPCFLAGS=-Dsymbol"
|
||||
* to the end of the command line.
|
||||
*
|
||||
* Note that you may define more than one symbol (useful for platforms
|
||||
* that support multiple operating systems).
|
||||
*/
|
||||
|
||||
#define ARGUMENTS 50 /* number of arguments in various arrays */
|
||||
char *cpp_argv[ARGUMENTS] = {
|
||||
"cc", /* replaced by the actual program to exec */
|
||||
"-I.", /* add current directory to include path */
|
||||
#ifdef unix
|
||||
"-Uunix", /* remove unix symbol so that filename unix.c okay */
|
||||
#endif
|
||||
#if defined(__386BSD__) || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(MACH)
|
||||
# ifdef __i386__
|
||||
"-D__i386__",
|
||||
# endif
|
||||
# ifdef __x86_64__
|
||||
"-D__x86_64__",
|
||||
# endif
|
||||
# ifdef __GNUC__
|
||||
"-traditional",
|
||||
# endif
|
||||
#endif
|
||||
#ifdef M4330
|
||||
"-DM4330", /* Tektronix */
|
||||
#endif
|
||||
#ifdef M4310
|
||||
"-DM4310", /* Tektronix */
|
||||
#endif
|
||||
#if defined(macII) || defined(_AUX_SOURCE)
|
||||
"-DmacII", /* Apple A/UX */
|
||||
#endif
|
||||
#ifdef USL
|
||||
"-DUSL", /* USL */
|
||||
#endif
|
||||
#ifdef sony
|
||||
"-Dsony", /* Sony */
|
||||
#if !defined(SYSTYPE_SYSV) && !defined(_SYSTYPE_SYSV) && NEWSOS < 42
|
||||
"-Dbsd43",
|
||||
#endif
|
||||
#endif
|
||||
#ifdef _IBMR2
|
||||
"-D_IBMR2", /* IBM RS-6000 (we ensured that aix is defined above */
|
||||
#ifndef aix
|
||||
#define aix /* allow BOOTSTRAPCFLAGS="-D_IBMR2" */
|
||||
#endif
|
||||
#endif /* _IBMR2 */
|
||||
#ifdef aix
|
||||
"-Daix", /* AIX instead of AOS */
|
||||
#ifndef ibm
|
||||
#define ibm /* allow BOOTSTRAPCFLAGS="-Daix" */
|
||||
#endif
|
||||
#endif /* aix */
|
||||
#ifdef ibm
|
||||
"-Dibm", /* IBM PS/2 and RT under both AOS and AIX */
|
||||
#endif
|
||||
#ifdef luna
|
||||
"-Dluna", /* OMRON luna 68K and 88K */
|
||||
#ifdef luna1
|
||||
"-Dluna1",
|
||||
#endif
|
||||
#ifdef luna88k /* need not on UniOS-Mach Vers. 1.13 */
|
||||
"-traditional", /* for some older version */
|
||||
#endif /* instead of "-DXCOMM=\\#" */
|
||||
#ifdef uniosb
|
||||
"-Duniosb",
|
||||
#endif
|
||||
#ifdef uniosu
|
||||
"-Duniosu",
|
||||
#endif
|
||||
#endif /* luna */
|
||||
#ifdef _CRAY /* Cray */
|
||||
"-Ucray",
|
||||
#endif
|
||||
#ifdef Mips
|
||||
"-DMips", /* Define and use Mips for Mips Co. OS/mach. */
|
||||
# if defined(SYSTYPE_BSD) || defined(BSD) || defined(BSD43)
|
||||
"-DBSD43", /* Mips RISCOS supports two environments */
|
||||
# else
|
||||
"-DSYSV", /* System V environment is the default */
|
||||
# endif
|
||||
#endif /* Mips */
|
||||
#ifdef MOTOROLA
|
||||
"-DMOTOROLA", /* Motorola Delta Systems */
|
||||
# ifdef SYSV
|
||||
"-DSYSV",
|
||||
# endif
|
||||
# ifdef SVR4
|
||||
"-DSVR4",
|
||||
# endif
|
||||
#endif /* MOTOROLA */
|
||||
#ifdef i386
|
||||
"-Di386",
|
||||
# ifdef SVR4
|
||||
"-DSVR4",
|
||||
# endif
|
||||
# ifdef SYSV
|
||||
"-DSYSV",
|
||||
# ifdef ISC
|
||||
"-DISC",
|
||||
# ifdef ISC40
|
||||
"-DISC40", /* ISC 4.0 */
|
||||
# else
|
||||
# ifdef ISC202
|
||||
"-DISC202", /* ISC 2.0.2 */
|
||||
# else
|
||||
# ifdef ISC30
|
||||
"-DISC30", /* ISC 3.0 */
|
||||
# else
|
||||
"-DISC22", /* ISC 2.2.1 */
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
# ifdef SCO
|
||||
"-DSCO",
|
||||
# ifdef SCO324
|
||||
"-DSCO324",
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
# ifdef ESIX
|
||||
"-DESIX",
|
||||
# endif
|
||||
# ifdef ATT
|
||||
"-DATT",
|
||||
# endif
|
||||
# ifdef DELL
|
||||
"-DDELL",
|
||||
# endif
|
||||
#endif
|
||||
#ifdef SYSV386 /* System V/386 folks, obsolete */
|
||||
"-Di386",
|
||||
# ifdef SVR4
|
||||
"-DSVR4",
|
||||
# endif
|
||||
# ifdef ISC
|
||||
"-DISC",
|
||||
# ifdef ISC40
|
||||
"-DISC40", /* ISC 4.0 */
|
||||
# else
|
||||
# ifdef ISC202
|
||||
"-DISC202", /* ISC 2.0.2 */
|
||||
# else
|
||||
# ifdef ISC30
|
||||
"-DISC30", /* ISC 3.0 */
|
||||
# else
|
||||
"-DISC22", /* ISC 2.2.1 */
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
# ifdef SCO
|
||||
"-DSCO",
|
||||
# ifdef SCO324
|
||||
"-DSCO324",
|
||||
# endif
|
||||
# endif
|
||||
# ifdef ESIX
|
||||
"-DESIX",
|
||||
# endif
|
||||
# ifdef ATT
|
||||
"-DATT",
|
||||
# endif
|
||||
# ifdef DELL
|
||||
"-DDELL",
|
||||
# endif
|
||||
#endif
|
||||
#ifdef __osf__
|
||||
"-D__osf__",
|
||||
# ifdef __mips__
|
||||
"-D__mips__",
|
||||
# endif
|
||||
# ifdef __alpha
|
||||
"-D__alpha",
|
||||
# endif
|
||||
# ifdef __i386__
|
||||
"-D__i386__",
|
||||
# endif
|
||||
# ifdef __GNUC__
|
||||
"-traditional",
|
||||
# endif
|
||||
#endif
|
||||
#ifdef Oki
|
||||
"-DOki",
|
||||
#endif
|
||||
#ifdef sun
|
||||
#ifdef SVR4
|
||||
"-DSVR4",
|
||||
#endif
|
||||
#endif
|
||||
#ifdef WIN32
|
||||
"-DWIN32",
|
||||
"-nologo",
|
||||
"-batch",
|
||||
"-D__STDC__",
|
||||
#endif
|
||||
#ifdef NCR
|
||||
"-DNCR", /* NCR */
|
||||
#endif
|
||||
#ifdef linux
|
||||
"-traditional",
|
||||
"-Dlinux",
|
||||
#endif
|
||||
#ifdef __uxp__
|
||||
"-D__uxp__",
|
||||
#endif
|
||||
#ifdef __sxg__
|
||||
"-D__sxg__",
|
||||
#endif
|
||||
#ifdef nec_ews_svr2
|
||||
"-Dnec_ews_svr2",
|
||||
#endif
|
||||
#ifdef AMOEBA
|
||||
"-DAMOEBA",
|
||||
# ifdef CROSS_COMPILE
|
||||
"-DCROSS_COMPILE",
|
||||
# ifdef CROSS_i80386
|
||||
"-Di80386",
|
||||
# endif
|
||||
# ifdef CROSS_sparc
|
||||
"-Dsparc",
|
||||
# endif
|
||||
# ifdef CROSS_mc68000
|
||||
"-Dmc68000",
|
||||
# endif
|
||||
# else
|
||||
# ifdef i80386
|
||||
"-Di80386",
|
||||
# endif
|
||||
# ifdef sparc
|
||||
"-Dsparc",
|
||||
# endif
|
||||
# ifdef mc68000
|
||||
"-Dmc68000",
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
#ifdef __minix_vmd
|
||||
"-Dminix",
|
||||
#endif
|
||||
|
||||
#if defined(__EMX__)
|
||||
"-traditional",
|
||||
"-Demxos2",
|
||||
#endif
|
||||
|
||||
};
|
||||
#else /* else MAKEDEPEND */
|
||||
/*
|
||||
* Step 6: predefs
|
||||
* If your compiler and/or preprocessor define any specific symbols, add
|
||||
* them to the the following table. The definition of struct symtab is
|
||||
* in util/makedepend/def.h.
|
||||
*/
|
||||
struct symtab predefs[] = {
|
||||
#ifdef apollo
|
||||
{"apollo", "1"},
|
||||
#endif
|
||||
#ifdef ibm032
|
||||
{"ibm032", "1"},
|
||||
#endif
|
||||
#ifdef ibm
|
||||
{"ibm", "1"},
|
||||
#endif
|
||||
#ifdef aix
|
||||
{"aix", "1"},
|
||||
#endif
|
||||
#ifdef sun
|
||||
{"sun", "1"},
|
||||
#endif
|
||||
#ifdef sun2
|
||||
{"sun2", "1"},
|
||||
#endif
|
||||
#ifdef sun3
|
||||
{"sun3", "1"},
|
||||
#endif
|
||||
#ifdef sun4
|
||||
{"sun4", "1"},
|
||||
#endif
|
||||
#ifdef sparc
|
||||
{"sparc", "1"},
|
||||
#endif
|
||||
#ifdef __sparc__
|
||||
{"__sparc__", "1"},
|
||||
#endif
|
||||
#ifdef hpux
|
||||
{"hpux", "1"},
|
||||
#endif
|
||||
#ifdef __hpux
|
||||
{"__hpux", "1"},
|
||||
#endif
|
||||
#ifdef __hp9000s800
|
||||
{"__hp9000s800", "1"},
|
||||
#endif
|
||||
#ifdef __hp9000s700
|
||||
{"__hp9000s700", "1"},
|
||||
#endif
|
||||
#ifdef vax
|
||||
{"vax", "1"},
|
||||
#endif
|
||||
#ifdef VMS
|
||||
{"VMS", "1"},
|
||||
#endif
|
||||
#ifdef cray
|
||||
{"cray", "1"},
|
||||
#endif
|
||||
#ifdef CRAY
|
||||
{"CRAY", "1"},
|
||||
#endif
|
||||
#ifdef _CRAY
|
||||
{"_CRAY", "1"},
|
||||
#endif
|
||||
#ifdef att
|
||||
{"att", "1"},
|
||||
#endif
|
||||
#ifdef mips
|
||||
{"mips", "1"},
|
||||
#endif
|
||||
#ifdef __mips__
|
||||
{"__mips__", "1"},
|
||||
#endif
|
||||
#ifdef ultrix
|
||||
{"ultrix", "1"},
|
||||
#endif
|
||||
#ifdef stellar
|
||||
{"stellar", "1"},
|
||||
#endif
|
||||
#ifdef mc68000
|
||||
{"mc68000", "1"},
|
||||
#endif
|
||||
#ifdef mc68020
|
||||
{"mc68020", "1"},
|
||||
#endif
|
||||
#ifdef __GNUC__
|
||||
{"__GNUC__", "1"},
|
||||
#endif
|
||||
#if __STDC__
|
||||
{"__STDC__", "1"},
|
||||
#endif
|
||||
#ifdef __HIGHC__
|
||||
{"__HIGHC__", "1"},
|
||||
#endif
|
||||
#ifdef CMU
|
||||
{"CMU", "1"},
|
||||
#endif
|
||||
#ifdef luna
|
||||
{"luna", "1"},
|
||||
#ifdef luna1
|
||||
{"luna1", "1"},
|
||||
#endif
|
||||
#ifdef luna2
|
||||
{"luna2", "1"},
|
||||
#endif
|
||||
#ifdef luna88k
|
||||
{"luna88k", "1"},
|
||||
#endif
|
||||
#ifdef uniosb
|
||||
{"uniosb", "1"},
|
||||
#endif
|
||||
#ifdef uniosu
|
||||
{"uniosu", "1"},
|
||||
#endif
|
||||
#endif
|
||||
#ifdef ieeep754
|
||||
{"ieeep754", "1"},
|
||||
#endif
|
||||
#ifdef is68k
|
||||
{"is68k", "1"},
|
||||
#endif
|
||||
#ifdef m68k
|
||||
{"m68k", "1"},
|
||||
#endif
|
||||
#ifdef m88k
|
||||
{"m88k", "1"},
|
||||
#endif
|
||||
#ifdef __m88k__
|
||||
{"__m88k__", "1"},
|
||||
#endif
|
||||
#ifdef bsd43
|
||||
{"bsd43", "1"},
|
||||
#endif
|
||||
#ifdef hcx
|
||||
{"hcx", "1"},
|
||||
#endif
|
||||
#ifdef sony
|
||||
{"sony", "1"},
|
||||
#ifdef SYSTYPE_SYSV
|
||||
{"SYSTYPE_SYSV", "1"},
|
||||
#endif
|
||||
#ifdef _SYSTYPE_SYSV
|
||||
{"_SYSTYPE_SYSV", "1"},
|
||||
#endif
|
||||
#endif
|
||||
#ifdef __OSF__
|
||||
{"__OSF__", "1"},
|
||||
#endif
|
||||
#ifdef __osf__
|
||||
{"__osf__", "1"},
|
||||
#endif
|
||||
#ifdef __alpha
|
||||
{"__alpha", "1"},
|
||||
#endif
|
||||
#ifdef __DECC
|
||||
{"__DECC", "1"},
|
||||
#endif
|
||||
#ifdef __decc
|
||||
{"__decc", "1"},
|
||||
#endif
|
||||
#ifdef __uxp__
|
||||
{"__uxp__", "1"},
|
||||
#endif
|
||||
#ifdef __sxg__
|
||||
{"__sxg__", "1"},
|
||||
#endif
|
||||
#ifdef _SEQUENT_
|
||||
{"_SEQUENT_", "1"},
|
||||
{"__STDC__", "1"},
|
||||
#endif
|
||||
#ifdef __bsdi__
|
||||
{"__bsdi__", "1"},
|
||||
#endif
|
||||
#ifdef nec_ews_svr2
|
||||
{"nec_ews_svr2", "1"},
|
||||
#endif
|
||||
#ifdef nec_ews_svr4
|
||||
{"nec_ews_svr4", "1"},
|
||||
#endif
|
||||
#ifdef _nec_ews_svr4
|
||||
{"_nec_ews_svr4", "1"},
|
||||
#endif
|
||||
#ifdef _nec_up
|
||||
{"_nec_up", "1"},
|
||||
#endif
|
||||
#ifdef SX
|
||||
{"SX", "1"},
|
||||
#endif
|
||||
#ifdef nec
|
||||
{"nec", "1"},
|
||||
#endif
|
||||
#ifdef _nec_ft
|
||||
{"_nec_ft", "1"},
|
||||
#endif
|
||||
#ifdef PC_UX
|
||||
{"PC_UX", "1"},
|
||||
#endif
|
||||
#ifdef sgi
|
||||
{"sgi", "1"},
|
||||
#endif
|
||||
#ifdef __sgi
|
||||
{"__sgi", "1"},
|
||||
#endif
|
||||
#ifdef __FreeBSD__
|
||||
{"__FreeBSD__", "1"},
|
||||
#endif
|
||||
#ifdef __NetBSD__
|
||||
{"__NetBSD__", "1"},
|
||||
#endif
|
||||
#ifdef __OpenBSD__
|
||||
{"__OpenBSD__", "1"},
|
||||
#endif
|
||||
#ifdef __EMX__
|
||||
{"__EMX__", "1"},
|
||||
#endif
|
||||
/* add any additional symbols before this line */
|
||||
{NULL, NULL}
|
||||
};
|
||||
|
||||
#endif /* MAKEDEPEND */
|
||||
#endif /* CCIMAKE */
|
|
@ -0,0 +1,337 @@
|
|||
/* $Xorg: include.c,v 1.4 2001/02/09 02:03:16 xorgcvs Exp $ */
|
||||
/*
|
||||
|
||||
Copyright (c) 1993, 1994, 1998 The Open Group
|
||||
|
||||
Permission to use, copy, modify, distribute, and sell this software and its
|
||||
documentation for any purpose is hereby granted without fee, provided that
|
||||
the above copyright notice appear in all copies and that both that
|
||||
copyright notice and this permission notice appear in supporting
|
||||
documentation.
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of The Open Group shall not be
|
||||
used in advertising or otherwise to promote the sale, use or other dealings
|
||||
in this Software without prior written authorization from The Open Group.
|
||||
|
||||
*/
|
||||
/* $XFree86: xc/config/makedepend/include.c,v 3.7 2001/12/14 19:53:20 dawes Exp $ */
|
||||
|
||||
|
||||
#include "def.h"
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#include <windows.h>
|
||||
static int
|
||||
does_file_exist(char *file)
|
||||
{
|
||||
WIN32_FILE_ATTRIBUTE_DATA data;
|
||||
BOOL b = GetFileAttributesExA(file, GetFileExInfoStandard, &data);
|
||||
if (!b)
|
||||
return 0;
|
||||
return (data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == 0;
|
||||
}
|
||||
#else
|
||||
static int
|
||||
does_file_exist(char *file)
|
||||
{
|
||||
struct stat sb;
|
||||
return stat(file, &sb) == 0 && !S_ISDIR(sb.st_mode);
|
||||
}
|
||||
#endif
|
||||
|
||||
extern struct inclist inclist[ MAXFILES ],
|
||||
*inclistp, *inclistnext;
|
||||
extern char *includedirs[ ],
|
||||
**includedirsnext;
|
||||
extern char *notdotdot[ ];
|
||||
extern boolean show_where_not;
|
||||
extern boolean warn_multiple;
|
||||
|
||||
static boolean
|
||||
isdot(char *p)
|
||||
{
|
||||
if(p && *p++ == '.' && *p++ == '\0')
|
||||
return(TRUE);
|
||||
return(FALSE);
|
||||
}
|
||||
|
||||
static boolean
|
||||
isdotdot(char *p)
|
||||
{
|
||||
if(p && *p++ == '.' && *p++ == '.' && *p++ == '\0')
|
||||
return(TRUE);
|
||||
return(FALSE);
|
||||
}
|
||||
|
||||
static boolean
|
||||
issymbolic(char *dir, char *component)
|
||||
{
|
||||
#ifdef S_IFLNK
|
||||
struct stat st;
|
||||
char buf[ BUFSIZ ], **pp;
|
||||
|
||||
sprintf(buf, "%s%s%s", dir, *dir ? "/" : "", component);
|
||||
for (pp=notdotdot; *pp; pp++)
|
||||
if (strcmp(*pp, buf) == 0)
|
||||
return (TRUE);
|
||||
if (lstat(buf, &st) == 0
|
||||
&& (st.st_mode & S_IFMT) == S_IFLNK) {
|
||||
*pp++ = copy(buf);
|
||||
if (pp >= ¬dotdot[ MAXDIRS ])
|
||||
fatalerr("out of .. dirs, increase MAXDIRS\n");
|
||||
return(TRUE);
|
||||
}
|
||||
#endif
|
||||
return(FALSE);
|
||||
}
|
||||
|
||||
/*
|
||||
* Occasionally, pathnames are created that look like .../x/../y
|
||||
* Any of the 'x/..' sequences within the name can be eliminated.
|
||||
* (but only if 'x' is not a symbolic link!!)
|
||||
*/
|
||||
static void
|
||||
remove_dotdot(char *path)
|
||||
{
|
||||
register char *end, *from, *to, **cp;
|
||||
char *components[ MAXFILES ],
|
||||
newpath[ BUFSIZ ];
|
||||
boolean component_copied;
|
||||
|
||||
/*
|
||||
* slice path up into components.
|
||||
*/
|
||||
to = newpath;
|
||||
if (*path == '/')
|
||||
*to++ = '/';
|
||||
*to = '\0';
|
||||
cp = components;
|
||||
for (from=end=path; *end; end++)
|
||||
if (*end == '/') {
|
||||
while (*end == '/')
|
||||
*end++ = '\0';
|
||||
if (*from)
|
||||
*cp++ = from;
|
||||
from = end;
|
||||
}
|
||||
*cp++ = from;
|
||||
*cp = NULL;
|
||||
|
||||
/*
|
||||
* Recursively remove all 'x/..' component pairs.
|
||||
*/
|
||||
cp = components;
|
||||
while(*cp) {
|
||||
if (!isdot(*cp) && !isdotdot(*cp) && isdotdot(*(cp+1))
|
||||
&& !issymbolic(newpath, *cp))
|
||||
{
|
||||
char **fp = cp + 2;
|
||||
char **tp = cp;
|
||||
|
||||
do
|
||||
*tp++ = *fp; /* move all the pointers down */
|
||||
while (*fp++);
|
||||
if (cp != components)
|
||||
cp--; /* go back and check for nested ".." */
|
||||
} else {
|
||||
cp++;
|
||||
}
|
||||
}
|
||||
/*
|
||||
* Concatenate the remaining path elements.
|
||||
*/
|
||||
cp = components;
|
||||
component_copied = FALSE;
|
||||
while(*cp) {
|
||||
if (component_copied)
|
||||
*to++ = '/';
|
||||
component_copied = TRUE;
|
||||
for (from = *cp; *from; )
|
||||
*to++ = *from++;
|
||||
*to = '\0';
|
||||
cp++;
|
||||
}
|
||||
*to++ = '\0';
|
||||
|
||||
/*
|
||||
* copy the reconstituted path back to our pointer.
|
||||
*/
|
||||
strcpy(path, newpath);
|
||||
}
|
||||
|
||||
/*
|
||||
* Add an include file to the list of those included by 'file'.
|
||||
*/
|
||||
struct inclist *
|
||||
newinclude(char *newfile, char *incstring)
|
||||
{
|
||||
register struct inclist *ip;
|
||||
|
||||
/*
|
||||
* First, put this file on the global list of include files.
|
||||
*/
|
||||
ip = inclistp++;
|
||||
if (inclistp == inclist + MAXFILES - 1)
|
||||
fatalerr("out of space: increase MAXFILES\n");
|
||||
ip->i_file = copy(newfile);
|
||||
|
||||
if (incstring == NULL)
|
||||
ip->i_incstring = ip->i_file;
|
||||
else
|
||||
ip->i_incstring = copy(incstring);
|
||||
|
||||
inclistnext = inclistp;
|
||||
return(ip);
|
||||
}
|
||||
|
||||
void
|
||||
included_by(struct inclist *ip, struct inclist *newfile)
|
||||
{
|
||||
register int i;
|
||||
|
||||
if (ip == NULL)
|
||||
return;
|
||||
/*
|
||||
* Put this include file (newfile) on the list of files included
|
||||
* by 'file'. If 'file' is NULL, then it is not an include
|
||||
* file itself (i.e. was probably mentioned on the command line).
|
||||
* If it is already on the list, don't stick it on again.
|
||||
*/
|
||||
if (ip->i_list == NULL) {
|
||||
ip->i_list = (struct inclist **)
|
||||
malloc(sizeof(struct inclist *) * ++ip->i_listlen);
|
||||
ip->i_merged = (boolean *)
|
||||
malloc(sizeof(boolean) * ip->i_listlen);
|
||||
} else {
|
||||
for (i=0; i<ip->i_listlen; i++)
|
||||
if (ip->i_list[ i ] == newfile) {
|
||||
i = strlen(newfile->i_file);
|
||||
if (!(ip->i_flags & INCLUDED_SYM) &&
|
||||
!(i > 2 &&
|
||||
newfile->i_file[i-1] == 'c' &&
|
||||
newfile->i_file[i-2] == '.'))
|
||||
{
|
||||
/* only bitch if ip has */
|
||||
/* no #include SYMBOL lines */
|
||||
/* and is not a .c file */
|
||||
if (warn_multiple)
|
||||
{
|
||||
warning("%s includes %s more than once!\n",
|
||||
ip->i_file, newfile->i_file);
|
||||
warning1("Already have\n");
|
||||
for (i=0; i<ip->i_listlen; i++)
|
||||
warning1("\t%s\n", ip->i_list[i]->i_file);
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
ip->i_list = (struct inclist **) realloc(ip->i_list,
|
||||
sizeof(struct inclist *) * ++ip->i_listlen);
|
||||
ip->i_merged = (boolean *)
|
||||
realloc(ip->i_merged, sizeof(boolean) * ip->i_listlen);
|
||||
}
|
||||
ip->i_list[ ip->i_listlen-1 ] = newfile;
|
||||
ip->i_merged[ ip->i_listlen-1 ] = FALSE;
|
||||
}
|
||||
|
||||
void
|
||||
inc_clean (void)
|
||||
{
|
||||
register struct inclist *ip;
|
||||
|
||||
for (ip = inclist; ip < inclistp; ip++) {
|
||||
ip->i_flags &= ~MARKED;
|
||||
}
|
||||
}
|
||||
|
||||
struct inclist *
|
||||
inc_path(char *file, char *include, int type)
|
||||
{
|
||||
static char path[ BUFSIZ ];
|
||||
register char **pp, *p;
|
||||
register struct inclist *ip;
|
||||
|
||||
/*
|
||||
* Check all previously found include files for a path that
|
||||
* has already been expanded.
|
||||
*/
|
||||
if ((type == INCLUDE) || (type == INCLUDEDOT))
|
||||
inclistnext = inclist;
|
||||
ip = inclistnext;
|
||||
|
||||
for (; ip->i_file; ip++) {
|
||||
if ((strcmp(ip->i_incstring, include) == 0) &&
|
||||
!(ip->i_flags & INCLUDED_SYM)) {
|
||||
inclistnext = ip + 1;
|
||||
return ip;
|
||||
}
|
||||
}
|
||||
|
||||
if (inclistnext == inclist) {
|
||||
/*
|
||||
* If the path was surrounded by "" or is an absolute path,
|
||||
* then check the exact path provided.
|
||||
*/
|
||||
if ((type == INCLUDEDOT) ||
|
||||
(type == INCLUDENEXTDOT) ||
|
||||
(*include == '/')) {
|
||||
if (does_file_exist(include))
|
||||
return newinclude(include, include);
|
||||
if (show_where_not)
|
||||
warning1("\tnot in %s\n", include);
|
||||
}
|
||||
|
||||
/*
|
||||
* If the path was surrounded by "" see if this include file is
|
||||
* in the directory of the file being parsed.
|
||||
*/
|
||||
if ((type == INCLUDEDOT) || (type == INCLUDENEXTDOT)) {
|
||||
for (p=file+strlen(file); p>file; p--)
|
||||
if (*p == '/')
|
||||
break;
|
||||
if (p == file) {
|
||||
strcpy(path, include);
|
||||
} else {
|
||||
strncpy(path, file, (p-file) + 1);
|
||||
path[ (p-file) + 1 ] = '\0';
|
||||
strcpy(path + (p-file) + 1, include);
|
||||
}
|
||||
remove_dotdot(path);
|
||||
if (does_file_exist(path))
|
||||
return newinclude(path, include);
|
||||
if (show_where_not)
|
||||
warning1("\tnot in %s\n", path);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Check the include directories specified. Standard include dirs
|
||||
* should be at the end.
|
||||
*/
|
||||
if ((type == INCLUDE) || (type == INCLUDEDOT))
|
||||
includedirsnext = includedirs;
|
||||
pp = includedirsnext;
|
||||
|
||||
for (; *pp; pp++) {
|
||||
sprintf(path, "%s/%s", *pp, include);
|
||||
remove_dotdot(path);
|
||||
if (does_file_exist(path)) {
|
||||
includedirsnext = pp + 1;
|
||||
return newinclude(path, include);
|
||||
}
|
||||
if (show_where_not)
|
||||
warning1("\tnot in %s\n", path);
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
|
@ -0,0 +1,860 @@
|
|||
/* $Xorg: main.c,v 1.5 2001/02/09 02:03:16 xorgcvs Exp $ */
|
||||
/*
|
||||
|
||||
Copyright (c) 1993, 1994, 1998 The Open Group
|
||||
|
||||
Permission to use, copy, modify, distribute, and sell this software and its
|
||||
documentation for any purpose is hereby granted without fee, provided that
|
||||
the above copyright notice appear in all copies and that both that
|
||||
copyright notice and this permission notice appear in supporting
|
||||
documentation.
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of The Open Group shall not be
|
||||
used in advertising or otherwise to promote the sale, use or other dealings
|
||||
in this Software without prior written authorization from The Open Group.
|
||||
|
||||
*/
|
||||
/* $XFree86: xc/config/makedepend/main.c,v 3.32 2003/03/26 20:43:48 tsi Exp $ */
|
||||
|
||||
#include "def.h"
|
||||
#ifdef hpux
|
||||
#define sigvec sigvector
|
||||
#endif /* hpux */
|
||||
|
||||
#ifdef X_POSIX_C_SOURCE
|
||||
#define _POSIX_C_SOURCE X_POSIX_C_SOURCE
|
||||
#include <signal.h>
|
||||
#undef _POSIX_C_SOURCE
|
||||
#else
|
||||
#if defined(X_NOT_POSIX) || defined(_POSIX_SOURCE)
|
||||
#include <signal.h>
|
||||
#else
|
||||
#define _POSIX_SOURCE
|
||||
#include <signal.h>
|
||||
#undef _POSIX_SOURCE
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#include <stdarg.h>
|
||||
|
||||
#ifdef MINIX
|
||||
#define USE_CHMOD 1
|
||||
#endif
|
||||
|
||||
#ifdef DEBUG
|
||||
int _debugmask;
|
||||
#endif
|
||||
|
||||
/* #define DEBUG_DUMP */
|
||||
#ifdef DEBUG_DUMP
|
||||
#define DBG_PRINT(file, fmt, args) fprintf(file, fmt, args)
|
||||
#else
|
||||
#define DBG_PRINT(file, fmt, args) /* empty */
|
||||
#endif
|
||||
|
||||
#define DASH_INC_PRE "#include \""
|
||||
#define DASH_INC_POST "\""
|
||||
|
||||
char *ProgramName;
|
||||
|
||||
char *directives[] = {
|
||||
"if",
|
||||
"ifdef",
|
||||
"ifndef",
|
||||
"else",
|
||||
"endif",
|
||||
"define",
|
||||
"undef",
|
||||
"include",
|
||||
"line",
|
||||
"pragma",
|
||||
"error",
|
||||
"ident",
|
||||
"sccs",
|
||||
"elif",
|
||||
"eject",
|
||||
"warning",
|
||||
"include_next",
|
||||
NULL
|
||||
};
|
||||
|
||||
#define MAKEDEPEND
|
||||
#include "imakemdep.h" /* from config sources */
|
||||
#undef MAKEDEPEND
|
||||
|
||||
struct inclist inclist[ MAXFILES ],
|
||||
*inclistp = inclist,
|
||||
*inclistnext = inclist,
|
||||
maininclist;
|
||||
|
||||
static char *filelist[ MAXFILES ];
|
||||
char *includedirs[ MAXDIRS + 1 ],
|
||||
**includedirsnext = includedirs;
|
||||
char *notdotdot[ MAXDIRS ];
|
||||
static int cmdinc_count = 0;
|
||||
static char *cmdinc_list[ 2 * MAXINCFILES ];
|
||||
char *objprefix = "";
|
||||
char *objsuffix = OBJSUFFIX;
|
||||
static char *startat = "# DO NOT DELETE";
|
||||
int width = 78;
|
||||
static boolean append = FALSE;
|
||||
boolean printed = FALSE;
|
||||
boolean verbose = FALSE;
|
||||
boolean show_where_not = FALSE;
|
||||
/* Warn on multiple includes of same file */
|
||||
boolean warn_multiple = FALSE;
|
||||
|
||||
static void setfile_cmdinc(struct filepointer *filep, long count, char **list);
|
||||
static void redirect(char *line, char *makefile);
|
||||
|
||||
static
|
||||
#ifdef SIGNALRETURNSINT
|
||||
int
|
||||
#else
|
||||
void
|
||||
#endif
|
||||
catch (int sig)
|
||||
{
|
||||
fflush (stdout);
|
||||
fatalerr ("got signal %d\n", sig);
|
||||
}
|
||||
|
||||
#if defined(USG) || (defined(i386) && defined(SYSV)) || defined(WIN32) || defined(__UNIXOS2__) || defined(Lynx_22) || defined(__CYGWIN__)
|
||||
#define USGISH
|
||||
#endif
|
||||
|
||||
#ifndef USGISH
|
||||
#ifdef X_NOT_POSIX
|
||||
#define sigaction sigvec
|
||||
#define sa_handler sv_handler
|
||||
#define sa_mask sv_mask
|
||||
#define sa_flags sv_flags
|
||||
#endif
|
||||
struct sigaction sig_act;
|
||||
#endif /* USGISH */
|
||||
|
||||
int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
char **fp = filelist;
|
||||
char **incp = includedirs;
|
||||
char *p;
|
||||
struct inclist *ip;
|
||||
char *makefile = NULL;
|
||||
struct filepointer *filecontent;
|
||||
struct symtab *psymp = predefs;
|
||||
char *endmarker = NULL;
|
||||
char *defincdir = NULL;
|
||||
char **undeflist = NULL;
|
||||
int numundefs = 0, i;
|
||||
register char offset;
|
||||
|
||||
ProgramName = argv[0];
|
||||
|
||||
while (psymp->s_name)
|
||||
{
|
||||
define2(psymp->s_name, psymp->s_value, &maininclist);
|
||||
psymp++;
|
||||
}
|
||||
if (argc == 2 && argv[1][0] == '@') {
|
||||
struct stat ast;
|
||||
int afd;
|
||||
char *args;
|
||||
char **nargv;
|
||||
int nargc;
|
||||
char quotechar = '\0';
|
||||
|
||||
nargc = 1;
|
||||
if ((afd = open(argv[1]+1, O_RDONLY)) < 0)
|
||||
fatalerr("cannot open \"%s\"\n", argv[1]+1);
|
||||
fstat(afd, &ast);
|
||||
args = (char *)malloc(ast.st_size + 1);
|
||||
if ((ast.st_size = read(afd, args, ast.st_size)) < 0)
|
||||
fatalerr("failed to read %s\n", argv[1]+1);
|
||||
args[ast.st_size] = '\0';
|
||||
close(afd);
|
||||
for (p = args; *p; p++) {
|
||||
if (quotechar) {
|
||||
if (quotechar == '\\' ||
|
||||
(*p == quotechar && p[-1] != '\\'))
|
||||
quotechar = '\0';
|
||||
continue;
|
||||
}
|
||||
switch (*p) {
|
||||
case '\\':
|
||||
case '"':
|
||||
case '\'':
|
||||
quotechar = *p;
|
||||
break;
|
||||
case ' ':
|
||||
case '\n':
|
||||
*p = '\0';
|
||||
if (p > args && p[-1])
|
||||
nargc++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (p[-1])
|
||||
nargc++;
|
||||
nargv = (char **)malloc(nargc * sizeof(char *));
|
||||
nargv[0] = argv[0];
|
||||
argc = 1;
|
||||
for (p = args; argc < nargc; p += strlen(p) + 1)
|
||||
if (*p) nargv[argc++] = p;
|
||||
argv = nargv;
|
||||
}
|
||||
for(argc--, argv++; argc; argc--, argv++) {
|
||||
/* if looking for endmarker then check before parsing */
|
||||
if (endmarker && strcmp (endmarker, *argv) == 0) {
|
||||
endmarker = NULL;
|
||||
continue;
|
||||
}
|
||||
if (**argv != '-') {
|
||||
/* treat +thing as an option for C++ */
|
||||
if (endmarker && **argv == '+')
|
||||
continue;
|
||||
*fp++ = argv[0];
|
||||
continue;
|
||||
}
|
||||
switch(argv[0][1]) {
|
||||
case '-':
|
||||
endmarker = &argv[0][2];
|
||||
if (endmarker[0] == '\0') endmarker = "--";
|
||||
break;
|
||||
case 'D':
|
||||
offset = 2;
|
||||
if (argv[0][2] == '\0') {
|
||||
argv++;
|
||||
argc--;
|
||||
offset = 0;
|
||||
}
|
||||
/* offset +1 here since first def letter
|
||||
* cannot be `=`
|
||||
*/
|
||||
for (p = argv[0] + offset + 1; *p; p++)
|
||||
if (*p == '=') {
|
||||
*p = ' ';
|
||||
break;
|
||||
}
|
||||
define(argv[0] + offset, &maininclist);
|
||||
break;
|
||||
case 'I':
|
||||
if (incp >= includedirs + MAXDIRS)
|
||||
fatalerr("Too many -I flags.\n");
|
||||
*incp++ = argv[0]+2;
|
||||
if (**(incp-1) == '\0') {
|
||||
*(incp-1) = *(++argv);
|
||||
argc--;
|
||||
}
|
||||
break;
|
||||
case 'U':
|
||||
/* Undef's override all -D's so save them up */
|
||||
numundefs++;
|
||||
if (numundefs == 1)
|
||||
undeflist = malloc(sizeof(char *));
|
||||
else
|
||||
undeflist = realloc(undeflist,
|
||||
numundefs * sizeof(char *));
|
||||
offset = 2;
|
||||
if (argv[0][2] == '\0') {
|
||||
argv++;
|
||||
argc--;
|
||||
offset = 0;
|
||||
}
|
||||
undeflist[numundefs - 1] = argv[0] + offset;
|
||||
break;
|
||||
case 'Y':
|
||||
defincdir = argv[0]+2;
|
||||
break;
|
||||
/* do not use if endmarker processing */
|
||||
case 'a':
|
||||
if (endmarker) break;
|
||||
append = TRUE;
|
||||
break;
|
||||
case 'w':
|
||||
if (endmarker) break;
|
||||
if (argv[0][2] == '\0') {
|
||||
argv++;
|
||||
argc--;
|
||||
width = atoi(argv[0]);
|
||||
} else
|
||||
width = atoi(argv[0]+2);
|
||||
break;
|
||||
case 'o':
|
||||
if (endmarker) break;
|
||||
if (argv[0][2] == '\0') {
|
||||
argv++;
|
||||
argc--;
|
||||
objsuffix = argv[0];
|
||||
} else
|
||||
objsuffix = argv[0]+2;
|
||||
break;
|
||||
case 'p':
|
||||
if (endmarker) break;
|
||||
if (argv[0][2] == '\0') {
|
||||
argv++;
|
||||
argc--;
|
||||
objprefix = argv[0];
|
||||
} else
|
||||
objprefix = argv[0]+2;
|
||||
break;
|
||||
case 'v':
|
||||
if (endmarker) break;
|
||||
verbose = TRUE;
|
||||
#ifdef DEBUG
|
||||
if (argv[0][2])
|
||||
_debugmask = atoi(argv[0]+2);
|
||||
#endif
|
||||
break;
|
||||
case 's':
|
||||
if (endmarker) break;
|
||||
startat = argv[0]+2;
|
||||
if (*startat == '\0') {
|
||||
startat = *(++argv);
|
||||
argc--;
|
||||
}
|
||||
if (*startat != '#')
|
||||
fatalerr("-s flag's value should start %s\n",
|
||||
"with '#'.");
|
||||
break;
|
||||
case 'f':
|
||||
if (endmarker) break;
|
||||
makefile = argv[0]+2;
|
||||
if (*makefile == '\0') {
|
||||
makefile = *(++argv);
|
||||
argc--;
|
||||
}
|
||||
break;
|
||||
|
||||
case 'm':
|
||||
warn_multiple = TRUE;
|
||||
break;
|
||||
|
||||
/* Ignore -O, -g so we can just pass ${CFLAGS} to
|
||||
makedepend
|
||||
*/
|
||||
case 'O':
|
||||
case 'g':
|
||||
break;
|
||||
case 'i':
|
||||
if (strcmp(&argv[0][1],"include") == 0) {
|
||||
char *buf;
|
||||
if (argc<2)
|
||||
fatalerr("option -include is a "
|
||||
"missing its parameter\n");
|
||||
if (cmdinc_count >= MAXINCFILES)
|
||||
fatalerr("Too many -include flags.\n");
|
||||
argc--;
|
||||
argv++;
|
||||
buf = malloc(strlen(DASH_INC_PRE) +
|
||||
strlen(argv[0]) +
|
||||
strlen(DASH_INC_POST) + 1);
|
||||
if(!buf)
|
||||
fatalerr("out of memory at "
|
||||
"-include string\n");
|
||||
cmdinc_list[2 * cmdinc_count + 0] = argv[0];
|
||||
cmdinc_list[2 * cmdinc_count + 1] = buf;
|
||||
cmdinc_count++;
|
||||
break;
|
||||
}
|
||||
/* intentional fall through */
|
||||
default:
|
||||
if (endmarker) break;
|
||||
/* fatalerr("unknown opt = %s\n", argv[0]); */
|
||||
warning("ignoring option %s\n", argv[0]);
|
||||
}
|
||||
}
|
||||
/* Now do the undefs from the command line */
|
||||
for (i = 0; i < numundefs; i++)
|
||||
undefine(undeflist[i], &maininclist);
|
||||
if (numundefs > 0)
|
||||
free(undeflist);
|
||||
|
||||
if (!defincdir) {
|
||||
#ifdef PREINCDIR
|
||||
if (incp >= includedirs + MAXDIRS)
|
||||
fatalerr("Too many -I flags.\n");
|
||||
*incp++ = PREINCDIR;
|
||||
#endif
|
||||
#ifdef __UNIXOS2__
|
||||
{
|
||||
char *emxinc = getenv("C_INCLUDE_PATH");
|
||||
/* can have more than one component */
|
||||
if (emxinc) {
|
||||
char *beg, *end;
|
||||
beg= (char*)strdup(emxinc);
|
||||
for (;;) {
|
||||
end = (char*)strchr(beg,';');
|
||||
if (end) *end = 0;
|
||||
if (incp >= includedirs + MAXDIRS)
|
||||
fatalerr("Too many include dirs\n");
|
||||
*incp++ = beg;
|
||||
if (!end) break;
|
||||
beg = end+1;
|
||||
}
|
||||
}
|
||||
}
|
||||
#else /* !__UNIXOS2__, does not use INCLUDEDIR at all */
|
||||
if (incp >= includedirs + MAXDIRS)
|
||||
fatalerr("Too many -I flags.\n");
|
||||
*incp++ = INCLUDEDIR;
|
||||
#endif
|
||||
|
||||
#ifdef EXTRAINCDIR
|
||||
if (incp >= includedirs + MAXDIRS)
|
||||
fatalerr("Too many -I flags.\n");
|
||||
*incp++ = EXTRAINCDIR;
|
||||
#endif
|
||||
|
||||
#ifdef POSTINCDIR
|
||||
if (incp >= includedirs + MAXDIRS)
|
||||
fatalerr("Too many -I flags.\n");
|
||||
*incp++ = POSTINCDIR;
|
||||
#endif
|
||||
} else if (*defincdir) {
|
||||
if (incp >= includedirs + MAXDIRS)
|
||||
fatalerr("Too many -I flags.\n");
|
||||
*incp++ = defincdir;
|
||||
}
|
||||
|
||||
redirect(startat, makefile);
|
||||
|
||||
/*
|
||||
* catch signals.
|
||||
*/
|
||||
#ifdef USGISH
|
||||
/* should really reset SIGINT to SIG_IGN if it was. */
|
||||
#ifdef SIGHUP
|
||||
signal (SIGHUP, catch);
|
||||
#endif
|
||||
signal (SIGINT, catch);
|
||||
#ifdef SIGQUIT
|
||||
signal (SIGQUIT, catch);
|
||||
#endif
|
||||
signal (SIGILL, catch);
|
||||
#ifdef SIGBUS
|
||||
signal (SIGBUS, catch);
|
||||
#endif
|
||||
signal (SIGSEGV, catch);
|
||||
#ifdef SIGSYS
|
||||
signal (SIGSYS, catch);
|
||||
#endif
|
||||
#else
|
||||
sig_act.sa_handler = catch;
|
||||
#if defined(_POSIX_SOURCE) || !defined(X_NOT_POSIX)
|
||||
sigemptyset(&sig_act.sa_mask);
|
||||
sigaddset(&sig_act.sa_mask, SIGINT);
|
||||
sigaddset(&sig_act.sa_mask, SIGQUIT);
|
||||
#ifdef SIGBUS
|
||||
sigaddset(&sig_act.sa_mask, SIGBUS);
|
||||
#endif
|
||||
sigaddset(&sig_act.sa_mask, SIGILL);
|
||||
sigaddset(&sig_act.sa_mask, SIGSEGV);
|
||||
sigaddset(&sig_act.sa_mask, SIGHUP);
|
||||
sigaddset(&sig_act.sa_mask, SIGPIPE);
|
||||
#ifdef SIGSYS
|
||||
sigaddset(&sig_act.sa_mask, SIGSYS);
|
||||
#endif
|
||||
#else
|
||||
sig_act.sa_mask = ((1<<(SIGINT -1))
|
||||
|(1<<(SIGQUIT-1))
|
||||
#ifdef SIGBUS
|
||||
|(1<<(SIGBUS-1))
|
||||
#endif
|
||||
|(1<<(SIGILL-1))
|
||||
|(1<<(SIGSEGV-1))
|
||||
|(1<<(SIGHUP-1))
|
||||
|(1<<(SIGPIPE-1))
|
||||
#ifdef SIGSYS
|
||||
|(1<<(SIGSYS-1))
|
||||
#endif
|
||||
);
|
||||
#endif /* _POSIX_SOURCE */
|
||||
sig_act.sa_flags = 0;
|
||||
sigaction(SIGHUP, &sig_act, (struct sigaction *)0);
|
||||
sigaction(SIGINT, &sig_act, (struct sigaction *)0);
|
||||
sigaction(SIGQUIT, &sig_act, (struct sigaction *)0);
|
||||
sigaction(SIGILL, &sig_act, (struct sigaction *)0);
|
||||
#ifdef SIGBUS
|
||||
sigaction(SIGBUS, &sig_act, (struct sigaction *)0);
|
||||
#endif
|
||||
sigaction(SIGSEGV, &sig_act, (struct sigaction *)0);
|
||||
#ifdef SIGSYS
|
||||
sigaction(SIGSYS, &sig_act, (struct sigaction *)0);
|
||||
#endif
|
||||
#endif /* USGISH */
|
||||
|
||||
/*
|
||||
* now peruse through the list of files.
|
||||
*/
|
||||
for(fp=filelist; *fp; fp++) {
|
||||
DBG_PRINT(stderr,"file: %s\n",*fp);
|
||||
filecontent = getfile(*fp);
|
||||
setfile_cmdinc(filecontent, cmdinc_count, cmdinc_list);
|
||||
ip = newinclude(*fp, (char *)NULL);
|
||||
|
||||
find_includes(filecontent, ip, ip, 0, FALSE);
|
||||
freefile(filecontent);
|
||||
recursive_pr_include(ip, ip->i_file, base_name(*fp));
|
||||
inc_clean();
|
||||
}
|
||||
if (printed)
|
||||
printf("\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef __UNIXOS2__
|
||||
/*
|
||||
* eliminate \r chars from file
|
||||
*/
|
||||
static int
|
||||
elim_cr(char *buf, int sz)
|
||||
{
|
||||
int i,wp;
|
||||
for (i= wp = 0; i<sz; i++) {
|
||||
if (buf[i] != '\r')
|
||||
buf[wp++] = buf[i];
|
||||
}
|
||||
return wp;
|
||||
}
|
||||
#endif
|
||||
|
||||
struct filepointer *
|
||||
getfile(char *file)
|
||||
{
|
||||
int fd;
|
||||
struct filepointer *content;
|
||||
struct stat st;
|
||||
|
||||
content = (struct filepointer *)malloc(sizeof(struct filepointer));
|
||||
content->f_name = file;
|
||||
if ((fd = open(file, O_RDONLY)) < 0) {
|
||||
warning("cannot open \"%s\"\n", file);
|
||||
content->f_p = content->f_base = content->f_end = (char *)malloc(1);
|
||||
*content->f_p = '\0';
|
||||
return(content);
|
||||
}
|
||||
fstat(fd, &st);
|
||||
content->f_base = (char *)malloc(st.st_size+1);
|
||||
if (content->f_base == NULL)
|
||||
fatalerr("cannot allocate mem\n");
|
||||
if ((st.st_size = read(fd, content->f_base, st.st_size)) < 0)
|
||||
fatalerr("failed to read %s\n", file);
|
||||
#ifdef __UNIXOS2__
|
||||
st.st_size = elim_cr(content->f_base,st.st_size);
|
||||
#endif
|
||||
close(fd);
|
||||
content->f_len = st.st_size+1;
|
||||
content->f_p = content->f_base;
|
||||
content->f_end = content->f_base + st.st_size;
|
||||
*content->f_end = '\0';
|
||||
content->f_line = 0;
|
||||
content->cmdinc_count = 0;
|
||||
content->cmdinc_list = NULL;
|
||||
content->cmdinc_line = 0;
|
||||
return(content);
|
||||
}
|
||||
|
||||
void
|
||||
setfile_cmdinc(struct filepointer* filep, long count, char** list)
|
||||
{
|
||||
filep->cmdinc_count = count;
|
||||
filep->cmdinc_list = list;
|
||||
filep->cmdinc_line = 0;
|
||||
}
|
||||
|
||||
void
|
||||
freefile(struct filepointer *fp)
|
||||
{
|
||||
free(fp->f_base);
|
||||
free(fp);
|
||||
}
|
||||
|
||||
char *copy(char *str)
|
||||
{
|
||||
char *p = (char *)malloc(strlen(str) + 1);
|
||||
|
||||
strcpy(p, str);
|
||||
return(p);
|
||||
}
|
||||
|
||||
int
|
||||
match(char *str, char **list)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i=0; *list; i++, list++)
|
||||
if (strcmp(str, *list) == 0)
|
||||
return(i);
|
||||
return(-1);
|
||||
}
|
||||
|
||||
/*
|
||||
* Get the next line. We only return lines beginning with '#' since that
|
||||
* is all this program is ever interested in.
|
||||
*/
|
||||
char *getnextline(struct filepointer *filep)
|
||||
{
|
||||
char *p, /* walking pointer */
|
||||
*eof, /* end of file pointer */
|
||||
*bol; /* beginning of line pointer */
|
||||
int lineno; /* line number */
|
||||
boolean whitespace = FALSE;
|
||||
|
||||
/*
|
||||
* Fake the "-include" line files in form of #include to the
|
||||
* start of each file.
|
||||
*/
|
||||
if (filep->cmdinc_line < filep->cmdinc_count) {
|
||||
char *inc = filep->cmdinc_list[2 * filep->cmdinc_line + 0];
|
||||
char *buf = filep->cmdinc_list[2 * filep->cmdinc_line + 1];
|
||||
filep->cmdinc_line++;
|
||||
sprintf(buf,"%s%s%s",DASH_INC_PRE,inc,DASH_INC_POST);
|
||||
DBG_PRINT(stderr,"%s\n",buf);
|
||||
return(buf);
|
||||
}
|
||||
|
||||
p = filep->f_p;
|
||||
eof = filep->f_end;
|
||||
if (p >= eof)
|
||||
return((char *)NULL);
|
||||
lineno = filep->f_line;
|
||||
|
||||
for (bol = p--; ++p < eof; ) {
|
||||
if ((bol == p) && ((*p == ' ') || (*p == '\t')))
|
||||
{
|
||||
/* Consume leading white-spaces for this line */
|
||||
while (((p+1) < eof) && ((*p == ' ') || (*p == '\t')))
|
||||
{
|
||||
p++;
|
||||
bol++;
|
||||
}
|
||||
whitespace = TRUE;
|
||||
}
|
||||
|
||||
if (*p == '/' && (p+1) < eof && *(p+1) == '*') {
|
||||
/* Consume C comments */
|
||||
*(p++) = ' ';
|
||||
*(p++) = ' ';
|
||||
while (p < eof && *p) {
|
||||
if (*p == '*' && (p+1) < eof && *(p+1) == '/') {
|
||||
*(p++) = ' ';
|
||||
*(p++) = ' ';
|
||||
break;
|
||||
}
|
||||
if (*p == '\n')
|
||||
lineno++;
|
||||
*(p++) = ' ';
|
||||
}
|
||||
--p;
|
||||
}
|
||||
else if (*p == '/' && (p+1) < eof && *(p+1) == '/') {
|
||||
/* Consume C++ comments */
|
||||
*(p++) = ' ';
|
||||
*(p++) = ' ';
|
||||
while (p < eof && *p) {
|
||||
if (*p == '\\' && (p+1) < eof &&
|
||||
*(p+1) == '\n') {
|
||||
*(p++) = ' ';
|
||||
lineno++;
|
||||
}
|
||||
else if (*p == '?' && (p+3) < eof &&
|
||||
*(p+1) == '?' &&
|
||||
*(p+2) == '/' &&
|
||||
*(p+3) == '\n') {
|
||||
*(p++) = ' ';
|
||||
*(p++) = ' ';
|
||||
*(p++) = ' ';
|
||||
lineno++;
|
||||
}
|
||||
else if (*p == '\n')
|
||||
break; /* to process end of line */
|
||||
*(p++) = ' ';
|
||||
}
|
||||
--p;
|
||||
}
|
||||
else if (*p == '\\' && (p+1) < eof && *(p+1) == '\n') {
|
||||
/* Consume backslash line terminations */
|
||||
*(p++) = ' ';
|
||||
*p = ' ';
|
||||
lineno++;
|
||||
}
|
||||
else if (*p == '?' && (p+3) < eof &&
|
||||
*(p+1) == '?' && *(p+2) == '/' && *(p+3) == '\n') {
|
||||
/* Consume trigraph'ed backslash line terminations */
|
||||
*(p++) = ' ';
|
||||
*(p++) = ' ';
|
||||
*(p++) = ' ';
|
||||
*p = ' ';
|
||||
lineno++;
|
||||
}
|
||||
else if (*p == '\n') {
|
||||
lineno++;
|
||||
if (*bol == '#') {
|
||||
char *cp;
|
||||
|
||||
*(p++) = '\0';
|
||||
/* punt lines with just # (yacc generated) */
|
||||
for (cp = bol+1;
|
||||
*cp && (*cp == ' ' || *cp == '\t'); cp++);
|
||||
if (*cp) goto done;
|
||||
--p;
|
||||
}
|
||||
bol = p+1;
|
||||
whitespace = FALSE;
|
||||
}
|
||||
}
|
||||
if (*bol != '#')
|
||||
bol = NULL;
|
||||
done:
|
||||
if (bol && whitespace) {
|
||||
warning("%s: non-portable whitespace encountered at line %d\n",
|
||||
filep->f_name, lineno);
|
||||
}
|
||||
filep->f_p = p;
|
||||
filep->f_line = lineno;
|
||||
#ifdef DEBUG_DUMP
|
||||
if (bol)
|
||||
DBG_PRINT(stderr,"%s\n",bol);
|
||||
#endif
|
||||
return(bol);
|
||||
}
|
||||
|
||||
/*
|
||||
* Strip the file name down to what we want to see in the Makefile.
|
||||
* It will have objprefix and objsuffix around it.
|
||||
*/
|
||||
char *base_name(char *file)
|
||||
{
|
||||
char *p;
|
||||
|
||||
file = copy(file);
|
||||
for(p=file+strlen(file); p>file && *p != '.'; p--) ;
|
||||
|
||||
if (*p == '.')
|
||||
*p = '\0';
|
||||
return(file);
|
||||
}
|
||||
|
||||
#if defined(USG) && !defined(CRAY) && !defined(SVR4) && !defined(__UNIXOS2__) && !defined(clipper) && !defined(__clipper__)
|
||||
int rename (char *from, char *to)
|
||||
{
|
||||
(void) unlink (to);
|
||||
if (link (from, to) == 0) {
|
||||
unlink (from);
|
||||
return 0;
|
||||
} else {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
#endif /* USGISH */
|
||||
|
||||
void
|
||||
redirect(char *line, char *makefile)
|
||||
{
|
||||
struct stat st;
|
||||
FILE *fdin, *fdout;
|
||||
char backup[ BUFSIZ ],
|
||||
buf[ BUFSIZ ];
|
||||
boolean found = FALSE;
|
||||
int len;
|
||||
|
||||
/*
|
||||
* if makefile is "-" then let it pour onto stdout.
|
||||
*/
|
||||
if (makefile && *makefile == '-' && *(makefile+1) == '\0') {
|
||||
puts(line);
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
* use a default makefile is not specified.
|
||||
*/
|
||||
if (!makefile) {
|
||||
if (stat("Makefile", &st) == 0)
|
||||
makefile = "Makefile";
|
||||
else if (stat("makefile", &st) == 0)
|
||||
makefile = "makefile";
|
||||
else
|
||||
fatalerr("[mM]akefile is not present\n");
|
||||
}
|
||||
else
|
||||
stat(makefile, &st);
|
||||
if ((fdin = fopen(makefile, "r")) == NULL)
|
||||
fatalerr("cannot open \"%s\"\n", makefile);
|
||||
sprintf(backup, "%s.bak", makefile);
|
||||
unlink(backup);
|
||||
#if defined(WIN32) || defined(__UNIXOS2__) || defined(__CYGWIN__)
|
||||
fclose(fdin);
|
||||
#endif
|
||||
if (rename(makefile, backup) < 0)
|
||||
fatalerr("cannot rename %s to %s\n", makefile, backup);
|
||||
#if defined(WIN32) || defined(__UNIXOS2__) || defined(__CYGWIN__)
|
||||
if ((fdin = fopen(backup, "r")) == NULL)
|
||||
fatalerr("cannot open \"%s\"\n", backup);
|
||||
#endif
|
||||
if ((fdout = freopen(makefile, "w", stdout)) == NULL)
|
||||
fatalerr("cannot open \"%s\"\n", backup);
|
||||
len = strlen(line);
|
||||
while (!found && fgets(buf, BUFSIZ, fdin)) {
|
||||
if (*buf == '#' && strncmp(line, buf, len) == 0)
|
||||
found = TRUE;
|
||||
fputs(buf, fdout);
|
||||
}
|
||||
if (!found) {
|
||||
if (verbose)
|
||||
warning("Adding new delimiting line \"%s\" and dependencies...\n",
|
||||
line);
|
||||
puts(line); /* same as fputs(fdout); but with newline */
|
||||
} else if (append) {
|
||||
while (fgets(buf, BUFSIZ, fdin)) {
|
||||
fputs(buf, fdout);
|
||||
}
|
||||
}
|
||||
fflush(fdout);
|
||||
#if defined(USGISH) || defined(_SEQUENT_) || defined(USE_CHMOD)
|
||||
chmod(makefile, st.st_mode);
|
||||
#else
|
||||
fchmod(fileno(fdout), st.st_mode);
|
||||
#endif /* USGISH */
|
||||
}
|
||||
|
||||
void
|
||||
fatalerr(char *msg, ...)
|
||||
{
|
||||
va_list args;
|
||||
fprintf(stderr, "%s: error: ", ProgramName);
|
||||
va_start(args, msg);
|
||||
vfprintf(stderr, msg, args);
|
||||
va_end(args);
|
||||
exit (1);
|
||||
}
|
||||
|
||||
void
|
||||
warning(char *msg, ...)
|
||||
{
|
||||
va_list args;
|
||||
fprintf(stderr, "%s: warning: ", ProgramName);
|
||||
va_start(args, msg);
|
||||
vfprintf(stderr, msg, args);
|
||||
va_end(args);
|
||||
}
|
||||
|
||||
void
|
||||
warning1(char *msg, ...)
|
||||
{
|
||||
va_list args;
|
||||
va_start(args, msg);
|
||||
vfprintf(stderr, msg, args);
|
||||
va_end(args);
|
||||
}
|
|
@ -0,0 +1,382 @@
|
|||
.\" $Xorg: mkdepend.man,v 1.5 2001/02/09 02:03:16 xorgcvs Exp $
|
||||
.\" Copyright (c) 1993, 1994, 1998 The Open Group
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, distribute, and sell this software and its
|
||||
.\" documentation for any purpose is hereby granted without fee, provided that
|
||||
.\" the above copyright notice appear in all copies and that both that
|
||||
.\" copyright notice and this permission notice appear in supporting
|
||||
.\" documentation.
|
||||
.\"
|
||||
.\" The above copyright notice and this permission notice shall be included in
|
||||
.\" all copies or substantial portions of the Software.
|
||||
.\"
|
||||
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
.\" IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
.\" FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
.\" THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
.\" WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
.\" OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
.\" SOFTWARE.
|
||||
.\"
|
||||
.\" Except as contained in this notice, the name of The Open Group shall not
|
||||
.\" be used in advertising or otherwise to promote the sale, use or other
|
||||
.\" dealing in this Software without prior written authorization from The
|
||||
.\" Open Group.
|
||||
.\"
|
||||
.\" $XFree86: xc/config/makedepend/mkdepend.man,v 1.7 2002/12/14 02:39:45 dawes Exp $
|
||||
.\"
|
||||
.TH MAKEDEPEND 1 __xorgversion__
|
||||
.UC 4
|
||||
.SH NAME
|
||||
makedepend \- create dependencies in makefiles
|
||||
.SH SYNOPSIS
|
||||
.B makedepend
|
||||
[
|
||||
.BI \-D name\fB=\fPdef
|
||||
] [
|
||||
.BI \-D name
|
||||
] [
|
||||
.BI \-I includedir
|
||||
] [
|
||||
.BI \-Y includedir
|
||||
] [
|
||||
.B \-a
|
||||
] [
|
||||
.BI \-f makefile
|
||||
] [
|
||||
.BI \-include \ file
|
||||
] [
|
||||
.BI \-o objsuffix
|
||||
] [
|
||||
.BI \-p objprefix
|
||||
] [
|
||||
.BI \-s string
|
||||
] [
|
||||
.BI \-w width
|
||||
] [
|
||||
.B \-v
|
||||
] [
|
||||
.B \-m
|
||||
] [
|
||||
\-\^\-
|
||||
.I otheroptions
|
||||
\-\^\-
|
||||
]
|
||||
.I sourcefile
|
||||
\&.\|.\|.
|
||||
.br
|
||||
.SH DESCRIPTION
|
||||
The
|
||||
.B makedepend
|
||||
program reads each
|
||||
.I sourcefile
|
||||
in sequence and parses it like a C-preprocessor,
|
||||
processing all
|
||||
.I #include,
|
||||
.I #define,
|
||||
.I #undef,
|
||||
.I #ifdef,
|
||||
.I #ifndef,
|
||||
.I #endif,
|
||||
.I #if,
|
||||
.I #elif
|
||||
and
|
||||
.I #else
|
||||
directives so that it can correctly tell which
|
||||
.I #include,
|
||||
directives would be used in a compilation.
|
||||
Any
|
||||
.I #include,
|
||||
directives can reference files having other
|
||||
.I #include
|
||||
directives, and parsing will occur in these files as well.
|
||||
.PP
|
||||
Every file that a
|
||||
.I sourcefile
|
||||
includes,
|
||||
directly or indirectly,
|
||||
is what
|
||||
.B makedepend
|
||||
calls a \fIdependency.\fP
|
||||
These dependencies are then written to a
|
||||
.I makefile
|
||||
in such a way that
|
||||
.B make(1)
|
||||
will know which object files must be recompiled when a dependency has changed.
|
||||
.PP
|
||||
By default,
|
||||
.B makedepend
|
||||
places its output in the file named
|
||||
.I makefile
|
||||
if it exists, otherwise
|
||||
.I Makefile.
|
||||
An alternate makefile may be specified with the
|
||||
.B \-f
|
||||
option.
|
||||
It first searches the makefile for
|
||||
the line
|
||||
.sp
|
||||
\& # DO NOT DELETE THIS LINE \-\^\- make depend depends on it.
|
||||
.sp
|
||||
or one provided with the
|
||||
.B \-s
|
||||
option,
|
||||
as a delimiter for the dependency output.
|
||||
If it finds it, it will delete everything
|
||||
following this to the end of the makefile
|
||||
and put the output after this line.
|
||||
If it doesn't find it, the program
|
||||
will append the string to the end of the makefile
|
||||
and place the output following that.
|
||||
For each
|
||||
.I sourcefile
|
||||
appearing on the command line,
|
||||
.B makedepend
|
||||
puts lines in the makefile of the form
|
||||
.sp
|
||||
sourcefile.o:\0dfile .\|.\|.
|
||||
.sp
|
||||
Where \fIsourcefile.o\fP is the name from the command
|
||||
line with its suffix replaced with ``.o'',
|
||||
and \fIdfile\fP is a dependency discovered in a
|
||||
.I #include
|
||||
directive while parsing
|
||||
.I sourcefile
|
||||
or one of the files it included.
|
||||
.SH EXAMPLE
|
||||
Normally,
|
||||
.B makedepend
|
||||
will be used in a makefile target so that typing ``make depend'' will
|
||||
bring the dependencies up to date for the makefile.
|
||||
For example,
|
||||
.nf
|
||||
SRCS\0=\0file1.c\0file2.c\0.\|.\|.
|
||||
CFLAGS\0=\0\-O\0\-DHACK\0\-I\^.\^.\^/foobar\0\-xyz
|
||||
depend:
|
||||
makedepend\0\-\^\-\0$(CFLAGS)\0\-\^\-\0$(SRCS)
|
||||
.fi
|
||||
.SH OPTIONS
|
||||
The program
|
||||
will ignore any option that it does not understand so that you may use
|
||||
the same arguments that you would for
|
||||
.B cc(1).
|
||||
.TP 5
|
||||
.B \-D\fIname\fP=\fIdef\fP \fRor\fP \-D\fIname\fP
|
||||
Define.
|
||||
This places a definition for
|
||||
.I name
|
||||
in
|
||||
.B makedepend's
|
||||
symbol table.
|
||||
Without
|
||||
.I =def\|
|
||||
the symbol becomes defined as ``1''.
|
||||
.TP 5
|
||||
.B \-I\fIincludedir\fP
|
||||
Include directory.
|
||||
This option tells
|
||||
.B makedepend
|
||||
to prepend
|
||||
.I includedir
|
||||
to its list of directories to search when it encounters
|
||||
a
|
||||
.I #include
|
||||
directive.
|
||||
By default,
|
||||
.B makedepend
|
||||
only searches the standard include directories (usually /usr/include
|
||||
and possibly a compiler-dependent directory).
|
||||
.TP 5
|
||||
.B \-Y\fIincludedir\fP
|
||||
Replace all of the standard include directories with the single specified
|
||||
include directory; you can omit the
|
||||
.I includedir
|
||||
to simply prevent searching the standard include directories.
|
||||
.TP 5
|
||||
.B \-a
|
||||
Append the dependencies to the end of the file instead of replacing them.
|
||||
.TP 5
|
||||
.B \-f\fImakefile\fP
|
||||
Filename.
|
||||
This allows you to specify an alternate makefile in which
|
||||
.B makedepend
|
||||
can place its output.
|
||||
Specifying ``\-'' as the file name (i.e., \fB\-f\-\fP) sends the
|
||||
output to standard output instead of modifying an existing file.
|
||||
.TP 5
|
||||
.B \-include \fIfile\fP
|
||||
Process file as input, and include all the resulting output
|
||||
before processing the regular input file. This has the same
|
||||
affect as if the specified file is an include statement that
|
||||
appears before the very first line of the regular input file.
|
||||
.TP 5
|
||||
.B \-o\fIobjsuffix\fP
|
||||
Object file suffix.
|
||||
Some systems may have object files whose suffix is something other
|
||||
than ``.o''.
|
||||
This option allows you to specify another suffix, such as
|
||||
``.b'' with
|
||||
.I \-o.b
|
||||
or ``:obj''
|
||||
with
|
||||
.I \-o:obj
|
||||
and so forth.
|
||||
.TP 5
|
||||
.B \-p\fIobjprefix\fP
|
||||
Object file prefix.
|
||||
The prefix is prepended to the name of the object file. This is
|
||||
usually used to designate a different directory for the object file.
|
||||
The default is the empty string.
|
||||
.TP 5
|
||||
.B \-s\fIstring\fP
|
||||
Starting string delimiter.
|
||||
This option permits you to specify
|
||||
a different string for
|
||||
.B makedepend
|
||||
to look for in the makefile.
|
||||
.TP 5
|
||||
.B \-w\fIwidth\fP
|
||||
Line width.
|
||||
Normally,
|
||||
.B makedepend
|
||||
will ensure that every output line that it writes will be no wider than
|
||||
78 characters for the sake of readability.
|
||||
This option enables you to change this width.
|
||||
.TP 5
|
||||
.B \-v
|
||||
Verbose operation.
|
||||
This option causes
|
||||
.B makedepend
|
||||
to emit the list of files included by each input file.
|
||||
.TP 5
|
||||
.B \-m
|
||||
Warn about multiple inclusion.
|
||||
This option causes
|
||||
.B makedepend
|
||||
to produce a warning if any input file includes another file more than
|
||||
once. In previous versions of
|
||||
.B makedepend
|
||||
this was the default behavior; the default has been changed to better
|
||||
match the behavior of the C compiler, which does not consider multiple
|
||||
inclusion to be an error. This option is provided for backward
|
||||
compatibility, and to aid in debugging problems related to multiple
|
||||
inclusion.
|
||||
.TP 5
|
||||
.B "\-\^\- \fIoptions\fP \-\^\-"
|
||||
If
|
||||
.B makedepend
|
||||
encounters a double hyphen (\-\^\-) in the argument list,
|
||||
then any unrecognized argument following it
|
||||
will be silently ignored; a second double hyphen terminates this
|
||||
special treatment.
|
||||
In this way,
|
||||
.B makedepend
|
||||
can be made to safely ignore esoteric compiler arguments that might
|
||||
normally be found in a CFLAGS
|
||||
.B make
|
||||
macro (see the
|
||||
.B EXAMPLE
|
||||
section above).
|
||||
All options that
|
||||
.B makedepend
|
||||
recognizes and appear between the pair of double hyphens
|
||||
are processed normally.
|
||||
.SH ALGORITHM
|
||||
The approach used in this program enables it to run an order of magnitude
|
||||
faster than any other ``dependency generator'' I have ever seen.
|
||||
Central to this performance are two assumptions:
|
||||
that all files compiled by a single
|
||||
makefile will be compiled with roughly the same
|
||||
.I \-I
|
||||
and
|
||||
.I \-D
|
||||
options;
|
||||
and that most files in a single directory will include largely the
|
||||
same files.
|
||||
.PP
|
||||
Given these assumptions,
|
||||
.B makedepend
|
||||
expects to be called once for each makefile, with
|
||||
all source files that are maintained by the
|
||||
makefile appearing on the command line.
|
||||
It parses each source and include
|
||||
file exactly once, maintaining an internal symbol table
|
||||
for each.
|
||||
Thus, the first file on the command line will take an amount of time
|
||||
proportional to the amount of time that a normal C preprocessor takes.
|
||||
But on subsequent files, if it encounters an include file
|
||||
that it has already parsed, it does not parse it again.
|
||||
.PP
|
||||
For example,
|
||||
imagine you are compiling two files,
|
||||
.I file1.c
|
||||
and
|
||||
.I file2.c,
|
||||
they each include the header file
|
||||
.I header.h,
|
||||
and the file
|
||||
.I header.h
|
||||
in turn includes the files
|
||||
.I def1.h
|
||||
and
|
||||
.I def2.h.
|
||||
When you run the command
|
||||
.sp
|
||||
makedepend\0file1.c\0file2.c
|
||||
.sp
|
||||
.B makedepend
|
||||
will parse
|
||||
.I file1.c
|
||||
and consequently,
|
||||
.I header.h
|
||||
and then
|
||||
.I def1.h
|
||||
and
|
||||
.I def2.h.
|
||||
It then decides that the dependencies for this file are
|
||||
.sp
|
||||
file1.o:\0header.h\0def1.h\0def2.h
|
||||
.sp
|
||||
But when the program parses
|
||||
.I file2.c
|
||||
and discovers that it, too, includes
|
||||
.I header.h,
|
||||
it does not parse the file,
|
||||
but simply adds
|
||||
.I header.h,
|
||||
.I def1.h
|
||||
and
|
||||
.I def2.h
|
||||
to the list of dependencies for
|
||||
.I file2.o.
|
||||
.SH "SEE ALSO"
|
||||
cc(1), make(1)
|
||||
.SH BUGS
|
||||
.B makedepend
|
||||
parses, but does not currently evaluate, the SVR4 #predicate(token-list)
|
||||
preprocessor expression; such expressions are simply assumed to be true.
|
||||
This may cause the wrong
|
||||
.I #include
|
||||
directives to be evaluated.
|
||||
.PP
|
||||
Imagine you are parsing two files,
|
||||
say
|
||||
.I file1.c
|
||||
and
|
||||
.I file2.c,
|
||||
each includes the file
|
||||
.I def.h.
|
||||
The list of files that
|
||||
.I def.h
|
||||
includes might truly be different when
|
||||
.I def.h
|
||||
is included by
|
||||
.I file1.c
|
||||
than when it is included by
|
||||
.I file2.c.
|
||||
But once
|
||||
.B makedepend
|
||||
arrives at a list of dependencies for a file,
|
||||
it is cast in concrete.
|
||||
.SH AUTHOR
|
||||
Todd Brunhoff, Tektronix, Inc. and MIT Project Athena
|
|
@ -0,0 +1,686 @@
|
|||
/* $Xorg: parse.c,v 1.6 2001/02/09 02:03:16 xorgcvs Exp $ */
|
||||
/*
|
||||
|
||||
Copyright (c) 1993, 1994, 1998 The Open Group
|
||||
|
||||
Permission to use, copy, modify, distribute, and sell this software and its
|
||||
documentation for any purpose is hereby granted without fee, provided that
|
||||
the above copyright notice appear in all copies and that both that
|
||||
copyright notice and this permission notice appear in supporting
|
||||
documentation.
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of The Open Group shall not be
|
||||
used in advertising or otherwise to promote the sale, use or other dealings
|
||||
in this Software without prior written authorization from The Open Group.
|
||||
|
||||
*/
|
||||
/* $XFree86: xc/config/makedepend/parse.c,v 1.12 2002/02/26 05:09:10 tsi Exp $ */
|
||||
|
||||
#include "def.h"
|
||||
|
||||
extern char *directives[];
|
||||
extern struct inclist inclist[ MAXFILES ],
|
||||
*inclistnext,
|
||||
maininclist;
|
||||
extern char *includedirs[ ],
|
||||
**includedirsnext;
|
||||
|
||||
static int deftype (char *line, struct filepointer *filep,
|
||||
struct inclist *file_red, struct inclist *file,
|
||||
int parse_it);
|
||||
static int zero_value(char *filename, char *exp, struct filepointer *filep,
|
||||
struct inclist *file_red);
|
||||
static int merge2defines(struct inclist *file1, struct inclist *file2);
|
||||
|
||||
static int
|
||||
gobble(struct filepointer *filep, struct inclist *file,
|
||||
struct inclist *file_red)
|
||||
{
|
||||
char *line;
|
||||
int type;
|
||||
|
||||
while ((line = getnextline(filep))) {
|
||||
switch(type = deftype(line, filep, file_red, file, FALSE)) {
|
||||
case IF:
|
||||
case IFFALSE:
|
||||
case IFGUESSFALSE:
|
||||
case IFDEF:
|
||||
case IFNDEF:
|
||||
type = gobble(filep, file, file_red);
|
||||
while ((type == ELIF) || (type == ELIFFALSE) ||
|
||||
(type == ELIFGUESSFALSE))
|
||||
type = gobble(filep, file, file_red);
|
||||
if (type == ELSE)
|
||||
(void)gobble(filep, file, file_red);
|
||||
break;
|
||||
case ELSE:
|
||||
case ENDIF:
|
||||
debug(0,("%s, line %d: #%s\n",
|
||||
file->i_file, filep->f_line,
|
||||
directives[type]));
|
||||
return(type);
|
||||
case DEFINE:
|
||||
case UNDEF:
|
||||
case INCLUDE:
|
||||
case INCLUDEDOT:
|
||||
case PRAGMA:
|
||||
case ERROR:
|
||||
case IDENT:
|
||||
case SCCS:
|
||||
case EJECT:
|
||||
case WARNING:
|
||||
case INCLUDENEXT:
|
||||
case INCLUDENEXTDOT:
|
||||
break;
|
||||
case ELIF:
|
||||
case ELIFFALSE:
|
||||
case ELIFGUESSFALSE:
|
||||
return(type);
|
||||
case -1:
|
||||
warning("%s", file_red->i_file);
|
||||
if (file_red != file)
|
||||
warning1(" (reading %s)", file->i_file);
|
||||
warning1(", line %d: unknown directive == \"%s\"\n",
|
||||
filep->f_line, line);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return(-1);
|
||||
}
|
||||
|
||||
/*
|
||||
* Decide what type of # directive this line is.
|
||||
*/
|
||||
static int
|
||||
deftype (char *line, struct filepointer *filep,
|
||||
struct inclist *file_red, struct inclist *file, int parse_it)
|
||||
{
|
||||
register char *p;
|
||||
char *directive, savechar, *q;
|
||||
register int ret;
|
||||
|
||||
/*
|
||||
* Parse the directive...
|
||||
*/
|
||||
directive=line+1;
|
||||
while (*directive == ' ' || *directive == '\t')
|
||||
directive++;
|
||||
|
||||
p = directive;
|
||||
while ((*p == '_') || (*p >= 'a' && *p <= 'z'))
|
||||
p++;
|
||||
savechar = *p;
|
||||
*p = '\0';
|
||||
ret = match(directive, directives);
|
||||
*p = savechar;
|
||||
|
||||
/* If we don't recognize this compiler directive or we happen to just
|
||||
* be gobbling up text while waiting for an #endif or #elif or #else
|
||||
* in the case of an #elif we must check the zero_value and return an
|
||||
* ELIF or an ELIFFALSE.
|
||||
*/
|
||||
|
||||
if (ret == ELIF && !parse_it)
|
||||
{
|
||||
while (*p == ' ' || *p == '\t')
|
||||
p++;
|
||||
/*
|
||||
* parse an expression.
|
||||
*/
|
||||
debug(0,("%s, line %d: #elif %s ",
|
||||
file->i_file, filep->f_line, p));
|
||||
ret = zero_value(file->i_file, p, filep, file_red);
|
||||
if (ret != IF)
|
||||
{
|
||||
debug(0,("false...\n"));
|
||||
if (ret == IFFALSE)
|
||||
return(ELIFFALSE);
|
||||
else
|
||||
return(ELIFGUESSFALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
debug(0,("true...\n"));
|
||||
return(ELIF);
|
||||
}
|
||||
}
|
||||
|
||||
if (ret < 0 || ! parse_it)
|
||||
return(ret);
|
||||
|
||||
/*
|
||||
* now decide how to parse the directive, and do it.
|
||||
*/
|
||||
while (*p == ' ' || *p == '\t')
|
||||
p++;
|
||||
q = p + strlen(p);
|
||||
do {
|
||||
q--;
|
||||
} while (*q == ' ' || *q == '\t');
|
||||
q[1] = '\0';
|
||||
switch (ret) {
|
||||
case IF:
|
||||
/*
|
||||
* parse an expression.
|
||||
*/
|
||||
ret = zero_value(file->i_file, p, filep, file_red);
|
||||
debug(0,("%s, line %d: %s #if %s\n",
|
||||
file->i_file, filep->f_line, ret?"false":"true", p));
|
||||
break;
|
||||
case IFDEF:
|
||||
case IFNDEF:
|
||||
debug(0,("%s, line %d: #%s %s\n",
|
||||
file->i_file, filep->f_line, directives[ret], p));
|
||||
case UNDEF:
|
||||
/*
|
||||
* separate the name of a single symbol.
|
||||
*/
|
||||
while (isalnum(*p) || *p == '_')
|
||||
*line++ = *p++;
|
||||
*line = '\0';
|
||||
break;
|
||||
case INCLUDE:
|
||||
case INCLUDENEXT:
|
||||
debug(2,("%s, line %d: #include%s %s\n",
|
||||
file->i_file, filep->f_line,
|
||||
(ret == INCLUDE) ? "" : "_next", p));
|
||||
|
||||
/* Support ANSI macro substitution */
|
||||
while (1) {
|
||||
struct symtab **sym;
|
||||
|
||||
if (!*p || *p == '"' || *p == '<')
|
||||
break;
|
||||
|
||||
sym = isdefined(p, file_red, NULL);
|
||||
if (!sym)
|
||||
break;
|
||||
|
||||
p = (*sym)->s_value;
|
||||
debug(3,("%s : #includes SYMBOL %s = %s\n",
|
||||
file->i_incstring,
|
||||
(*sym) -> s_name,
|
||||
(*sym) -> s_value));
|
||||
/* mark file as having included a 'soft include' */
|
||||
file->i_flags |= INCLUDED_SYM;
|
||||
}
|
||||
|
||||
/*
|
||||
* Separate the name of the include file.
|
||||
*/
|
||||
while (*p && *p != '"' && *p != '<')
|
||||
p++;
|
||||
if (! *p)
|
||||
return(-2);
|
||||
if (*p++ == '"') {
|
||||
if (ret == INCLUDE)
|
||||
ret = INCLUDEDOT;
|
||||
else
|
||||
ret = INCLUDENEXTDOT;
|
||||
while (*p && *p != '"')
|
||||
*line++ = *p++;
|
||||
} else
|
||||
while (*p && *p != '>')
|
||||
*line++ = *p++;
|
||||
*line = '\0';
|
||||
break;
|
||||
case DEFINE:
|
||||
/*
|
||||
* copy the definition back to the beginning of the line.
|
||||
*/
|
||||
strcpy (line, p);
|
||||
break;
|
||||
case ELSE:
|
||||
case ENDIF:
|
||||
case ELIF:
|
||||
case PRAGMA:
|
||||
case ERROR:
|
||||
case IDENT:
|
||||
case SCCS:
|
||||
case EJECT:
|
||||
case WARNING:
|
||||
debug(0,("%s, line %d: #%s\n",
|
||||
file->i_file, filep->f_line, directives[ret]));
|
||||
/*
|
||||
* nothing to do.
|
||||
*/
|
||||
break;
|
||||
}
|
||||
return(ret);
|
||||
}
|
||||
|
||||
struct symtab **
|
||||
fdefined(char *symbol, struct inclist *file, struct inclist **srcfile)
|
||||
{
|
||||
struct inclist **ip;
|
||||
struct symtab **val;
|
||||
int i;
|
||||
static int recurse_lvl = 0;
|
||||
|
||||
if (file->i_flags & DEFCHECKED)
|
||||
return(NULL);
|
||||
debug(2,("Looking for %s in %s\n", symbol, file->i_file));
|
||||
file->i_flags |= DEFCHECKED;
|
||||
if ((val = slookup(symbol, file)))
|
||||
debug(1,("%s defined in %s as %s\n",
|
||||
symbol, file->i_file, (*val)->s_value));
|
||||
if (val == NULL && file->i_list)
|
||||
{
|
||||
for (ip = file->i_list, i=0; i < file->i_listlen; i++, ip++)
|
||||
if (file->i_merged[i]==FALSE) {
|
||||
val = fdefined(symbol, *ip, srcfile);
|
||||
file->i_merged[i]=merge2defines(file,*ip);
|
||||
if (val!=NULL) break;
|
||||
}
|
||||
}
|
||||
else if (val != NULL && srcfile != NULL) *srcfile = file;
|
||||
recurse_lvl--;
|
||||
file->i_flags &= ~DEFCHECKED;
|
||||
|
||||
return(val);
|
||||
}
|
||||
|
||||
struct symtab **
|
||||
isdefined(char *symbol, struct inclist *file, struct inclist **srcfile)
|
||||
{
|
||||
struct symtab **val;
|
||||
|
||||
if ((val = slookup(symbol, &maininclist))) {
|
||||
debug(1,("%s defined on command line\n", symbol));
|
||||
if (srcfile != NULL) *srcfile = &maininclist;
|
||||
return(val);
|
||||
}
|
||||
if ((val = fdefined(symbol, file, srcfile)))
|
||||
return(val);
|
||||
debug(1,("%s not defined in %s\n", symbol, file->i_file));
|
||||
return(NULL);
|
||||
}
|
||||
|
||||
/*
|
||||
* Return type based on if the #if expression evaluates to 0
|
||||
*/
|
||||
static int
|
||||
zero_value(char *filename,
|
||||
char *exp,
|
||||
struct filepointer *filep,
|
||||
struct inclist *file_red)
|
||||
{
|
||||
if (cppsetup(filename, exp, filep, file_red))
|
||||
return(IFFALSE);
|
||||
else
|
||||
return(IF);
|
||||
}
|
||||
|
||||
void
|
||||
define2(char *name, char *val, struct inclist *file)
|
||||
{
|
||||
int first, last, below;
|
||||
register struct symtab **sp = NULL, **dest;
|
||||
struct symtab *stab;
|
||||
|
||||
/* Make space if it's needed */
|
||||
if (file->i_defs == NULL)
|
||||
{
|
||||
file->i_defs = (struct symtab **)
|
||||
malloc(sizeof (struct symtab*) * SYMTABINC);
|
||||
file->i_ndefs = 0;
|
||||
}
|
||||
else if (!(file->i_ndefs % SYMTABINC))
|
||||
file->i_defs = (struct symtab **)
|
||||
realloc(file->i_defs,
|
||||
sizeof(struct symtab*)*(file->i_ndefs+SYMTABINC));
|
||||
|
||||
if (file->i_defs == NULL)
|
||||
fatalerr("malloc()/realloc() failure in insert_defn()\n");
|
||||
|
||||
below = first = 0;
|
||||
last = file->i_ndefs - 1;
|
||||
while (last >= first)
|
||||
{
|
||||
/* Fast inline binary search */
|
||||
register char *s1;
|
||||
register char *s2;
|
||||
register int middle = (first + last) / 2;
|
||||
|
||||
/* Fast inline strchr() */
|
||||
s1 = name;
|
||||
s2 = file->i_defs[middle]->s_name;
|
||||
while (*s1++ == *s2++)
|
||||
if (s2[-1] == '\0') break;
|
||||
|
||||
/* If exact match, set sp and break */
|
||||
if (*--s1 == *--s2)
|
||||
{
|
||||
sp = file->i_defs + middle;
|
||||
break;
|
||||
}
|
||||
|
||||
/* If name > i_defs[middle] ... */
|
||||
if (*s1 > *s2)
|
||||
{
|
||||
below = first;
|
||||
first = middle + 1;
|
||||
}
|
||||
/* else ... */
|
||||
else
|
||||
{
|
||||
below = last = middle - 1;
|
||||
}
|
||||
}
|
||||
|
||||
/* Search is done. If we found an exact match to the symbol name,
|
||||
just replace its s_value */
|
||||
if (sp != NULL)
|
||||
{
|
||||
debug(1,("redefining %s from %s to %s in file %s\n",
|
||||
name, (*sp)->s_value, val, file->i_file));
|
||||
free((*sp)->s_value);
|
||||
(*sp)->s_value = copy(val);
|
||||
return;
|
||||
}
|
||||
|
||||
sp = file->i_defs + file->i_ndefs++;
|
||||
dest = file->i_defs + below + 1;
|
||||
while (sp > dest)
|
||||
{
|
||||
*sp = sp[-1];
|
||||
sp--;
|
||||
}
|
||||
stab = (struct symtab *) malloc(sizeof (struct symtab));
|
||||
if (stab == NULL)
|
||||
fatalerr("malloc()/realloc() failure in insert_defn()\n");
|
||||
|
||||
debug(1,("defining %s to %s in file %s\n", name, val, file->i_file));
|
||||
stab->s_name = copy(name);
|
||||
stab->s_value = copy(val);
|
||||
*sp = stab;
|
||||
}
|
||||
|
||||
void
|
||||
define(char *def, struct inclist *file)
|
||||
{
|
||||
char *val;
|
||||
|
||||
/* Separate symbol name and its value */
|
||||
val = def;
|
||||
while (isalnum(*val) || *val == '_')
|
||||
val++;
|
||||
if (*val)
|
||||
*val++ = '\0';
|
||||
while (*val == ' ' || *val == '\t')
|
||||
val++;
|
||||
|
||||
if (!*val)
|
||||
val = "1";
|
||||
define2(def, val, file);
|
||||
}
|
||||
|
||||
struct symtab **
|
||||
slookup(char *symbol, struct inclist *file)
|
||||
{
|
||||
register int first = 0;
|
||||
register int last = file->i_ndefs - 1;
|
||||
|
||||
if (file) while (last >= first)
|
||||
{
|
||||
/* Fast inline binary search */
|
||||
register char *s1;
|
||||
register char *s2;
|
||||
register int middle = (first + last) / 2;
|
||||
|
||||
/* Fast inline strchr() */
|
||||
s1 = symbol;
|
||||
s2 = file->i_defs[middle]->s_name;
|
||||
while (*s1++ == *s2++)
|
||||
if (s2[-1] == '\0') break;
|
||||
|
||||
/* If exact match, we're done */
|
||||
if (*--s1 == *--s2)
|
||||
{
|
||||
return file->i_defs + middle;
|
||||
}
|
||||
|
||||
/* If symbol > i_defs[middle] ... */
|
||||
if (*s1 > *s2)
|
||||
{
|
||||
first = middle + 1;
|
||||
}
|
||||
/* else ... */
|
||||
else
|
||||
{
|
||||
last = middle - 1;
|
||||
}
|
||||
}
|
||||
return(NULL);
|
||||
}
|
||||
|
||||
static int
|
||||
merge2defines(struct inclist *file1, struct inclist *file2)
|
||||
{
|
||||
int i;
|
||||
|
||||
if ((file1==NULL) || (file2==NULL) ||
|
||||
!(file2->i_flags & FINISHED))
|
||||
return 0;
|
||||
|
||||
for (i=0; i < file2->i_listlen; i++)
|
||||
if (file2->i_merged[i]==FALSE)
|
||||
return 0;
|
||||
|
||||
{
|
||||
int first1 = 0;
|
||||
int last1 = file1->i_ndefs - 1;
|
||||
|
||||
int first2 = 0;
|
||||
int last2 = file2->i_ndefs - 1;
|
||||
|
||||
int first=0;
|
||||
struct symtab** i_defs = NULL;
|
||||
int deflen=file1->i_ndefs+file2->i_ndefs;
|
||||
|
||||
debug(2,("merging %s into %s\n",
|
||||
file2->i_file, file1->i_file));
|
||||
|
||||
if (deflen>0)
|
||||
{
|
||||
/* make sure deflen % SYMTABINC == 0 is still true */
|
||||
deflen += (SYMTABINC - deflen % SYMTABINC) % SYMTABINC;
|
||||
i_defs=(struct symtab**)
|
||||
malloc(deflen*sizeof(struct symtab*));
|
||||
if (i_defs==NULL) return 0;
|
||||
}
|
||||
|
||||
while ((last1 >= first1) && (last2 >= first2))
|
||||
{
|
||||
char *s1=file1->i_defs[first1]->s_name;
|
||||
char *s2=file2->i_defs[first2]->s_name;
|
||||
|
||||
if (strcmp(s1,s2) < 0)
|
||||
i_defs[first++]=file1->i_defs[first1++];
|
||||
else if (strcmp(s1,s2) > 0)
|
||||
i_defs[first++]=file2->i_defs[first2++];
|
||||
else /* equal */
|
||||
{
|
||||
i_defs[first++]=file2->i_defs[first2++];
|
||||
first1++;
|
||||
}
|
||||
}
|
||||
while (last1 >= first1)
|
||||
{
|
||||
i_defs[first++]=file1->i_defs[first1++];
|
||||
}
|
||||
while (last2 >= first2)
|
||||
{
|
||||
i_defs[first++]=file2->i_defs[first2++];
|
||||
}
|
||||
|
||||
if (file1->i_defs) free(file1->i_defs);
|
||||
file1->i_defs=i_defs;
|
||||
file1->i_ndefs=first;
|
||||
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
undefine(char *symbol, struct inclist *file)
|
||||
{
|
||||
register struct symtab **ptr;
|
||||
struct inclist *srcfile;
|
||||
while ((ptr = isdefined(symbol, file, &srcfile)) != NULL)
|
||||
{
|
||||
srcfile->i_ndefs--;
|
||||
for (; ptr < srcfile->i_defs + srcfile->i_ndefs; ptr++)
|
||||
*ptr = ptr[1];
|
||||
}
|
||||
}
|
||||
|
||||
int
|
||||
find_includes(struct filepointer *filep, struct inclist *file,
|
||||
struct inclist *file_red, int recursion, boolean failOK)
|
||||
{
|
||||
struct inclist *inclistp;
|
||||
char **includedirsp;
|
||||
register char *line;
|
||||
register int type;
|
||||
boolean recfailOK;
|
||||
|
||||
while ((line = getnextline(filep))) {
|
||||
switch(type = deftype(line, filep, file_red, file, TRUE)) {
|
||||
case IF:
|
||||
doif:
|
||||
type = find_includes(filep, file,
|
||||
file_red, recursion+1, failOK);
|
||||
while ((type == ELIF) || (type == ELIFFALSE) ||
|
||||
(type == ELIFGUESSFALSE))
|
||||
type = gobble(filep, file, file_red);
|
||||
if (type == ELSE)
|
||||
gobble(filep, file, file_red);
|
||||
break;
|
||||
case IFFALSE:
|
||||
case IFGUESSFALSE:
|
||||
doiffalse:
|
||||
if (type == IFGUESSFALSE || type == ELIFGUESSFALSE)
|
||||
recfailOK = TRUE;
|
||||
else
|
||||
recfailOK = failOK;
|
||||
type = gobble(filep, file, file_red);
|
||||
if (type == ELSE)
|
||||
find_includes(filep, file,
|
||||
file_red, recursion+1, recfailOK);
|
||||
else
|
||||
if (type == ELIF)
|
||||
goto doif;
|
||||
else
|
||||
if ((type == ELIFFALSE) || (type == ELIFGUESSFALSE))
|
||||
goto doiffalse;
|
||||
break;
|
||||
case IFDEF:
|
||||
case IFNDEF:
|
||||
if ((type == IFDEF && isdefined(line, file_red, NULL))
|
||||
|| (type == IFNDEF && !isdefined(line, file_red, NULL))) {
|
||||
debug(1,(type == IFNDEF ?
|
||||
"line %d: %s !def'd in %s via %s%s\n" : "",
|
||||
filep->f_line, line,
|
||||
file->i_file, file_red->i_file, ": doit"));
|
||||
type = find_includes(filep, file,
|
||||
file_red, recursion+1, failOK);
|
||||
while (type == ELIF || type == ELIFFALSE || type == ELIFGUESSFALSE)
|
||||
type = gobble(filep, file, file_red);
|
||||
if (type == ELSE)
|
||||
gobble(filep, file, file_red);
|
||||
}
|
||||
else {
|
||||
debug(1,(type == IFDEF ?
|
||||
"line %d: %s !def'd in %s via %s%s\n" : "",
|
||||
filep->f_line, line,
|
||||
file->i_file, file_red->i_file, ": gobble"));
|
||||
type = gobble(filep, file, file_red);
|
||||
if (type == ELSE)
|
||||
find_includes(filep, file,
|
||||
file_red, recursion+1, failOK);
|
||||
else if (type == ELIF)
|
||||
goto doif;
|
||||
else if (type == ELIFFALSE || type == ELIFGUESSFALSE)
|
||||
goto doiffalse;
|
||||
}
|
||||
break;
|
||||
case ELSE:
|
||||
case ELIFFALSE:
|
||||
case ELIFGUESSFALSE:
|
||||
case ELIF:
|
||||
if (!recursion)
|
||||
gobble(filep, file, file_red);
|
||||
case ENDIF:
|
||||
if (recursion)
|
||||
return(type);
|
||||
case DEFINE:
|
||||
define(line, file);
|
||||
break;
|
||||
case UNDEF:
|
||||
if (!*line) {
|
||||
warning("%s", file_red->i_file);
|
||||
if (file_red != file)
|
||||
warning1(" (reading %s)", file->i_file);
|
||||
warning1(", line %d: incomplete undef == \"%s\"\n",
|
||||
filep->f_line, line);
|
||||
break;
|
||||
}
|
||||
undefine(line, file_red);
|
||||
break;
|
||||
case INCLUDE:
|
||||
case INCLUDEDOT:
|
||||
case INCLUDENEXT:
|
||||
case INCLUDENEXTDOT:
|
||||
inclistp = inclistnext;
|
||||
includedirsp = includedirsnext;
|
||||
debug(2,("%s, reading %s, includes %s\n",
|
||||
file_red->i_file, file->i_file, line));
|
||||
add_include(filep, file, file_red, line, type, failOK);
|
||||
inclistnext = inclistp;
|
||||
includedirsnext = includedirsp;
|
||||
break;
|
||||
case ERROR:
|
||||
case WARNING:
|
||||
warning("%s", file_red->i_file);
|
||||
if (file_red != file)
|
||||
warning1(" (reading %s)", file->i_file);
|
||||
warning1(", line %d: %s\n",
|
||||
filep->f_line, line);
|
||||
break;
|
||||
|
||||
case PRAGMA:
|
||||
case IDENT:
|
||||
case SCCS:
|
||||
case EJECT:
|
||||
break;
|
||||
case -1:
|
||||
warning("%s", file_red->i_file);
|
||||
if (file_red != file)
|
||||
warning1(" (reading %s)", file->i_file);
|
||||
warning1(", line %d: unknown directive == \"%s\"\n",
|
||||
filep->f_line, line);
|
||||
break;
|
||||
case -2:
|
||||
warning("%s", file_red->i_file);
|
||||
if (file_red != file)
|
||||
warning1(" (reading %s)", file->i_file);
|
||||
warning1(", line %d: incomplete include == \"%s\"\n",
|
||||
filep->f_line, line);
|
||||
break;
|
||||
}
|
||||
}
|
||||
file->i_flags |= FINISHED;
|
||||
debug(2,("finished with %s\n", file->i_file));
|
||||
return(-1);
|
||||
}
|
|
@ -0,0 +1,124 @@
|
|||
/* $Xorg: pr.c,v 1.4 2001/02/09 02:03:16 xorgcvs Exp $ */
|
||||
/*
|
||||
|
||||
Copyright (c) 1993, 1994, 1998 The Open Group
|
||||
|
||||
Permission to use, copy, modify, distribute, and sell this software and its
|
||||
documentation for any purpose is hereby granted without fee, provided that
|
||||
the above copyright notice appear in all copies and that both that
|
||||
copyright notice and this permission notice appear in supporting
|
||||
documentation.
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of The Open Group shall not be
|
||||
used in advertising or otherwise to promote the sale, use or other dealings
|
||||
in this Software without prior written authorization from The Open Group.
|
||||
|
||||
*/
|
||||
/* $XFree86: xc/config/makedepend/pr.c,v 1.5 2001/12/14 19:53:21 dawes Exp $ */
|
||||
|
||||
#include "def.h"
|
||||
|
||||
extern struct inclist inclist[ MAXFILES ],
|
||||
*inclistp;
|
||||
extern char *objprefix;
|
||||
extern char *objsuffix;
|
||||
extern int width;
|
||||
extern boolean printed;
|
||||
extern boolean verbose;
|
||||
extern boolean show_where_not;
|
||||
|
||||
void
|
||||
add_include(struct filepointer *filep, struct inclist *file,
|
||||
struct inclist *file_red, char *include, int type,
|
||||
boolean failOK)
|
||||
{
|
||||
register struct inclist *newfile;
|
||||
register struct filepointer *content;
|
||||
|
||||
/*
|
||||
* First decide what the pathname of this include file really is.
|
||||
*/
|
||||
newfile = inc_path(file->i_file, include, type);
|
||||
if (newfile == NULL) {
|
||||
if (failOK)
|
||||
return;
|
||||
if (file != file_red)
|
||||
warning("%s (reading %s, line %d): ",
|
||||
file_red->i_file, file->i_file, filep->f_line);
|
||||
else
|
||||
warning("%s, line %d: ", file->i_file, filep->f_line);
|
||||
warning1("cannot find include file \"%s\"\n", include);
|
||||
show_where_not = TRUE;
|
||||
newfile = inc_path(file->i_file, include, type);
|
||||
show_where_not = FALSE;
|
||||
}
|
||||
|
||||
if (newfile) {
|
||||
included_by(file, newfile);
|
||||
if (!(newfile->i_flags & SEARCHED)) {
|
||||
newfile->i_flags |= SEARCHED;
|
||||
content = getfile(newfile->i_file);
|
||||
find_includes(content, newfile, file_red, 0, failOK);
|
||||
freefile(content);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
pr(struct inclist *ip, char *file, char *base)
|
||||
{
|
||||
static char *lastfile;
|
||||
static int current_len;
|
||||
register int len, i;
|
||||
char buf[ BUFSIZ ];
|
||||
|
||||
printed = TRUE;
|
||||
len = strlen(ip->i_file)+1;
|
||||
if (current_len + len > width || file != lastfile) {
|
||||
lastfile = file;
|
||||
sprintf(buf, "\n%s%s%s: %s", objprefix, base, objsuffix,
|
||||
ip->i_file);
|
||||
len = current_len = strlen(buf);
|
||||
}
|
||||
else {
|
||||
buf[0] = ' ';
|
||||
strcpy(buf+1, ip->i_file);
|
||||
current_len += len;
|
||||
}
|
||||
fwrite(buf, len, 1, stdout);
|
||||
|
||||
/*
|
||||
* If verbose is set, then print out what this file includes.
|
||||
*/
|
||||
if (! verbose || ip->i_list == NULL || ip->i_flags & NOTIFIED)
|
||||
return;
|
||||
ip->i_flags |= NOTIFIED;
|
||||
lastfile = NULL;
|
||||
printf("\n# %s includes:", ip->i_file);
|
||||
for (i=0; i<ip->i_listlen; i++)
|
||||
printf("\n#\t%s", ip->i_list[ i ]->i_incstring);
|
||||
}
|
||||
|
||||
void
|
||||
recursive_pr_include(struct inclist *head, char *file, char *base)
|
||||
{
|
||||
int i;
|
||||
|
||||
if (head->i_flags & MARKED)
|
||||
return;
|
||||
head->i_flags |= MARKED;
|
||||
if (head->i_file != file)
|
||||
pr(head, file, base);
|
||||
for (i=0; i<head->i_listlen; i++)
|
||||
recursive_pr_include(head->i_list[ i ], file, base);
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
# -*- Mode: makefile -*-
|
||||
#! perl
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
|
@ -13,8 +13,7 @@
|
|||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is Mozilla Communicator client code, released
|
||||
# March 31, 1998.
|
||||
# The Original Code is mozilla.org code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
|
@ -24,8 +23,8 @@
|
|||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
|
@ -37,8 +36,15 @@
|
|||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config stuff for IRIX6.3
|
||||
#
|
||||
require "fastcwd.pl";
|
||||
|
||||
include $(DEPTH)/config/IRIX.mk
|
||||
$_ = &fastcwd;
|
||||
if (m@^/[uh]/@o || s@^/tmp_mnt/@/@o) {
|
||||
print("$_\n");
|
||||
} elsif ((($user, $rest) = m@^/usr/people/(\w+)/(.*)@o)
|
||||
&& readlink("/u/$user") eq "/usr/people/$user") {
|
||||
print("/u/$user/$rest\n");
|
||||
} else {
|
||||
chop($host = `hostname`);
|
||||
print("/h/$host$_\n");
|
||||
}
|
|
@ -0,0 +1,481 @@
|
|||
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla 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/MPL/
|
||||
*
|
||||
* 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 the Initial Developer are Copyright (C) 1998
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
* or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
/*
|
||||
** Netscape portable install command.
|
||||
**
|
||||
** Brendan Eich, 7/20/95
|
||||
*/
|
||||
#include <stdio.h> /* OSF/1 requires this before grp.h, so put it first */
|
||||
#include <assert.h>
|
||||
#include <fcntl.h>
|
||||
#include <errno.h>
|
||||
#include <dirent.h>
|
||||
#include <limits.h>
|
||||
#include <grp.h>
|
||||
#include <pwd.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
#include <utime.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include "pathsub.h"
|
||||
|
||||
#ifdef HAVE_GETOPT_H
|
||||
#include <getopt.h>
|
||||
#endif
|
||||
|
||||
#ifdef SUNOS4
|
||||
#include "sunos4.h"
|
||||
#endif
|
||||
|
||||
#ifdef NEXTSTEP
|
||||
#include <bsd/libc.h>
|
||||
#endif
|
||||
|
||||
#ifdef __QNX__
|
||||
#include <unix.h>
|
||||
#endif
|
||||
|
||||
#ifdef NEED_S_ISLNK
|
||||
#if !defined(S_ISLNK) && defined(S_IFLNK)
|
||||
#define S_ISLNK(a) (((a) & S_IFMT) == S_IFLNK)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef _DIRECTORY_SEPARATOR
|
||||
#define _DIRECTORY_SEPARATOR "/"
|
||||
#endif /* _DIRECTORY_SEPARATOR */
|
||||
|
||||
#ifdef NEED_FCHMOD_PROTO
|
||||
extern int fchmod(int fildes, mode_t mode);
|
||||
#endif
|
||||
|
||||
static void
|
||||
usage(void)
|
||||
{
|
||||
fprintf(stderr,
|
||||
"usage: %s [-C cwd] [-L linkprefix] [-m mode] [-o owner] [-g group]\n"
|
||||
" %*s [-DdltR] file [file ...] directory\n",
|
||||
program, (int) strlen(program), "");
|
||||
exit(2);
|
||||
}
|
||||
|
||||
static int
|
||||
mkdirs(char *path, mode_t mode)
|
||||
{
|
||||
char *cp;
|
||||
struct stat sb;
|
||||
int res;
|
||||
int l;
|
||||
|
||||
/* strip trailing "/." */
|
||||
l = strlen(path);
|
||||
if(l > 1 && path[l - 1] == '.' && path[l - 2] == '/')
|
||||
path[l - 2] = 0;
|
||||
|
||||
while (*path == '/' && path[1] == '/')
|
||||
path++;
|
||||
for (cp = strrchr(path, '/'); cp && cp != path && *(cp - 1) == '/'; cp--);
|
||||
if (cp && cp != path) {
|
||||
*cp = '\0';
|
||||
if ((lstat(path, &sb) < 0 || !S_ISDIR(sb.st_mode)) &&
|
||||
mkdirs(path, mode) < 0) {
|
||||
return -1;
|
||||
}
|
||||
*cp = '/';
|
||||
}
|
||||
|
||||
res = mkdir(path, mode);
|
||||
if ((res != 0) && (errno == EEXIST))
|
||||
return 0;
|
||||
else
|
||||
return res;
|
||||
}
|
||||
|
||||
static uid_t
|
||||
touid(char *owner)
|
||||
{
|
||||
struct passwd *pw;
|
||||
uid_t uid;
|
||||
char *cp;
|
||||
|
||||
pw = getpwnam(owner);
|
||||
if (pw)
|
||||
return pw->pw_uid;
|
||||
uid = strtol(owner, &cp, 0);
|
||||
if (uid == 0 && cp == owner)
|
||||
fail("cannot find uid for %s", owner);
|
||||
return uid;
|
||||
}
|
||||
|
||||
static gid_t
|
||||
togid(char *group)
|
||||
{
|
||||
struct group *gr;
|
||||
gid_t gid;
|
||||
char *cp;
|
||||
|
||||
gr = getgrnam(group);
|
||||
if (gr)
|
||||
return gr->gr_gid;
|
||||
gid = strtol(group, &cp, 0);
|
||||
if (gid == 0 && cp == group)
|
||||
fail("cannot find gid for %s", group);
|
||||
return gid;
|
||||
}
|
||||
|
||||
static void
|
||||
copyfile( char *name, char *toname, mode_t mode, char *group, char *owner,
|
||||
int dotimes, uid_t uid, gid_t gid )
|
||||
{
|
||||
int fromfd, tofd = -1, cc, wc, exists;
|
||||
char buf[BUFSIZ], *bp;
|
||||
struct stat sb, tosb;
|
||||
struct utimbuf utb;
|
||||
|
||||
exists = (lstat(toname, &tosb) == 0);
|
||||
|
||||
fromfd = open(name, O_RDONLY);
|
||||
if (fromfd < 0 || fstat(fromfd, &sb) < 0)
|
||||
fail("cannot access %s", name);
|
||||
if (exists) {
|
||||
if (S_ISREG(tosb.st_mode)) {
|
||||
/* See if we can open it. This is more reliable than 'access'. */
|
||||
tofd = open(toname, O_CREAT | O_WRONLY, 0666);
|
||||
}
|
||||
if (tofd < 0) {
|
||||
(void) (S_ISDIR(tosb.st_mode) ? rmdir : unlink)(toname);
|
||||
}
|
||||
}
|
||||
if (tofd < 0) {
|
||||
tofd = open(toname, O_CREAT | O_WRONLY, 0666);
|
||||
if (tofd < 0)
|
||||
fail("cannot create %s", toname);
|
||||
}
|
||||
|
||||
bp = buf;
|
||||
while ((cc = read(fromfd, bp, sizeof buf)) > 0)
|
||||
{
|
||||
while ((wc = write(tofd, bp, (unsigned int)cc)) > 0)
|
||||
{
|
||||
if ((cc -= wc) == 0)
|
||||
break;
|
||||
bp += wc;
|
||||
}
|
||||
if (wc < 0)
|
||||
fail("cannot write to %s", toname);
|
||||
}
|
||||
if (cc < 0)
|
||||
fail("cannot read from %s", name);
|
||||
|
||||
if (ftruncate(tofd, sb.st_size) < 0)
|
||||
fail("cannot truncate %s", toname);
|
||||
#if !defined(VMS)
|
||||
if (dotimes)
|
||||
{
|
||||
utb.actime = sb.st_atime;
|
||||
utb.modtime = sb.st_mtime;
|
||||
if (utime(toname, &utb) < 0)
|
||||
fail("cannot set times of %s", toname);
|
||||
}
|
||||
#ifdef HAVE_FCHMOD
|
||||
if (fchmod(tofd, mode) < 0)
|
||||
#else
|
||||
if (chmod(toname, mode) < 0)
|
||||
#endif
|
||||
fail("cannot change mode of %s", toname);
|
||||
#endif
|
||||
if ((owner || group) && fchown(tofd, uid, gid) < 0)
|
||||
fail("cannot change owner of %s", toname);
|
||||
|
||||
/* Must check for delayed (NFS) write errors on close. */
|
||||
if (close(tofd) < 0)
|
||||
fail("cannot write to %s", toname);
|
||||
close(fromfd);
|
||||
#if defined(VMS)
|
||||
if (chmod(toname, (mode & (S_IREAD | S_IWRITE))) < 0)
|
||||
fail("cannot change mode of %s", toname);
|
||||
if (dotimes)
|
||||
{
|
||||
utb.actime = sb.st_atime;
|
||||
utb.modtime = sb.st_mtime;
|
||||
if (utime(toname, &utb) < 0)
|
||||
fail("cannot set times of %s", toname);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
static void
|
||||
copydir( char *from, char *to, mode_t mode, char *group, char *owner,
|
||||
int dotimes, uid_t uid, gid_t gid)
|
||||
{
|
||||
int i;
|
||||
DIR *dir;
|
||||
struct dirent *ep;
|
||||
struct stat sb;
|
||||
char *base, *destdir, *direntry, *destentry;
|
||||
|
||||
base = xbasename(from);
|
||||
|
||||
/* create destination directory */
|
||||
destdir = xmalloc((unsigned int)(strlen(to) + 1 + strlen(base) + 1));
|
||||
sprintf(destdir, "%s%s%s", to, _DIRECTORY_SEPARATOR, base);
|
||||
if (mkdirs(destdir, mode) != 0) {
|
||||
fail("cannot make directory %s\n", destdir);
|
||||
return;
|
||||
}
|
||||
|
||||
dir = opendir(from);
|
||||
|
||||
direntry = xmalloc((unsigned int)PATH_MAX);
|
||||
destentry = xmalloc((unsigned int)PATH_MAX);
|
||||
|
||||
while ((ep = readdir(dir)))
|
||||
{
|
||||
if (strcmp(ep->d_name, ".") == 0 || strcmp(ep->d_name, "..") == 0)
|
||||
continue;
|
||||
|
||||
sprintf(direntry, "%s/%s", from, ep->d_name);
|
||||
sprintf(destentry, "%s%s%s", destdir, _DIRECTORY_SEPARATOR, ep->d_name);
|
||||
|
||||
if (stat(direntry, &sb) == 0 && S_ISDIR(sb.st_mode))
|
||||
copydir( direntry, destdir, mode, group, owner, dotimes, uid, gid );
|
||||
else
|
||||
copyfile( direntry, destentry, mode, group, owner, dotimes, uid, gid );
|
||||
}
|
||||
|
||||
free(direntry);
|
||||
free(destentry);
|
||||
closedir(dir);
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
int onlydir, dodir, dolink, dorelsymlink, dotimes, opt, len, lplen, tdlen, bnlen, exists, fromfd, tofd, cc, wc;
|
||||
mode_t mode = 0755;
|
||||
char *linkprefix, *owner, *group, *cp, *cwd, *todir, *toname, *name, *base, *linkname, *bp, buf[BUFSIZ];
|
||||
uid_t uid;
|
||||
gid_t gid;
|
||||
struct stat sb, tosb, fromsb;
|
||||
struct utimbuf utb;
|
||||
|
||||
program = argv[0];
|
||||
cwd = linkname = linkprefix = owner = group = 0;
|
||||
onlydir = dodir = dolink = dorelsymlink = dotimes = lplen = 0;
|
||||
|
||||
while ((opt = getopt(argc, argv, "C:DdlL:Rm:o:g:t")) != EOF) {
|
||||
switch (opt) {
|
||||
case 'C':
|
||||
cwd = optarg;
|
||||
break;
|
||||
case 'D':
|
||||
onlydir = 1;
|
||||
break;
|
||||
case 'd':
|
||||
dodir = 1;
|
||||
break;
|
||||
case 'l':
|
||||
dolink = 1;
|
||||
break;
|
||||
case 'L':
|
||||
linkprefix = optarg;
|
||||
lplen = strlen(linkprefix);
|
||||
dolink = 1;
|
||||
break;
|
||||
case 'R':
|
||||
dolink = dorelsymlink = 1;
|
||||
break;
|
||||
case 'm':
|
||||
mode = strtoul(optarg, &cp, 8);
|
||||
if (mode == 0 && cp == optarg)
|
||||
usage();
|
||||
break;
|
||||
case 'o':
|
||||
owner = optarg;
|
||||
break;
|
||||
case 'g':
|
||||
group = optarg;
|
||||
break;
|
||||
case 't':
|
||||
dotimes = 1;
|
||||
break;
|
||||
default:
|
||||
usage();
|
||||
}
|
||||
}
|
||||
|
||||
argc -= optind;
|
||||
argv += optind;
|
||||
if (argc < 2 - onlydir)
|
||||
usage();
|
||||
|
||||
todir = argv[argc-1];
|
||||
if ((stat(todir, &sb) < 0 || !S_ISDIR(sb.st_mode)) &&
|
||||
mkdirs(todir, 0777) < 0) {
|
||||
fail("cannot make directory %s", todir);
|
||||
}
|
||||
if (onlydir)
|
||||
return 0;
|
||||
|
||||
if (!cwd) {
|
||||
#ifndef NEEDS_GETCWD
|
||||
#ifndef GETCWD_CANT_MALLOC
|
||||
cwd = getcwd(0, PATH_MAX);
|
||||
#else
|
||||
cwd = malloc(PATH_MAX + 1);
|
||||
cwd = getcwd(cwd, PATH_MAX);
|
||||
#endif
|
||||
#else
|
||||
cwd = malloc(PATH_MAX + 1);
|
||||
cwd = getwd(cwd);
|
||||
#endif
|
||||
}
|
||||
|
||||
xchdir(todir);
|
||||
#ifndef NEEDS_GETCWD
|
||||
#ifndef GETCWD_CANT_MALLOC
|
||||
todir = getcwd(0, PATH_MAX);
|
||||
#else
|
||||
todir = malloc(PATH_MAX + 1);
|
||||
todir = getcwd(todir, PATH_MAX);
|
||||
#endif
|
||||
#else
|
||||
todir = malloc(PATH_MAX + 1);
|
||||
todir = getwd(todir);
|
||||
#endif
|
||||
tdlen = strlen(todir);
|
||||
xchdir(cwd);
|
||||
tdlen = strlen(todir);
|
||||
|
||||
uid = owner ? touid(owner) : (uid_t)(-1);
|
||||
gid = group ? togid(group) : (gid_t)(-1);
|
||||
|
||||
while (--argc > 0) {
|
||||
name = *argv++;
|
||||
len = strlen(name);
|
||||
base = xbasename(name);
|
||||
bnlen = strlen(base);
|
||||
toname = xmalloc((unsigned int)(tdlen + 1 + bnlen + 1));
|
||||
sprintf(toname, "%s%s%s", todir, _DIRECTORY_SEPARATOR, base);
|
||||
exists = (lstat(toname, &tosb) == 0);
|
||||
|
||||
if (dodir) {
|
||||
/* -d means create a directory, always */
|
||||
if (exists && !S_ISDIR(tosb.st_mode)) {
|
||||
(void) unlink(toname);
|
||||
exists = 0;
|
||||
}
|
||||
if (!exists && mkdir(toname, mode) < 0)
|
||||
fail("cannot make directory %s", toname);
|
||||
if ((owner || group) && chown(toname, uid, gid) < 0)
|
||||
fail("cannot change owner of %s", toname);
|
||||
} else if (dolink) {
|
||||
if (access(name, R_OK) != 0) {
|
||||
fail("cannot access %s", name);
|
||||
}
|
||||
if (*name == '/') {
|
||||
/* source is absolute pathname, link to it directly */
|
||||
linkname = 0;
|
||||
} else {
|
||||
if (linkprefix) {
|
||||
/* -L implies -l and prefixes names with a $cwd arg. */
|
||||
len += lplen + 1;
|
||||
linkname = xmalloc((unsigned int)(len + 1));
|
||||
sprintf(linkname, "%s/%s", linkprefix, name);
|
||||
} else if (dorelsymlink) {
|
||||
/* Symlink the relative path from todir to source name. */
|
||||
linkname = xmalloc(PATH_MAX);
|
||||
|
||||
if (*todir == '/') {
|
||||
/* todir is absolute: skip over common prefix. */
|
||||
lplen = relatepaths(todir, cwd, linkname);
|
||||
strcpy(linkname + lplen, name);
|
||||
} else {
|
||||
/* todir is named by a relative path: reverse it. */
|
||||
reversepath(todir, name, len, linkname);
|
||||
xchdir(cwd);
|
||||
}
|
||||
|
||||
len = strlen(linkname);
|
||||
}
|
||||
name = linkname;
|
||||
}
|
||||
|
||||
/* Check for a pre-existing symlink with identical content. */
|
||||
if ((exists && (!S_ISLNK(tosb.st_mode) ||
|
||||
readlink(toname, buf, sizeof buf) != len ||
|
||||
strncmp(buf, name, (unsigned int)len) != 0)) ||
|
||||
((stat(name, &fromsb) == 0) &&
|
||||
(fromsb.st_mtime > tosb.st_mtime))) {
|
||||
(void) (S_ISDIR(tosb.st_mode) ? rmdir : unlink)(toname);
|
||||
exists = 0;
|
||||
}
|
||||
if (!exists && symlink(name, toname) < 0)
|
||||
fail("cannot make symbolic link %s", toname);
|
||||
#ifdef HAVE_LCHOWN
|
||||
if ((owner || group) && lchown(toname, uid, gid) < 0)
|
||||
fail("cannot change owner of %s", toname);
|
||||
#endif
|
||||
|
||||
if (linkname) {
|
||||
free(linkname);
|
||||
linkname = 0;
|
||||
}
|
||||
} else {
|
||||
/* Copy from name to toname, which might be the same file. */
|
||||
if( stat(name, &sb) == 0 && S_IFDIR & sb.st_mode )
|
||||
{
|
||||
/* then is directory: must explicitly create destination dir */
|
||||
/* and manually copy files over */
|
||||
copydir( name, todir, mode, group, owner, dotimes, uid, gid );
|
||||
}
|
||||
else
|
||||
{
|
||||
copyfile(name, toname, mode, group, owner, dotimes, uid, gid);
|
||||
}
|
||||
}
|
||||
|
||||
free(toname);
|
||||
}
|
||||
|
||||
free(cwd);
|
||||
free(todir);
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,139 @@
|
|||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla 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/MPL/
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# the Mozilla Foundation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 2007
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
# Axel Hecht <axel@pike.org>
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
# This is a partial python port of nsinstall.
|
||||
# It's intended to be used when there's no natively compile nsinstall
|
||||
# available, and doesn't intend to be fully equivalent.
|
||||
# Its major use is for l10n repackaging on systems that don't have
|
||||
# a full build environment set up.
|
||||
# The basic limitation is, it doesn't even try to link and ignores
|
||||
# all related options.
|
||||
|
||||
from optparse import OptionParser
|
||||
import os
|
||||
import os.path
|
||||
import sys
|
||||
import shutil
|
||||
|
||||
usage = "usage: %prog [options] arg1 [arg2 ...] target-directory"
|
||||
p = OptionParser(usage=usage)
|
||||
|
||||
p.add_option('-D', action="store_true",
|
||||
help="Create a single directory only")
|
||||
p.add_option('-t', action="store_true",
|
||||
help="Preserve time stamp")
|
||||
p.add_option('-m', action="store",
|
||||
help="Set mode", metavar="mode")
|
||||
p.add_option('-d', action="store_true",
|
||||
help="Create directories in target")
|
||||
p.add_option('-R', action="store_true",
|
||||
help="Use relative symbolic links (ignored)")
|
||||
p.add_option('-l', action="store_true",
|
||||
help="Create link (ignored)")
|
||||
p.add_option('-L', action="store", metavar="linkprefix",
|
||||
help="Link prefix (ignored)")
|
||||
|
||||
# The remaining arguments are not used in our tree, thus they're not
|
||||
# implented.
|
||||
def BadArg(option, opt, value, parser):
|
||||
parser.error('option not supported: %s' % opt)
|
||||
|
||||
p.add_option('-C', action="callback", metavar="CWD",
|
||||
callback=BadArg,
|
||||
help="NOT SUPPORTED")
|
||||
p.add_option('-o', action="callback", callback=BadArg,
|
||||
help="Set owner (NOT SUPPORTED)", metavar="owner")
|
||||
p.add_option('-g', action="callback", callback=BadArg,
|
||||
help="Set group (NOT SUPPORTED)", metavar="group")
|
||||
|
||||
(options, args) = p.parse_args()
|
||||
|
||||
if options.m:
|
||||
# mode is specified
|
||||
try:
|
||||
options.m = int(options.m, 8)
|
||||
except:
|
||||
sys.stderr.write('nsinstall: ' + options.m + ' is not a valid mode\n')
|
||||
sys.exit(1)
|
||||
|
||||
# just create one directory?
|
||||
if options.D:
|
||||
if len(args) != 1:
|
||||
sys.exit(1)
|
||||
if os.path.exists(args[0]):
|
||||
if not os.path.isdir(args[0]):
|
||||
sys.stderr.write('nsinstall: ' + args[0] + ' is not a directory\n')
|
||||
sys.exit(1)
|
||||
if options.m:
|
||||
os.chmod(args[0], options.m)
|
||||
sys.exit()
|
||||
if options.m:
|
||||
os.makedirs(args[0], options.m)
|
||||
else:
|
||||
os.makedirs(args[0])
|
||||
sys.exit()
|
||||
|
||||
# nsinstall arg1 [...] directory
|
||||
if len(args) < 2:
|
||||
p.error('not enough arguments')
|
||||
|
||||
# set up handler
|
||||
if options.d:
|
||||
# we're supposed to create directories
|
||||
def handleTarget(srcpath, targetpath):
|
||||
# target directory was already created, just use mkdir
|
||||
os.mkdir(dest)
|
||||
else:
|
||||
# we're supposed to copy files
|
||||
def handleTarget(srcpath, targetpath):
|
||||
if options.t:
|
||||
shutil.copy2(srcpath, targetpath)
|
||||
else:
|
||||
shutil.copy(srcpath, targetpath)
|
||||
|
||||
# the last argument is the target directory
|
||||
target = args.pop()
|
||||
# ensure target directory
|
||||
if not os.path.isdir(target):
|
||||
os.makedirs(target)
|
||||
|
||||
for f in args:
|
||||
dest = os.path.join(target,
|
||||
os.path.basename(os.path.normpath(f)))
|
||||
handleTarget(f, dest)
|
||||
if options.m:
|
||||
os.chmod(dest, options.m)
|
|
@ -0,0 +1,247 @@
|
|||
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla 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/MPL/
|
||||
*
|
||||
* 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 the Initial Developer are Copyright (C) 1998
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
* or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
/*
|
||||
** Pathname subroutines.
|
||||
**
|
||||
** Brendan Eich, 8/29/95
|
||||
*/
|
||||
#include <assert.h>
|
||||
#include <sys/types.h>
|
||||
#include <dirent.h>
|
||||
#include <errno.h>
|
||||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/stat.h>
|
||||
#include "pathsub.h"
|
||||
|
||||
#ifdef USE_REENTRANT_LIBC
|
||||
#include <libc_r.h>
|
||||
#endif
|
||||
|
||||
#ifdef SUNOS4
|
||||
#include "sunos4.h"
|
||||
#endif
|
||||
|
||||
#ifndef D_INO
|
||||
#define D_INO d_ino
|
||||
#endif
|
||||
|
||||
char *program;
|
||||
|
||||
void
|
||||
fail(char *format, ...)
|
||||
{
|
||||
int error;
|
||||
va_list ap;
|
||||
|
||||
#ifdef USE_REENTRANT_LIBC
|
||||
R_STRERROR_INIT_R();
|
||||
#endif
|
||||
|
||||
error = errno;
|
||||
fprintf(stderr, "%s: ", program);
|
||||
va_start(ap, format);
|
||||
vfprintf(stderr, format, ap);
|
||||
va_end(ap);
|
||||
if (error) {
|
||||
|
||||
#ifdef USE_REENTRANT_LIBC
|
||||
R_STRERROR_R(errno);
|
||||
fprintf(stderr, ": %s", r_strerror_r);
|
||||
#else
|
||||
fprintf(stderr, ": %s", strerror(errno));
|
||||
#endif
|
||||
}
|
||||
|
||||
putc('\n', stderr);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
char *
|
||||
getcomponent(char *path, char *name)
|
||||
{
|
||||
if (*path == '\0')
|
||||
return 0;
|
||||
if (*path == '/') {
|
||||
*name++ = '/';
|
||||
} else {
|
||||
do {
|
||||
*name++ = *path++;
|
||||
} while (*path != '/' && *path != '\0');
|
||||
}
|
||||
*name = '\0';
|
||||
while (*path == '/')
|
||||
path++;
|
||||
return path;
|
||||
}
|
||||
|
||||
#ifdef LAME_READDIR
|
||||
#include <sys/param.h>
|
||||
/*
|
||||
** The static buffer in Unixware's readdir is too small.
|
||||
*/
|
||||
struct dirent *readdir(DIR *d)
|
||||
{
|
||||
static struct dirent *buf = NULL;
|
||||
|
||||
if(buf == NULL)
|
||||
buf = (struct dirent *) malloc(sizeof(struct dirent) + MAXPATHLEN);
|
||||
return(readdir_r(d, buf));
|
||||
}
|
||||
#endif
|
||||
|
||||
char *
|
||||
ino2name(ino_t ino, char *dir)
|
||||
{
|
||||
DIR *dp;
|
||||
struct dirent *ep;
|
||||
char *name;
|
||||
|
||||
dp = opendir("..");
|
||||
if (!dp)
|
||||
fail("cannot read parent directory");
|
||||
for (;;) {
|
||||
if (!(ep = readdir(dp)))
|
||||
fail("cannot find current directory");
|
||||
if (ep->D_INO == ino)
|
||||
break;
|
||||
}
|
||||
name = xstrdup(ep->d_name);
|
||||
closedir(dp);
|
||||
return name;
|
||||
}
|
||||
|
||||
void *
|
||||
xmalloc(size_t size)
|
||||
{
|
||||
void *p = malloc(size);
|
||||
if (!p)
|
||||
fail("cannot allocate %u bytes", size);
|
||||
return p;
|
||||
}
|
||||
|
||||
char *
|
||||
xstrdup(char *s)
|
||||
{
|
||||
return strcpy(xmalloc(strlen(s) + 1), s);
|
||||
}
|
||||
|
||||
char *
|
||||
xbasename(char *path)
|
||||
{
|
||||
char *cp;
|
||||
|
||||
while ((cp = strrchr(path, '/')) && cp[1] == '\0')
|
||||
*cp = '\0';
|
||||
if (!cp) return path;
|
||||
return cp + 1;
|
||||
}
|
||||
|
||||
void
|
||||
xchdir(char *dir)
|
||||
{
|
||||
if (chdir(dir) < 0)
|
||||
fail("cannot change directory to %s", dir);
|
||||
}
|
||||
|
||||
int
|
||||
relatepaths(char *from, char *to, char *outpath)
|
||||
{
|
||||
char *cp, *cp2;
|
||||
int len;
|
||||
char buf[NAME_MAX];
|
||||
|
||||
assert(*from == '/' && *to == '/');
|
||||
for (cp = to, cp2 = from; *cp == *cp2; cp++, cp2++)
|
||||
if (*cp == '\0')
|
||||
break;
|
||||
while (cp[-1] != '/')
|
||||
cp--, cp2--;
|
||||
if (cp - 1 == to) {
|
||||
/* closest common ancestor is /, so use full pathname */
|
||||
len = strlen(strcpy(outpath, to));
|
||||
if (outpath[len] != '/') {
|
||||
outpath[len++] = '/';
|
||||
outpath[len] = '\0';
|
||||
}
|
||||
} else {
|
||||
len = 0;
|
||||
while ((cp2 = getcomponent(cp2, buf)) != 0) {
|
||||
strcpy(outpath + len, "../");
|
||||
len += 3;
|
||||
}
|
||||
while ((cp = getcomponent(cp, buf)) != 0) {
|
||||
sprintf(outpath + len, "%s/", buf);
|
||||
len += strlen(outpath + len);
|
||||
}
|
||||
}
|
||||
return len;
|
||||
}
|
||||
|
||||
void
|
||||
reversepath(char *inpath, char *name, int len, char *outpath)
|
||||
{
|
||||
char *cp, *cp2;
|
||||
char buf[NAME_MAX];
|
||||
struct stat sb;
|
||||
|
||||
cp = strcpy(outpath + PATH_MAX - (len + 1), name);
|
||||
cp2 = inpath;
|
||||
while ((cp2 = getcomponent(cp2, buf)) != 0) {
|
||||
if (strcmp(buf, ".") == 0)
|
||||
continue;
|
||||
if (strcmp(buf, "..") == 0) {
|
||||
if (stat(".", &sb) < 0)
|
||||
fail("cannot stat current directory");
|
||||
name = ino2name(sb.st_ino, "..");
|
||||
len = strlen(name);
|
||||
cp -= len + 1;
|
||||
strcpy(cp, name);
|
||||
cp[len] = '/';
|
||||
free(name);
|
||||
xchdir("..");
|
||||
} else {
|
||||
cp -= 3;
|
||||
strncpy(cp, "../", 3);
|
||||
xchdir(buf);
|
||||
}
|
||||
}
|
||||
strcpy(outpath, cp);
|
||||
}
|
|
@ -0,0 +1,74 @@
|
|||
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla 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/MPL/
|
||||
*
|
||||
* 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 the Initial Developer are Copyright (C) 1998
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
* or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#ifndef pathsub_h___
|
||||
#define pathsub_h___
|
||||
/*
|
||||
** Pathname subroutines.
|
||||
**
|
||||
** Brendan Eich, 8/29/95
|
||||
*/
|
||||
#include <limits.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
#ifndef PATH_MAX
|
||||
#define PATH_MAX 1024
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Just prevent stupidity
|
||||
*/
|
||||
#undef NAME_MAX
|
||||
#define NAME_MAX 256
|
||||
|
||||
extern char *program;
|
||||
|
||||
extern void fail(char *format, ...);
|
||||
extern char *getcomponent(char *path, char *name);
|
||||
extern char *ino2name(ino_t ino, char *dir);
|
||||
extern void *xmalloc(size_t size);
|
||||
extern char *xstrdup(char *s);
|
||||
extern char *xbasename(char *path);
|
||||
extern void xchdir(char *dir);
|
||||
|
||||
/* Relate absolute pathnames from and to returning the result in outpath. */
|
||||
extern int relatepaths(char *from, char *to, char *outpath);
|
||||
|
||||
/* XXX changes current working directory -- caveat emptor */
|
||||
extern void reversepath(char *inpath, char *name, int len, char *outpath);
|
||||
|
||||
#endif /* pathsub_h___ */
|
|
@ -0,0 +1,671 @@
|
|||
#!/usr/bin/perl -w
|
||||
# -*- Mode: perl; tab-width: 4; indent-tabs-mode: nil; -*-
|
||||
#
|
||||
# Preprocessor
|
||||
# Version 1.1
|
||||
#
|
||||
# Copyright (c) 2002, 2003, 2004 by Ian Hickson
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
# Thanks to bryner and bsmedberg for suggestions.
|
||||
# Thanks to jon rekai for a patch to not require File::Spec 0.8.
|
||||
|
||||
use strict;
|
||||
|
||||
# takes as arguments the files to process
|
||||
# defaults to stdin
|
||||
# output to stdout
|
||||
|
||||
my $stack = new stack;
|
||||
my $marker = '#';
|
||||
|
||||
# command line arguments
|
||||
my @includes;
|
||||
while ($_ = $ARGV[0], defined($_) && /^-./) {
|
||||
shift;
|
||||
last if /^--$/os;
|
||||
if (/^-D(.*)$/os) {
|
||||
for ($1) {
|
||||
if (/^([\w\.]+)=(.*)$/os) {
|
||||
$stack->define($1, $2);
|
||||
} elsif (/^([\w\.]+)$/os) {
|
||||
$stack->define($1, 1);
|
||||
} else {
|
||||
die "$0: invalid argument to -D: $_\n";
|
||||
}
|
||||
}
|
||||
} elsif (/^-F(.*)$/os) {
|
||||
for ($1) {
|
||||
if (/^(\w+)$/os) {
|
||||
$stack->filter($1, 1);
|
||||
} else {
|
||||
die "$0: invalid argument to -F: $_\n";
|
||||
}
|
||||
}
|
||||
} elsif (/^-I(.*)$/os) {
|
||||
push(@includes, $1);
|
||||
} elsif (/^-E$/os) {
|
||||
foreach (keys %ENV) {
|
||||
# define all variables that have valid names
|
||||
$stack->define($_, $ENV{$_}) unless m/\W/;
|
||||
}
|
||||
} elsif (/^-d$/os) {
|
||||
$stack->{'dependencies'} = 1;
|
||||
} elsif (/^--line-endings=crlf$/os) {
|
||||
$stack->{'lineEndings'} = "\x0D\x0A";
|
||||
} elsif (/^--line-endings=cr$/os) {
|
||||
$stack->{'lineEndings'} = "\x0D";
|
||||
} elsif (/^--line-endings=lf$/os) {
|
||||
$stack->{'lineEndings'} = "\x0A";
|
||||
} elsif (/^--line-endings=(.+)$/os) {
|
||||
die "$0: unrecognised line ending: $1\n";
|
||||
} elsif (/^--marker=(.)$/os) {
|
||||
$marker = $1;
|
||||
} else {
|
||||
die "$0: invalid argument: $_\n";
|
||||
}
|
||||
}
|
||||
unshift(@ARGV, '-') unless @ARGV;
|
||||
unshift(@ARGV, @includes);
|
||||
|
||||
# do the work
|
||||
foreach (@ARGV) { include($stack, $_); }
|
||||
exit(0);
|
||||
|
||||
########################################################################
|
||||
|
||||
package main;
|
||||
use File::Spec;
|
||||
use File::Spec::Unix; # on all platforms, because the #include syntax is unix-based
|
||||
|
||||
# Note: Ideally we would use File::Spec 0.8. When this becomes
|
||||
# possible, add "0.8" to the first "use" line above, then replace
|
||||
# occurrences of "::_0_8::" with "->" below. And remove the code for
|
||||
# File::Spec 0.8 much lower down the file.
|
||||
|
||||
sub include {
|
||||
my($stack, $filename) = @_;
|
||||
my $directory = $stack->{'variables'}->{'DIRECTORY'};
|
||||
if ($filename ne '-') {
|
||||
$filename = File::Spec::_0_8::rel2abs($filename, $directory);
|
||||
# splitpath expects forward-slash paths on windows, so we have to
|
||||
# change the slashes if using Activestate Perl.
|
||||
$filename =~ s?\\?/?g if "$^O" eq "MSWin32";
|
||||
my($volume, $path) = File::Spec::_0_8::splitpath($filename);
|
||||
$directory = File::Spec::_0_8::catpath($volume, $path, '');
|
||||
}
|
||||
local $stack->{'variables'}->{'DIRECTORY'} = $directory;
|
||||
local $stack->{'variables'}->{'FILE'} = $filename;
|
||||
local $stack->{'variables'}->{'LINE'} = 0;
|
||||
local *FILE;
|
||||
open(FILE, $filename) or die "Couldn't open $filename: $!\n";
|
||||
my $lineout = 0;
|
||||
while (<FILE>) {
|
||||
# on cygwin, line endings are screwed up, so normalise them.
|
||||
s/[\x0D\x0A]+$/\n/os if ($^O eq 'msys' || $^O eq 'cygwin' || "$^O" eq "MSWin32");
|
||||
$stack->newline;
|
||||
if (/^\Q$marker\E([a-z]+)\n?$/os) { # argumentless processing instruction
|
||||
process($stack, $1);
|
||||
} elsif (/^\Q$marker\E([a-z]+)\s(.*?)\n?$/os) { # processing instruction with arguments
|
||||
process($stack, $1, $2);
|
||||
} elsif (/^\Q$marker\E/os) { # comment
|
||||
# ignore it
|
||||
} elsif ($stack->enabled) {
|
||||
next if $stack->{'dependencies'};
|
||||
|
||||
# set the current line number in JavaScript if necessary
|
||||
my $linein = $stack->{'variables'}->{'LINE'};
|
||||
if (++$lineout != $linein) {
|
||||
if ($filename =~ /\.js(|\.in)$/o) {
|
||||
$stack->print("//\@line $linein \"$filename\"\n")
|
||||
}
|
||||
$lineout = $linein;
|
||||
}
|
||||
|
||||
# print it, including any newlines
|
||||
$stack->print(filtered($stack, $_));
|
||||
}
|
||||
}
|
||||
close(FILE);
|
||||
}
|
||||
|
||||
sub process {
|
||||
my($stack, $instruction, @arguments) = @_;
|
||||
my $method = 'preprocessor'->can($instruction);
|
||||
if (not defined($method)) {
|
||||
fatal($stack, 'unknown instruction', $instruction);
|
||||
}
|
||||
eval { &$method($stack, @arguments) };
|
||||
if ($@) {
|
||||
fatal($stack, "error evaluating $instruction:", $@);
|
||||
}
|
||||
}
|
||||
|
||||
sub filtered {
|
||||
my($stack, $text) = @_;
|
||||
foreach my $filter (sort keys %{$stack->{'filters'}}) {
|
||||
next unless $stack->{'filters'}->{$filter};
|
||||
my $method = 'filter'->can($filter);
|
||||
if (not defined($method)) {
|
||||
fatal($stack, 'unknown filter', $filter);
|
||||
}
|
||||
$text = eval { &$method($stack, $text) };
|
||||
if ($@) {
|
||||
fatal($stack, "error using $filter:", $@);
|
||||
}
|
||||
}
|
||||
return $text;
|
||||
}
|
||||
|
||||
sub fatal {
|
||||
my $stack = shift;
|
||||
my $filename = $stack->{'variables'}->{'FILE'};
|
||||
local $" = ' ';
|
||||
print STDERR "$0:$filename:$.: @_\n";
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
||||
########################################################################
|
||||
|
||||
package stack;
|
||||
|
||||
# condition evaluated just prior to this context was false
|
||||
use constant COND_FALSE => 0;
|
||||
|
||||
# condition evaluated just prior to this context was true
|
||||
use constant COND_TRUE => 1;
|
||||
|
||||
# some prior condition at this level already evaluated to true (or a
|
||||
# parent condition evaluated to false or must be ignored), so we're
|
||||
# ignoring all remaining conditions at current level (and nested
|
||||
# conditions, too)
|
||||
use constant COND_COMPLETED => 2;
|
||||
|
||||
sub new {
|
||||
return bless {
|
||||
'variables' => {
|
||||
# %ENV,
|
||||
'LINE' => 0, # the line number in the source file
|
||||
'DIRECTORY' => '', # current directory
|
||||
'FILE' => '', # source filename
|
||||
'1' => 1, # for convenience (the constant '1' is thus true)
|
||||
},
|
||||
'filters' => {
|
||||
# filters
|
||||
},
|
||||
'values' => [], # the value of the last condition evaluated at the nth level
|
||||
'lastConditionState' => [], # whether the condition in the nth-level context was true, false, or not applicable
|
||||
'conditionState' => COND_TRUE,
|
||||
'dependencies' => 0, # whether we are showing dependencies
|
||||
'lineEndings' => "\n", # default to platform conventions
|
||||
};
|
||||
}
|
||||
|
||||
sub newline {
|
||||
my $self = shift;
|
||||
$self->{'variables'}->{'LINE'}++;
|
||||
}
|
||||
|
||||
sub define {
|
||||
my $self = shift;
|
||||
my($variable, $value) = @_;
|
||||
die "not a valid variable name: '$variable'\n" if $variable =~ m/[^\w\.]/;
|
||||
$self->{'variables'}->{$variable} = $value;
|
||||
}
|
||||
|
||||
sub defined {
|
||||
my $self = shift;
|
||||
my($variable) = @_;
|
||||
die "not a valid variable name: '$variable'\n" if $variable =~ m/[^\w\.]/;
|
||||
return defined($self->{'variables'}->{$variable});
|
||||
}
|
||||
|
||||
sub undefine {
|
||||
my $self = shift;
|
||||
my($variable) = @_;
|
||||
die "not a valid variable name: '$variable'\n" if $variable =~ m/[^\w\.]/;
|
||||
delete($self->{'variables'}->{$variable});
|
||||
}
|
||||
|
||||
sub get {
|
||||
my $self = shift;
|
||||
my($variable, $required) = @_;
|
||||
die "not a valid variable name: '$variable'\n" if $variable =~ m/[^\w\.]/;
|
||||
my $value = $self->{'variables'}->{$variable};
|
||||
if (defined($value)) {
|
||||
return $value;
|
||||
} else {
|
||||
die "variable '$variable' is not defined\n" if $required;
|
||||
return '';
|
||||
}
|
||||
}
|
||||
|
||||
sub replace {
|
||||
my $self = shift;
|
||||
my ($value) = @_;
|
||||
|
||||
${$self->{'values'}}[-1] = $value;
|
||||
$self->{'conditionState'} = $self->{'conditionState'} != COND_FALSE
|
||||
? COND_COMPLETED
|
||||
: $value ? COND_TRUE : COND_FALSE;
|
||||
}
|
||||
|
||||
sub push {
|
||||
my $self = shift;
|
||||
my($value) = @_;
|
||||
|
||||
push(@{$self->{'values'}}, $value);
|
||||
my $lastCondition = $self->{'conditionState'};
|
||||
push(@{$self->{'lastConditionState'}}, $lastCondition);
|
||||
$self->{'conditionState'} = $lastCondition != COND_TRUE
|
||||
? COND_COMPLETED
|
||||
: $value ? COND_TRUE : COND_FALSE;
|
||||
}
|
||||
|
||||
sub pop {
|
||||
my $self = shift;
|
||||
$self->{'conditionState'} = pop(@{$self->{'lastConditionState'}});
|
||||
return pop(@{$self->{'values'}});
|
||||
}
|
||||
|
||||
sub enabled {
|
||||
my $self = shift;
|
||||
return $self->{'conditionState'} == COND_TRUE;
|
||||
}
|
||||
|
||||
sub disabled {
|
||||
my $self = shift;
|
||||
return $self->{'conditionState'} != COND_TRUE;
|
||||
}
|
||||
|
||||
sub filter {
|
||||
my $self = shift;
|
||||
my($filter, $value) = @_;
|
||||
die "not a valid filter name: '$filter'\n" if $filter =~ m/\W/;
|
||||
$self->{'filters'}->{$filter} = $value;
|
||||
}
|
||||
|
||||
sub expand {
|
||||
my $self = shift;
|
||||
my($line) = @_;
|
||||
$line =~ s/__(\w+)__/$self->get($1)/gose;
|
||||
return $line;
|
||||
}
|
||||
|
||||
sub print {
|
||||
my $self = shift;
|
||||
return if $self->{'dependencies'};
|
||||
foreach my $line (@_) {
|
||||
if (chomp $line) {
|
||||
CORE::print("$line$self->{'lineEndings'}");
|
||||
} else {
|
||||
CORE::print($line);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sub visit {
|
||||
my $self = shift;
|
||||
my($filename) = @_;
|
||||
my $directory = $stack->{'variables'}->{'DIRECTORY'};
|
||||
$filename = File::Spec::_0_8::abs2rel(File::Spec::_0_8::rel2abs($filename, $directory));
|
||||
CORE::print("$filename\n");
|
||||
}
|
||||
|
||||
########################################################################
|
||||
|
||||
package preprocessor;
|
||||
|
||||
sub define {
|
||||
my $stack = shift;
|
||||
return if $stack->disabled;
|
||||
die "argument expected\n" unless @_;
|
||||
my $argument = shift;
|
||||
for ($argument) {
|
||||
/^(\w+)\s(.*)$/os && do {
|
||||
return $stack->define($1, $2);
|
||||
};
|
||||
/^(\w+)$/os && do {
|
||||
return $stack->define($1, 1);
|
||||
};
|
||||
die "invalid argument: '$_'\n";
|
||||
}
|
||||
}
|
||||
|
||||
sub undef {
|
||||
my $stack = shift;
|
||||
return if $stack->disabled;
|
||||
die "argument expected\n" unless @_;
|
||||
$stack->undefine(@_);
|
||||
}
|
||||
|
||||
sub ifdef {
|
||||
my $stack = shift;
|
||||
my $variable = shift;
|
||||
my $replace = defined(shift);
|
||||
die "argument expected\n" unless defined($variable);
|
||||
if ($replace) {
|
||||
$stack->replace($stack->defined($variable));
|
||||
} else {
|
||||
$stack->push($stack->defined($variable));
|
||||
}
|
||||
}
|
||||
|
||||
sub ifndef {
|
||||
my $stack = shift;
|
||||
my $variable = shift;
|
||||
my $replace = defined(shift);
|
||||
die "argument expected\n" unless defined($variable);
|
||||
if ($replace) {
|
||||
$stack->replace(not $stack->defined($variable));
|
||||
} else {
|
||||
$stack->push(not $stack->defined($variable));
|
||||
}
|
||||
}
|
||||
|
||||
sub if {
|
||||
my $stack = shift;
|
||||
die "argument expected\n" unless @_;
|
||||
my $argument = shift;
|
||||
my $replace = defined(shift);
|
||||
for ($argument) {
|
||||
/^(\w+)==(.*)$/os && do {
|
||||
# equality
|
||||
if ($replace) {
|
||||
return $stack->replace($stack->get($1) eq $2);
|
||||
} else {
|
||||
return $stack->push($stack->get($1) eq $2);
|
||||
}
|
||||
};
|
||||
/^(\w+)!=(.*)$/os && do {
|
||||
# inequality
|
||||
if ($replace) {
|
||||
return $stack->replace($stack->get($1) ne $2);
|
||||
} else {
|
||||
return $stack->push($stack->get($1) ne $2);
|
||||
}
|
||||
};
|
||||
/^(\w+)$/os && do {
|
||||
# true value
|
||||
if ($replace) {
|
||||
return $stack->replace($stack->get($1));
|
||||
} else {
|
||||
return $stack->push($stack->get($1));
|
||||
}
|
||||
};
|
||||
/^!(\w+)$/os && do {
|
||||
# false value
|
||||
if ($replace) {
|
||||
return $stack->replace(not $stack->get($1));
|
||||
} else {
|
||||
return $stack->push(not $stack->get($1));
|
||||
}
|
||||
};
|
||||
die "invalid argument: '$_'\n";
|
||||
}
|
||||
}
|
||||
|
||||
sub else {
|
||||
my $stack = shift;
|
||||
die "argument unexpected\n" if @_;
|
||||
$stack->replace(1);
|
||||
}
|
||||
|
||||
sub elif {
|
||||
my $stack = shift;
|
||||
die "argument expected\n" unless @_;
|
||||
&if($stack, @_, 1);
|
||||
}
|
||||
|
||||
sub elifdef {
|
||||
my $stack = shift;
|
||||
die "argument expected\n" unless @_;
|
||||
&ifdef($stack, @_, 1);
|
||||
}
|
||||
|
||||
sub elifndef {
|
||||
my $stack = shift;
|
||||
die "argument expected\n" unless @_;
|
||||
&ifndef($stack, @_, 1);
|
||||
}
|
||||
|
||||
sub endif {
|
||||
my $stack = shift;
|
||||
die "argument unexpected\n" if @_;
|
||||
$stack->pop;
|
||||
}
|
||||
|
||||
sub error {
|
||||
my $stack = shift;
|
||||
return if $stack->disabled;
|
||||
die "argument expected\n" unless @_;
|
||||
my $line = $stack->expand(@_);
|
||||
die "$line\n";
|
||||
}
|
||||
|
||||
sub expand {
|
||||
my $stack = shift;
|
||||
return if $stack->disabled;
|
||||
die "argument expected\n" unless @_;
|
||||
my $line = $stack->expand(@_);
|
||||
$stack->print("$line\n");
|
||||
}
|
||||
|
||||
sub literal {
|
||||
my $stack = shift;
|
||||
return if $stack->disabled;
|
||||
die "argument expected\n" unless @_;
|
||||
my $line = shift;
|
||||
$stack->print("$line\n");
|
||||
}
|
||||
|
||||
sub include {
|
||||
my $stack = shift;
|
||||
return if $stack->disabled;
|
||||
die "argument expected\n" unless @_;
|
||||
my $filename = File::Spec::_0_8::catpath(File::Spec::_0_8::splitpath(@_));
|
||||
if ($stack->{'dependencies'}) {
|
||||
$stack->visit($filename);
|
||||
} else {
|
||||
main::include($stack, $filename);
|
||||
}
|
||||
}
|
||||
|
||||
sub includesubst {
|
||||
my ($stack, $filename) = @_;
|
||||
return if $stack->disabled;
|
||||
die "argument expected\n" unless $filename;
|
||||
$filename =~ s/@(\w+)@/$stack->get($1, 1)/gose;
|
||||
$filename = File::Spec::_0_8::catpath(File::Spec::_0_8::splitpath($filename));
|
||||
if ($stack->{'dependencies'}) {
|
||||
$stack->visit($filename);
|
||||
} else {
|
||||
main::include($stack, $filename);
|
||||
}
|
||||
}
|
||||
|
||||
sub filter {
|
||||
my $stack = shift;
|
||||
return if $stack->disabled;
|
||||
die "argument expected\n" unless @_;
|
||||
foreach (split(/\s/os, shift)) {
|
||||
$stack->filter($_, 1);
|
||||
}
|
||||
}
|
||||
|
||||
sub unfilter {
|
||||
my $stack = shift;
|
||||
return if $stack->disabled;
|
||||
die "argument expected\n" unless @_;
|
||||
foreach (split(/\s/os, shift)) {
|
||||
$stack->filter($_, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
########################################################################
|
||||
|
||||
package filter;
|
||||
|
||||
sub emptyLines {
|
||||
my($stack, $text) = @_;
|
||||
$text = "" if $text eq "\n";
|
||||
return $text;
|
||||
}
|
||||
|
||||
sub spaces {
|
||||
my($stack, $text) = @_;
|
||||
$text =~ s/ +/ /gos; # middle spaces
|
||||
$text =~ s/^ //gos; # start spaces
|
||||
$text =~ s/ (\n?)$/$1/gos; # end spaces
|
||||
return $text;
|
||||
}
|
||||
|
||||
sub slashslash {
|
||||
my($stack, $text) = @_;
|
||||
$text =~ s|//.*?(\n?)$|$1|gos;
|
||||
return $text;
|
||||
}
|
||||
|
||||
sub substitution {
|
||||
my($stack, $text) = @_;
|
||||
$text =~ s/@(\w+)@/$stack->get($1, 1)/gose;
|
||||
return $text;
|
||||
}
|
||||
|
||||
sub attemptSubstitution {
|
||||
my($stack, $text) = @_;
|
||||
$text =~ s/@(\w+)@/$stack->get($1, 0)/gose;
|
||||
return $text;
|
||||
}
|
||||
|
||||
########################################################################
|
||||
|
||||
########################################################################
|
||||
# This code is from File::Spec::Unix 0.8.
|
||||
# It is not considered a part of the preprocessor.pl source file
|
||||
# This code is licensed under the same license as File::Spec itself.
|
||||
|
||||
package File::Spec::_0_8;
|
||||
|
||||
use Cwd;
|
||||
|
||||
sub rel2abs {
|
||||
my ($path, $base) = @_;
|
||||
if ( ! File::Spec->file_name_is_absolute( $path ) ) {
|
||||
if ( !defined( $base ) || $base eq '' ) {
|
||||
$base = cwd() ;
|
||||
} elsif ( ! File::Spec->file_name_is_absolute( $base ) ) {
|
||||
$base = rel2abs( $base );
|
||||
} else {
|
||||
$base = File::Spec->canonpath( $base );
|
||||
}
|
||||
$path = File::Spec->catdir( $base, $path );
|
||||
}
|
||||
return File::Spec->canonpath( $path );
|
||||
}
|
||||
|
||||
sub splitdir {
|
||||
return split m|/|, $_[1], -1; # Preserve trailing fields
|
||||
}
|
||||
|
||||
sub splitpath {
|
||||
my ($path, $nofile) = @_;
|
||||
|
||||
my ($volume,$directory,$file) = ('','','');
|
||||
|
||||
if ( $nofile ) {
|
||||
$directory = $path;
|
||||
}
|
||||
else {
|
||||
$path =~ m|^ ( (?: .* / (?: \.\.?\Z(?!\n) )? )? ) ([^/]*) |xs;
|
||||
$directory = $1;
|
||||
$file = $2;
|
||||
}
|
||||
|
||||
return ($volume,$directory,$file);
|
||||
}
|
||||
|
||||
sub catpath {
|
||||
my ($volume,$directory,$file) = @_;
|
||||
|
||||
if ( $directory ne '' &&
|
||||
$file ne '' &&
|
||||
substr( $directory, -1 ) ne '/' &&
|
||||
substr( $file, 0, 1 ) ne '/'
|
||||
) {
|
||||
$directory .= "/$file" ;
|
||||
}
|
||||
else {
|
||||
$directory .= $file ;
|
||||
}
|
||||
|
||||
return $directory ;
|
||||
}
|
||||
|
||||
sub abs2rel {
|
||||
my($path,$base) = @_;
|
||||
|
||||
# Clean up $path
|
||||
if ( ! File::Spec->file_name_is_absolute( $path ) ) {
|
||||
$path = rel2abs( $path ) ;
|
||||
}
|
||||
else {
|
||||
$path = File::Spec->canonpath( $path ) ;
|
||||
}
|
||||
|
||||
# Figure out the effective $base and clean it up.
|
||||
if ( !defined( $base ) || $base eq '' ) {
|
||||
$base = cwd();
|
||||
}
|
||||
elsif ( ! File::Spec->file_name_is_absolute( $base ) ) {
|
||||
$base = rel2abs( $base ) ;
|
||||
}
|
||||
else {
|
||||
$base = File::Spec->canonpath( $base ) ;
|
||||
}
|
||||
|
||||
# Now, remove all leading components that are the same
|
||||
my @pathchunks = File::Spec::_0_8::splitdir( $path);
|
||||
my @basechunks = File::Spec::_0_8::splitdir( $base);
|
||||
|
||||
while (@pathchunks && @basechunks && $pathchunks[0] eq $basechunks[0]) {
|
||||
shift @pathchunks ;
|
||||
shift @basechunks ;
|
||||
}
|
||||
|
||||
$path = CORE::join( '/', @pathchunks );
|
||||
$base = CORE::join( '/', @basechunks );
|
||||
|
||||
# $base now contains the directories the resulting relative path
|
||||
# must ascend out of before it can descend to $path_directory. So,
|
||||
# replace all names with $parentDir
|
||||
$base =~ s|[^/]+|..|g ;
|
||||
|
||||
# Glue the two together, using a separator if necessary, and preventing an
|
||||
# empty result.
|
||||
if ( $path ne '' && $base ne '' ) {
|
||||
$path = "$base/$path" ;
|
||||
} else {
|
||||
$path = "$base$path" ;
|
||||
}
|
||||
|
||||
return File::Spec->canonpath( $path ) ;
|
||||
}
|
||||
|
||||
# End code from File::Spec::Unix 0.8.
|
||||
########################################################################
|
|
@ -1,4 +1,4 @@
|
|||
# -*- Mode: makefile -*-
|
||||
#! perl
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
|
@ -13,8 +13,7 @@
|
|||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is Mozilla Communicator client code, released
|
||||
# March 31, 1998.
|
||||
# The Original Code is mozilla.org code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
|
@ -24,8 +23,8 @@
|
|||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
|
@ -37,8 +36,13 @@
|
|||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config stuff for IRIX5.3
|
||||
#
|
||||
require "/ns/config/fastcwd.pl";
|
||||
|
||||
include $(DEPTH)/config/IRIX.mk
|
||||
$cur = &fastcwd;
|
||||
chdir($ARGV[0]);
|
||||
$newcur = &fastcwd;
|
||||
$newcurlen = length($newcur);
|
||||
|
||||
# Skip common separating / unless $newcur is "/"
|
||||
$cur = substr($cur, $newcurlen + ($newcurlen > 1));
|
||||
print $cur;
|
|
@ -1,4 +1,4 @@
|
|||
# -*- Mode: makefile -*-
|
||||
#! perl
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
|
@ -13,8 +13,7 @@
|
|||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is Mozilla Communicator client code, released
|
||||
# March 31, 1998.
|
||||
# The Original Code is mozilla.org code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
|
@ -24,8 +23,8 @@
|
|||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
|
@ -37,8 +36,16 @@
|
|||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config stuff for IRIX6.3
|
||||
#
|
||||
unshift(@INC, '/usr/lib/perl');
|
||||
unshift(@INC, '/usr/local/lib/perl');
|
||||
|
||||
include $(DEPTH)/config/IRIX.mk
|
||||
require "fastcwd.pl";
|
||||
|
||||
$cur = &fastcwd;
|
||||
chdir($ARGV[0]);
|
||||
$newcur = &fastcwd;
|
||||
$newcurlen = length($newcur);
|
||||
|
||||
# Skip common separating / unless $newcur is "/"
|
||||
$cur = substr($cur, $newcurlen + ($newcurlen > 1));
|
||||
print $cur;
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -1,5 +1,3 @@
|
|||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
|
@ -13,12 +11,10 @@
|
|||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is Mozilla Communicator client code, released
|
||||
# March 31, 1998.
|
||||
# The Original Code is the Win32 Version System.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# The Initial Developer of the Original Code is Netscape Communications Corporation
|
||||
# Portions created by the Initial Developer are Copyright (C) 2002
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
|
@ -37,56 +33,53 @@
|
|||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config stuff for SunOS5.4
|
||||
#
|
||||
ifndef INCLUDED_VERSION_MK
|
||||
INCLUDED_VERSION_MK=1
|
||||
|
||||
ifdef NS_USE_NATIVE
|
||||
CC = cc
|
||||
CCC = CC
|
||||
# Windows gmake build:
|
||||
# Build default .rc file if $(RESFILE) isn't defined.
|
||||
# TODO:
|
||||
# PBI : Private build info. Not used currently.
|
||||
# Guessing the best way would be to set an env var.
|
||||
# BINARY : Binary name. Not used currently.
|
||||
ifeq ($(MOZ_WIDGET_TOOLKIT),windows)
|
||||
ifndef RESFILE
|
||||
RCFILE=./module.rc
|
||||
RESFILE=./module.res
|
||||
_RC_STRING = -QUIET 1 -DEPTH $(DEPTH) -TOPSRCDIR $(topsrcdir) -BITS $(MOZ_BITS) -OBJDIR . -SRCDIR $(srcdir) -DISPNAME $(MOZ_APP_DISPLAYNAME)
|
||||
ifneq ($(BUILD_OFFICIAL)_$(MOZILLA_OFFICIAL),_)
|
||||
_RC_STRING += -OFFICIAL 1
|
||||
endif
|
||||
ifdef MOZ_DEBUG
|
||||
_RC_STRING += -DEBUG 1
|
||||
endif
|
||||
ifdef MODULE
|
||||
_RC_STRING += -MODNAME $(MODULE)
|
||||
endif
|
||||
ifdef PROGRAM
|
||||
_RC_STRING += -BINARY $(PROGRAM)
|
||||
else
|
||||
CC = gcc
|
||||
CCC = g++
|
||||
CFLAGS += -Wall -Wno-format
|
||||
endif
|
||||
|
||||
RANLIB = echo
|
||||
|
||||
CPU_ARCH = sparc
|
||||
GFX_ARCH = x
|
||||
|
||||
OS_CFLAGS = -DXP_UNIX -DSVR4 -DSYSV -D__svr4 -DSOLARIS -DHAVE_LOCALTIME_R
|
||||
OS_LIBS = -lsocket -lnsl -ldl
|
||||
|
||||
ASFLAGS += -P -L -K PIC -D_ASM -D__STDC__=0
|
||||
|
||||
HAVE_PURIFY = 1
|
||||
|
||||
NOSUCHFILE = /solaris-rm-f-sucks
|
||||
|
||||
ifndef JS_NO_ULTRA
|
||||
ULTRA_OPTIONS := -xarch=v8plus
|
||||
ULTRA_OPTIONSD := -DULTRA_SPARC
|
||||
ifdef _PROGRAM
|
||||
_RC_STRING += -BINARY $(_PROGRAM)
|
||||
else
|
||||
ULTRA_OPTIONS := -xarch=v8
|
||||
ULTRA_OPTIONSD :=
|
||||
ifdef SHARED_LIBRARY
|
||||
_RC_STRING += -BINARY $(SHARED_LIBRARY)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
ifdef RCINCLUDE
|
||||
_RC_STRING += -RCINCLUDE $(srcdir)/$(RCINCLUDE)
|
||||
endif
|
||||
|
||||
ifeq ($(OS_CPUARCH),sun4u)
|
||||
DEFINES += $(ULTRA_OPTIONSD)
|
||||
ifeq ($(findstring gcc,$(CC)),gcc)
|
||||
DEFINES += -Wa,$(ULTRA_OPTIONS),$(ULTRA_OPTIONSD)
|
||||
else
|
||||
ASFLAGS += $(ULTRA_OPTIONS) $(ULTRA_OPTIONSD)
|
||||
endif
|
||||
endif
|
||||
GARBAGE += $(RESFILE) $(RCFILE)
|
||||
|
||||
ifeq ($(OS_CPUARCH),sun4m)
|
||||
ifeq ($(findstring gcc,$(CC)),gcc)
|
||||
DEFINES += -Wa,-xarch=v8
|
||||
else
|
||||
ASFLAGS += -xarch=v8
|
||||
endif
|
||||
endif
|
||||
#dummy target so $(RCFILE) doesn't become the default =P
|
||||
all::
|
||||
|
||||
MKSHLIB = $(LD) -G
|
||||
$(RCFILE): $(RCINCLUDE) $(topsrcdir)/config/version_win.pl
|
||||
$(PERL) $(topsrcdir)/config/version_win.pl $(_RC_STRING)
|
||||
|
||||
endif # RESFILE
|
||||
endif # Windows
|
||||
|
||||
endif
|
|
@ -0,0 +1,423 @@
|
|||
#!/usr/bin/perl -w
|
||||
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla 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/MPL/
|
||||
#
|
||||
# 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 the Win32 Version System.
|
||||
#
|
||||
# The Initial Developer of the Original Code is Brian Bober <netdemonz@yahoo.com>
|
||||
# Portions created by the Initial Developer are Copyright (C) 2001
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#use diagnostics;
|
||||
require strict;
|
||||
my $dir = $0;
|
||||
$dir =~ s/[^\/]*$//;
|
||||
push(@INC, "$dir");
|
||||
require "Moz/Milestone.pm";
|
||||
use Getopt::Long;
|
||||
use Getopt::Std;
|
||||
use POSIX;
|
||||
|
||||
# Calculate the number of days since Jan. 1, 2000 from a buildid string
|
||||
sub daysFromBuildID
|
||||
{
|
||||
my ($buildid,) = @_;
|
||||
|
||||
my ($y, $m, $d, $h) = ($buildid =~ /^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})$/);
|
||||
$d || die("Unrecognized buildid string.");
|
||||
|
||||
my $secondstodays = 60 * 60 * 24;
|
||||
return (POSIX::mktime(00, 00, 00, $d, $m, $y - 1900) -
|
||||
POSIX::mktime(00, 00, 00, 01, 01, 100)) / $secondstodays;
|
||||
}
|
||||
|
||||
#Creates version resource file
|
||||
|
||||
#Paramaters are passed on the command line:
|
||||
|
||||
#Example: -MODNAME nsToolkitCompsModule -DEBUG=1
|
||||
|
||||
# DEBUG - Mozilla's global debug variable - tells if its debug version
|
||||
# OFFICIAL - tells Mozilla is building a milestone or nightly
|
||||
# MSTONE - tells which milestone is being built;
|
||||
# OBJDIR - Holds the object directory;
|
||||
# MODNAME - tells what the name of the module is like nsBMPModule
|
||||
# DEPTH - Holds the path to the root obj dir
|
||||
# TOPSRCDIR - Holds the path to the root mozilla dir
|
||||
# SRCDIR - Holds module.ver and source
|
||||
# BINARY - Holds the name of the binary file
|
||||
# DISPNAME - Holds the display name of the built application
|
||||
# BITS - 16 or 32 bit
|
||||
# RCINCLUDE - Holds the name of the RC File to include or ""
|
||||
# QUIET - Turns off output
|
||||
|
||||
#Description and Comment come from module.ver
|
||||
#Bug 23560
|
||||
#http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/rc_7x2d.asp
|
||||
|
||||
#Get next .ver file entry
|
||||
sub getNextEntry
|
||||
{
|
||||
while (<VERFILE>)
|
||||
{
|
||||
my $mline = $_;
|
||||
($mline) = split(/#/,$mline);
|
||||
my ($entry, $value)=split(/=/,$mline,2);
|
||||
if (defined($entry))
|
||||
{
|
||||
if (defined($value))
|
||||
{
|
||||
$entry =~ s/^\s*(.*?)\s*$/$1/;
|
||||
$value =~ s/^\s*(.*?)\s*$/$1/;
|
||||
return ($entry,$value);
|
||||
}
|
||||
}
|
||||
}
|
||||
return undef;
|
||||
}
|
||||
|
||||
my ($quiet,$objdir,$debug,$official,$milestone,$buildid,$module,$binary,$depth,$rcinclude,$bits,$srcdir,$fileversion,$productversion);
|
||||
|
||||
GetOptions( "QUIET" => \$quiet,
|
||||
"DEBUG=s" => \$debug,
|
||||
"OFFICIAL=s" => \$official,
|
||||
"MSTONE=s" => \$milestone,
|
||||
"MODNAME=s" => \$module,
|
||||
"BINARY=s" => \$binary,
|
||||
"DISPNAME=s" => \$displayname,
|
||||
"SRCDIR=s" => \$srcdir,
|
||||
"TOPSRCDIR=s" => \$topsrcdir,
|
||||
"DEPTH=s" => \$depth,
|
||||
"RCINCLUDE=s" => \$rcinclude,
|
||||
"OBJDIR=s" => \$objdir,
|
||||
"BITS=s" => \$bits);
|
||||
if (!defined($debug)) {$debug="";}
|
||||
if (!defined($official)) {$official="";}
|
||||
if (!defined($milestone)) {$milestone="";}
|
||||
if (!defined($module)) {$module="";}
|
||||
if (!defined($binary)) {$binary="";}
|
||||
if (!defined($displayname)) {$displayname="Mozilla";}
|
||||
if (!defined($depth)) {$depth=".";}
|
||||
if (!defined($rcinclude)) {$rcinclude="";}
|
||||
if (!defined($objdir)) {$objdir=".";}
|
||||
if (!defined($srcdir)) {$srcdir=".";}
|
||||
if (!defined($topsrcdir)) {$topsrcdir=".";}
|
||||
if (!defined($bits)) {$bits="";}
|
||||
my $mfversion = "Personal";
|
||||
my $mpversion = "Personal";
|
||||
my @fileflags = ("0");
|
||||
my $comment="";
|
||||
my $description="";
|
||||
if (!defined($module))
|
||||
{
|
||||
$module = $binary;
|
||||
($module) = split(/\./,$module);
|
||||
}
|
||||
|
||||
my $fileos = "VOS__WINDOWS32";
|
||||
if ($bits eq "16") { $fileos="VOS__WINDOWS16"; }
|
||||
|
||||
my $bufferstr=" ";
|
||||
|
||||
my $MILESTONE_FILE = "$topsrcdir/config/milestone.txt";
|
||||
my $BUILDID_FILE = "$depth/config/buildid";
|
||||
|
||||
#Read module.ver file
|
||||
#Version file overrides for WIN32:
|
||||
#WIN32_MODULE_COMMENT
|
||||
#WIN32_MODULE_DESCRIPTION
|
||||
#WIN32_MODULE_FILEVERSION
|
||||
#WIN32_MODULE_COMPANYNAME
|
||||
#WIN32_MODULE_FILEVERSION_STRING
|
||||
#WIN32_MODULE_NAME
|
||||
#WIN32_MODULE_COPYRIGHT
|
||||
#WIN32_MODULE_TRADEMARKS
|
||||
#WIN32_MODULE_ORIGINAL_FILENAME
|
||||
#WIN32_MODULE_PRODUCTNAME
|
||||
#WIN32_MODULE_PRODUCTVERSION
|
||||
#WIN32_MODULE_PRODUCTVERSION_STRING
|
||||
|
||||
#Override values obtained from the .ver file
|
||||
my $override_comment;
|
||||
my $override_description;
|
||||
my $override_fileversion;
|
||||
my $override_company;
|
||||
my $override_mfversion;
|
||||
my $override_module;
|
||||
my $override_copyright;
|
||||
my $override_trademarks;
|
||||
my $override_filename;
|
||||
my $override_productname;
|
||||
my $override_productversion;
|
||||
my $override_mpversion;
|
||||
if (open(VERFILE, "<$srcdir/module.ver"))
|
||||
{
|
||||
|
||||
my ($a,$b) = getNextEntry();
|
||||
while (defined($a))
|
||||
{
|
||||
if ($a eq "WIN32_MODULE_COMMENT") { $override_comment = $b; }
|
||||
if ($a eq "WIN32_MODULE_DESCRIPTION") { $override_description = $b; }
|
||||
if ($a eq "WIN32_MODULE_FILEVERSION") { $override_fileversion = $b; }
|
||||
if ($a eq "WIN32_MODULE_COMPANYNAME") { $override_company = $b; }
|
||||
if ($a eq "WIN32_MODULE_FILEVERSION_STRING") { $override_mfversion = $b; }
|
||||
if ($a eq "WIN32_MODULE_NAME") { $override_module = $b; }
|
||||
if ($a eq "WIN32_MODULE_COPYRIGHT") { $override_copyright = $b; }
|
||||
if ($a eq "WIN32_MODULE_TRADEMARKS") { $override_trademarks = $b; }
|
||||
if ($a eq "WIN32_MODULE_ORIGINAL_FILENAME") { $override_filename = $b; }
|
||||
if ($a eq "WIN32_MODULE_PRODUCTNAME") { $override_productname = $b; }
|
||||
if ($a eq "WIN32_MODULE_PRODUCTVERSION") { $override_productversion = $b; }
|
||||
if ($a eq "WIN32_MODULE_PRODUCTVERSION_STRING") { $override_mpversion = $b; }
|
||||
($a,$b) = getNextEntry();
|
||||
}
|
||||
close(VERFILE)
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!$quiet || $quiet ne "1") { print "$bufferstr" . "WARNING: No module.ver file included ($module, $binary). Default values used\n"; }
|
||||
}
|
||||
#Get rid of trailing and leading whitespace
|
||||
$debug =~ s/^\s*(.*)\s*$/$1/;
|
||||
$comment =~ s/^\s*(.*)\s*$/$1/;
|
||||
$official =~ s/^\s*(.*)\s*$/$1/;
|
||||
$milestone =~ s/^\s*(.*)\s*$/$1/;
|
||||
$description =~ s/^\s*(.*)\s*$/$1/;
|
||||
$module =~ s/^\s*(.*)\s*$/$1/;
|
||||
$depth =~ s/^\s*(.*)\s*$/$1/;
|
||||
$binary =~ s/^\s*(.*)\s*$/$1/;
|
||||
$displayname =~ s/^\s*(.*)\s*$/$1/;
|
||||
|
||||
open(BUILDID, "<", $BUILDID_FILE) || die("Couldn't open buildid file: $BUILDID_FILE");
|
||||
$buildid = <BUILDID>;
|
||||
$buildid =~ s/\s*$//;
|
||||
close BUILDID;
|
||||
|
||||
my $daycount = daysFromBuildID($buildid);
|
||||
|
||||
if ($milestone eq "") {
|
||||
$milestone = Moz::Milestone::getOfficialMilestone($MILESTONE_FILE);
|
||||
}
|
||||
|
||||
$mfversion = $mpversion = $milestone;
|
||||
|
||||
if ($debug eq "1")
|
||||
{
|
||||
push @fileflags, "VS_FF_DEBUG";
|
||||
$mpversion .= " Debug";
|
||||
$mfversion .= " Debug";
|
||||
}
|
||||
|
||||
if ($official ne "1") {
|
||||
push @fileflags, "VS_FF_PRIVATEBUILD";
|
||||
}
|
||||
|
||||
if ($milestone =~ /[a-z]/) {
|
||||
push @fileflags, "VS_FF_PRERELEASE";
|
||||
}
|
||||
|
||||
my @mstone = split(/\./,$milestone);
|
||||
$mstone[1] =~s/\D.*$//;
|
||||
if (!$mstone[2]) {
|
||||
$mstone[2] = "0";
|
||||
}
|
||||
else {
|
||||
$mstone[2] =~s/\D.*$//;
|
||||
}
|
||||
$fileversion = $productversion="$mstone[0],$mstone[1],$mstone[2],$daycount";
|
||||
|
||||
my $copyright = "License: MPL 1.1/GPL 2.0/LGPL 2.1";
|
||||
my $company = "Mozilla Foundation";
|
||||
my $trademarks = "Mozilla";
|
||||
my $productname = $displayname;
|
||||
|
||||
|
||||
if (defined($override_comment)){$override_comment =~ s/\@MOZ_APP_DISPLAYNAME\@/$displayname/g; $comment=$override_comment;}
|
||||
if (defined($override_description)){$override_description =~ s/\@MOZ_APP_DISPLAYNAME\@/$displayname/g; $description=$override_description;}
|
||||
if (defined($override_fileversion)){$fileversion=$override_fileversion;}
|
||||
if (defined($override_mfversion)){$mfversion=$override_mfversion;}
|
||||
if (defined($override_company)){$company=$override_company;}
|
||||
if (defined($override_module)){$override_module =~ s/\@MOZ_APP_DISPLAYNAME\@/$displayname/g; $module=$override_module;}
|
||||
if (defined($override_copyright)){$override_copyright =~ s/\@MOZ_APP_DISPLAYNAME\@/$displayname/g; $copyright=$override_copyright;}
|
||||
if (defined($override_trademarks)){$override_trademarks =~ s/\@MOZ_APP_DISPLAYNAME\@/$displayname/g; $trademarks=$override_trademarks;}
|
||||
if (defined($override_filename)){$binary=$override_filename;}
|
||||
if (defined($override_productname)){$override_productname =~ s/\@MOZ_APP_DISPLAYNAME\@/$displayname/g; $productname=$override_productname;}
|
||||
if (defined($override_productversion)){$productversion=$override_productversion;}
|
||||
if (defined($override_mpversion)){$mpversion=$override_mpversion;}
|
||||
|
||||
|
||||
#Override section
|
||||
|
||||
open(RCFILE, ">$objdir/module.rc") || die("Can't edit module.rc - It must be locked.\n");
|
||||
print RCFILE qq{
|
||||
// ***** BEGIN LICENSE BLOCK *****
|
||||
// Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
//
|
||||
// The contents of this file are subject to the Mozilla 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/MPL/
|
||||
//
|
||||
// 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 the Win32 Version System.
|
||||
//
|
||||
// The Initial Developer of the Original Code is Brian Bober <netdemonz\@yahoo.com>
|
||||
// Portions created by the Initial Developer are Copyright (C) 2001
|
||||
// the Initial Developer. All Rights Reserved.
|
||||
//
|
||||
// Contributor(s):
|
||||
//
|
||||
// Alternatively, the contents of this file may be used under the terms of
|
||||
// either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
// the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
// in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
// of those above. If you wish to allow use of your version of this file only
|
||||
// under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
// use your version of this file under the terms of the MPL, indicate your
|
||||
// decision by deleting the provisions above and replace them with the notice
|
||||
// and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
// the provisions above, a recipient may use your version of this file under
|
||||
// the terms of any one of the MPL, the GPL or the LGPL.
|
||||
//
|
||||
// ***** END LICENSE BLOCK *****
|
||||
|
||||
#include<winver.h>
|
||||
|
||||
// Note: if you contain versioning information in an included
|
||||
// RC script, it will be discarded
|
||||
// Use module.ver to explicitly set these values
|
||||
|
||||
// Do not edit this file. Changes won't affect the build.
|
||||
|
||||
};
|
||||
|
||||
my $versionlevel=0;
|
||||
my $insideversion=0;
|
||||
if (open(RCINCLUDE, "<$rcinclude"))
|
||||
{
|
||||
print RCFILE "// From included resource $rcinclude\n";
|
||||
# my $mstring="";
|
||||
while (<RCINCLUDE>)
|
||||
{
|
||||
$_ =~ s/\@MOZ_APP_DISPLAYNAME\@/$displayname/g;
|
||||
print RCFILE $_;
|
||||
# my $instr=$_;
|
||||
# chomp($instr);
|
||||
# $mstring .= "$instr\;";
|
||||
}
|
||||
close(RCINCLUDE);
|
||||
# $mstring =~ s/\/\*.*\*\///g;
|
||||
# my @mlines = split(/\;/,$mstring);
|
||||
# for(@mlines)
|
||||
# {
|
||||
# my ($nocomment)=split(/\/\//,$_);
|
||||
# if (defined($nocomment) && $nocomment ne "")
|
||||
# {
|
||||
# my ($firststring,$secondstring) = split(/\s+/,$nocomment);
|
||||
# if (!defined($firststring)) {$firststring="";}
|
||||
# if (!defined($secondstring)) {$secondstring="";}
|
||||
# if ($secondstring eq "VERSIONINFO")
|
||||
# {
|
||||
#if (!$quiet || $quiet ne "1") {
|
||||
# print "$bufferstr" . "WARNING: Included RC file ($rcinclude, $module, $binary)\n";
|
||||
# print "$bufferstr" . "WARNING: contains versioning information that will be discarded\n";
|
||||
# print "$bufferstr" . "WARNING: Remove it and use relevant overrides (in module.ver)\n";
|
||||
#}
|
||||
# $versionlevel = 0;
|
||||
# $insideversion = 1;
|
||||
# }
|
||||
# if ($firststring eq "BEGIN") { $versionlevel++; }
|
||||
# if ($secondstring eq "END")
|
||||
# {
|
||||
# $versionlevel--;
|
||||
# if ($insideversion==1 && $versionlevel==0) {$versionlevel=0;}
|
||||
# }
|
||||
# my $includecheck = $firststring . $secondstring;
|
||||
# $includecheck =~ s/<|>/"/g;
|
||||
# $includecheck = lc($includecheck);
|
||||
# if ($includecheck ne "#include\"winver.h\"")
|
||||
# {
|
||||
# if ($insideversion == 0 && $versionlevel == 0)
|
||||
# {
|
||||
# print RCFILE "$nocomment\n";
|
||||
# }
|
||||
# }
|
||||
# }
|
||||
# }
|
||||
|
||||
}
|
||||
|
||||
my $fileflags = join(' | ', @fileflags);
|
||||
|
||||
print RCFILE qq{
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Version
|
||||
//
|
||||
|
||||
1 VERSIONINFO
|
||||
FILEVERSION $fileversion
|
||||
PRODUCTVERSION $productversion
|
||||
FILEFLAGSMASK 0x3fL
|
||||
FILEFLAGS $fileflags
|
||||
FILEOS $fileos
|
||||
FILETYPE VFT_DLL
|
||||
FILESUBTYPE 0x0L
|
||||
BEGIN
|
||||
BLOCK "StringFileInfo"
|
||||
BEGIN
|
||||
BLOCK "000004b0"
|
||||
BEGIN
|
||||
VALUE "Comments", "$comment"
|
||||
VALUE "LegalCopyright", "$copyright"
|
||||
VALUE "CompanyName", "$company"
|
||||
VALUE "FileDescription", "$description"
|
||||
VALUE "FileVersion", "$mfversion"
|
||||
VALUE "ProductVersion", "$mpversion"
|
||||
VALUE "InternalName", "$module"
|
||||
VALUE "LegalTrademarks", "$trademarks"
|
||||
VALUE "OriginalFilename", "$binary"
|
||||
VALUE "ProductName", "$productname"
|
||||
VALUE "BuildID", "$buildid"
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
BEGIN
|
||||
VALUE "Translation", 0x0, 1200
|
||||
END
|
||||
END
|
||||
|
||||
};
|
||||
close(RCFILE);
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -0,0 +1,55 @@
|
|||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
||||
* vim: set ts=8 sw=4 et tw=78:
|
||||
*
|
||||
* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla 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/MPL/
|
||||
*
|
||||
* 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 Communicator client code, released
|
||||
* March 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1998
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
* or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#ifndef js_config_h___
|
||||
#define js_config_h___
|
||||
|
||||
/* Definitions set at build time that affect SpiderMonkey's public API.
|
||||
This header file is generated by the SpiderMonkey configure script,
|
||||
and installed along with jsapi.h. */
|
||||
|
||||
/* Define to 1 if SpiderMonkey should support multi-threaded clients. */
|
||||
#undef JS_THREADSAFE
|
||||
|
||||
/* Define to 1 if SpiderMonkey should support the ability to perform
|
||||
entirely too much GC. */
|
||||
#undef JS_GC_ZEAL
|
||||
|
||||
#endif /* js_config_h___ */
|
|
@ -0,0 +1,111 @@
|
|||
#!/bin/sh
|
||||
|
||||
prefix='@prefix@'
|
||||
mozilla_version='@MOZILLA_VERSION@'
|
||||
LIBRARY_NAME='@LIBRARY_NAME@'
|
||||
NSPR_CFLAGS='@NSPR_CFLAGS@'
|
||||
JS_CONFIG_LIBS='@JS_CONFIG_LIBS@'
|
||||
MOZ_JS_LIBS='@MOZ_JS_LIBS@'
|
||||
|
||||
usage()
|
||||
{
|
||||
cat <<EOF
|
||||
Usage: js-config [OPTIONS]
|
||||
Options:
|
||||
[--prefix[=DIR]]
|
||||
[--exec-prefix[=DIR]]
|
||||
[--includedir[=DIR]]
|
||||
[--libdir[=DIR]]
|
||||
[--version]
|
||||
[--libs]
|
||||
[--cflags]
|
||||
[--lib-filenames]
|
||||
EOF
|
||||
exit $1
|
||||
}
|
||||
|
||||
if test $# -eq 0; then
|
||||
usage 1 1>&2
|
||||
fi
|
||||
|
||||
while test $# -gt 0; do
|
||||
case "$1" in
|
||||
-*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
|
||||
*) optarg= ;;
|
||||
esac
|
||||
|
||||
case $1 in
|
||||
--prefix=*)
|
||||
prefix=$optarg
|
||||
;;
|
||||
--prefix)
|
||||
echo_prefix=yes
|
||||
;;
|
||||
--exec-prefix=*)
|
||||
exec_prefix=$optarg
|
||||
;;
|
||||
--exec-prefix)
|
||||
echo_exec_prefix=yes
|
||||
;;
|
||||
--includedir=*)
|
||||
includedir=$optarg
|
||||
;;
|
||||
--includedir)
|
||||
echo_includedir=yes
|
||||
;;
|
||||
--libdir=*)
|
||||
libdir=$optarg
|
||||
;;
|
||||
--libdir)
|
||||
echo_libdir=yes
|
||||
;;
|
||||
--version)
|
||||
echo "$mozilla_version"
|
||||
;;
|
||||
--cflags)
|
||||
echo_cflags=yes
|
||||
;;
|
||||
--libs)
|
||||
echo_libs=yes
|
||||
;;
|
||||
*)
|
||||
usage 1 1>&2
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
# Set variables that may be dependent upon other variables
|
||||
if test -z "$exec_prefix"; then
|
||||
exec_prefix=@exec_prefix@
|
||||
fi
|
||||
if test -z "$includedir"; then
|
||||
includedir=@includedir@
|
||||
fi
|
||||
if test -z "$libdir"; then
|
||||
libdir=@libdir@
|
||||
fi
|
||||
|
||||
if test "$echo_prefix" = "yes"; then
|
||||
echo $prefix
|
||||
fi
|
||||
|
||||
if test "$echo_exec_prefix" = "yes"; then
|
||||
echo $exec_prefix
|
||||
fi
|
||||
|
||||
if test "$echo_includedir" = "yes"; then
|
||||
echo $includedir
|
||||
fi
|
||||
|
||||
if test "$echo_libdir" = "yes"; then
|
||||
echo $libdir
|
||||
fi
|
||||
|
||||
if test "$echo_cflags" = "yes"; then
|
||||
echo "-I$includedir/js $NSPR_CFLAGS"
|
||||
fi
|
||||
|
||||
if test "$echo_libs" = "yes"; then
|
||||
echo "$MOZ_JS_LIBS $JS_CONFIG_LIBS"
|
||||
fi
|
|
@ -45,6 +45,7 @@
|
|||
*/
|
||||
#include <stddef.h>
|
||||
#include <stdio.h>
|
||||
#include "js-config.h"
|
||||
#include "jspubtd.h"
|
||||
#include "jsutil.h"
|
||||
|
||||
|
|
|
@ -42,7 +42,7 @@
|
|||
|
||||
#ifdef JS_TRACER
|
||||
|
||||
#include "nanojit.h"
|
||||
#include "nanojit/nanojit.h"
|
||||
|
||||
enum JSTNErrType { INFALLIBLE, FAIL_NULL, FAIL_NEG, FAIL_VOID, FAIL_JSVAL };
|
||||
enum { JSTN_ERRTYPE_MASK = 7, JSTN_MORE = 8 };
|
||||
|
|
|
@ -1,181 +0,0 @@
|
|||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla 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/MPL/
|
||||
#
|
||||
# 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 Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998-1999
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
ifndef OBJDIR
|
||||
ifdef OBJDIR_NAME
|
||||
OBJDIR = $(OBJDIR_NAME)
|
||||
endif
|
||||
endif
|
||||
|
||||
NSPR_VERSION = v4.0
|
||||
NSPR_LIBSUFFIX = 4
|
||||
|
||||
NSPR_LOCAL = $(MOZ_DEPTH)/dist/$(OBJDIR)/nspr
|
||||
NSPR_DIST = $(MOZ_DEPTH)/dist/$(OBJDIR)
|
||||
NSPR_OBJDIR = $(OBJDIR)
|
||||
ifeq ($(OS_ARCH), SunOS)
|
||||
NSPR_OBJDIR := $(subst _sparc,,$(NSPR_OBJDIR))
|
||||
endif
|
||||
ifeq ($(OS_ARCH), Linux)
|
||||
LINUX_REL := $(shell uname -r)
|
||||
ifneq (,$(findstring 2.0,$(LINUX_REL)))
|
||||
NSPR_OBJDIR := $(subst _All,2.0_x86_glibc_PTH,$(NSPR_OBJDIR))
|
||||
else
|
||||
NSPR_OBJDIR := $(subst _All,2.2_x86_glibc_PTH,$(NSPR_OBJDIR))
|
||||
endif
|
||||
endif
|
||||
ifeq ($(OS_ARCH), AIX)
|
||||
NSPR_OBJDIR := $(subst 4.1,4.2,$(NSPR_OBJDIR))
|
||||
endif
|
||||
ifeq ($(OS_CONFIG), IRIX6.2)
|
||||
NSPR_OBJDIR := $(subst 6.2,6.2_n32_PTH,$(NSPR_OBJDIR))
|
||||
endif
|
||||
ifeq ($(OS_CONFIG), IRIX6.5)
|
||||
NSPR_OBJDIR := $(subst 6.5,6.5_n32_PTH,$(NSPR_OBJDIR))
|
||||
endif
|
||||
ifeq ($(OS_ARCH), WINNT)
|
||||
ifeq ($(OBJDIR), WIN32_D.OBJ)
|
||||
NSPR_OBJDIR = WINNT4.0_DBG.OBJ
|
||||
endif
|
||||
ifeq ($(OBJDIR), WIN32_O.OBJ)
|
||||
NSPR_OBJDIR = WINNT4.0_OPT.OBJ
|
||||
endif
|
||||
endif
|
||||
NSPR_SHARED = /share/builds/components/nspr20/$(NSPR_VERSION)/$(NSPR_OBJDIR)
|
||||
ifeq ($(OS_ARCH), WINNT)
|
||||
NSPR_SHARED = nspr20/$(NSPR_VERSION)/$(NSPR_OBJDIR)
|
||||
endif
|
||||
NSPR_VERSIONFILE = $(NSPR_LOCAL)/Version
|
||||
NSPR_CURVERSION := $(shell cat $(NSPR_VERSIONFILE) 2>/dev/null)
|
||||
|
||||
get_nspr:
|
||||
@echo "Grabbing NSPR component..."
|
||||
ifeq ($(NSPR_VERSION), $(NSPR_CURVERSION))
|
||||
@echo "No need, NSPR is up to date in this tree (ver=$(NSPR_VERSION))."
|
||||
else
|
||||
mkdir -p $(NSPR_LOCAL)
|
||||
mkdir -p $(NSPR_DIST)
|
||||
ifneq ($(OS_ARCH), WINNT)
|
||||
cp $(NSPR_SHARED)/*.jar $(NSPR_LOCAL)
|
||||
else
|
||||
sh $(MOZ_DEPTH)/../reltools/compftp.sh $(NSPR_SHARED) $(NSPR_LOCAL) *.jar
|
||||
endif
|
||||
unzip -o $(NSPR_LOCAL)/mdbinary.jar -d $(NSPR_DIST)
|
||||
mkdir -p $(NSPR_DIST)/include
|
||||
unzip -o $(NSPR_LOCAL)/mdheader.jar -d $(NSPR_DIST)/include
|
||||
rm -rf $(NSPR_DIST)/META-INF
|
||||
rm -rf $(NSPR_DIST)/include/META-INF
|
||||
echo $(NSPR_VERSION) > $(NSPR_VERSIONFILE)
|
||||
endif
|
||||
|
||||
SHIP_DIST = $(MOZ_DEPTH)/dist/$(OBJDIR)
|
||||
SHIP_DIR = $(SHIP_DIST)/SHIP
|
||||
|
||||
SHIP_LIBS = libjs.$(SO_SUFFIX) libjs.a
|
||||
ifdef JS_LIVECONNECT
|
||||
SHIP_LIBS += libjsj.$(SO_SUFFIX) libjsj.a
|
||||
endif
|
||||
ifeq ($(OS_ARCH), WINNT)
|
||||
SHIP_LIBS = js32.dll js32.lib
|
||||
ifdef JS_LIVECONNECT
|
||||
SHIP_LIBS += jsj.dll jsj.lib
|
||||
endif
|
||||
endif
|
||||
SHIP_LIBS += $(LCJAR)
|
||||
SHIP_LIBS := $(addprefix $(SHIP_DIST)/lib/, $(SHIP_LIBS))
|
||||
|
||||
SHIP_INCS = js*.h prmjtime.h resource.h *.msg *.tbl
|
||||
ifdef JS_LIVECONNECT
|
||||
SHIP_INCS += netscape*.h nsC*.h nsI*.h
|
||||
endif
|
||||
SHIP_INCS := $(addprefix $(SHIP_DIST)/include/, $(SHIP_INCS))
|
||||
|
||||
SHIP_BINS = js
|
||||
ifdef JS_LIVECONNECT
|
||||
SHIP_BINS += lcshell
|
||||
endif
|
||||
ifeq ($(OS_ARCH), WINNT)
|
||||
SHIP_BINS := $(addsuffix .exe, $(SHIP_BINS))
|
||||
endif
|
||||
SHIP_BINS := $(addprefix $(SHIP_DIST)/bin/, $(SHIP_BINS))
|
||||
|
||||
ifdef BUILD_OPT
|
||||
JSREFJAR = jsref_opt.jar
|
||||
else
|
||||
ifdef BUILD_IDG
|
||||
JSREFJAR = jsref_idg.jar
|
||||
else
|
||||
JSREFJAR = jsref_dbg.jar
|
||||
endif
|
||||
endif
|
||||
|
||||
ship:
|
||||
mkdir -p $(SHIP_DIR)/$(LIBDIR)
|
||||
mkdir -p $(SHIP_DIR)/include
|
||||
mkdir -p $(SHIP_DIR)/bin
|
||||
cp $(SHIP_LIBS) $(SHIP_DIR)/$(LIBDIR)
|
||||
cp $(SHIP_INCS) $(SHIP_DIR)/include
|
||||
cp $(SHIP_BINS) $(SHIP_DIR)/bin
|
||||
cd $(SHIP_DIR); \
|
||||
zip -r $(JSREFJAR) bin lib include
|
||||
ifdef BUILD_SHIP
|
||||
cp $(SHIP_DIR)/$(JSREFJAR) $(BUILD_SHIP)
|
||||
endif
|
||||
|
||||
CWD = $(shell pwd)
|
||||
shipSource: $(SHIP_DIR)/jsref_src.lst .FORCE
|
||||
mkdir -p $(SHIP_DIR)
|
||||
cd $(MOZ_DEPTH)/.. ; \
|
||||
zip $(CWD)/$(SHIP_DIR)/jsref_src.jar -@ < $(CWD)/$(SHIP_DIR)/jsref_src.lst
|
||||
ifdef BUILD_SHIP
|
||||
cp $(SHIP_DIR)/jsref_src.jar $(BUILD_SHIP)
|
||||
endif
|
||||
|
||||
JSREFSRCDIRS := $(shell cat $(DEPTH)/SpiderMonkey.rsp)
|
||||
$(SHIP_DIR)/jsref_src.lst: .FORCE
|
||||
mkdir -p $(SHIP_DIR)
|
||||
rm -f $@
|
||||
touch $@
|
||||
for d in $(JSREFSRCDIRS); do \
|
||||
cd $(MOZ_DEPTH)/..; \
|
||||
ls -1 -d $$d | grep -v CVS | grep -v \.OBJ >> $(CWD)/$@; \
|
||||
cd $(CWD); \
|
||||
done
|
||||
|
||||
.FORCE:
|
|
@ -51,7 +51,7 @@
|
|||
#include <alloca.h>
|
||||
#endif
|
||||
|
||||
#include "nanojit.h"
|
||||
#include "nanojit/nanojit.h"
|
||||
#include "jsarray.h" // higher-level library and API headers
|
||||
#include "jsbool.h"
|
||||
#include "jscntxt.h"
|
||||
|
|
206
js/src/rules.mk
206
js/src/rules.mk
|
@ -1,206 +0,0 @@
|
|||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla 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/MPL/
|
||||
#
|
||||
# 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 Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998-1999
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
# Michael Ang <mang@subcarrier.org>
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# JSRef GNUmake makefile rules
|
||||
#
|
||||
|
||||
ifdef USE_MSVC
|
||||
LIB_OBJS = $(addprefix $(OBJDIR)/, $(LIB_CPPFILES:.cpp=.obj))
|
||||
PROG_OBJS = $(addprefix $(OBJDIR)/, $(PROG_CPPFILES:.cpp=.obj))
|
||||
else
|
||||
LIB_OBJS = $(addprefix $(OBJDIR)/, $(LIB_CPPFILES:.cpp=.o))
|
||||
LIB_OBJS += $(addprefix $(OBJDIR)/, $(LIB_ASFILES:.s=.o))
|
||||
PROG_OBJS = $(addprefix $(OBJDIR)/, $(PROG_CPPFILES:.cpp=.o))
|
||||
endif
|
||||
|
||||
CPPFILES = $(LIB_CPPFILES) $(PROG_CPPFILES)
|
||||
OBJS = $(LIB_OBJS) $(PROG_OBJS)
|
||||
|
||||
ifdef USE_MSVC
|
||||
# TARGETS = $(LIBRARY) # $(PROGRAM) not supported for MSVC yet
|
||||
TARGETS += $(SHARED_LIBRARY) $(PROGRAM) # it is now
|
||||
else
|
||||
TARGETS += $(LIBRARY) $(SHARED_LIBRARY) $(PROGRAM)
|
||||
endif
|
||||
|
||||
all:
|
||||
+$(LOOP_OVER_PREDIRS)
|
||||
ifneq "$(strip $(TARGETS))" ""
|
||||
$(MAKE) -f Makefile.ref $(TARGETS)
|
||||
endif
|
||||
+$(LOOP_OVER_DIRS)
|
||||
|
||||
$(OBJDIR)/%: %.cpp
|
||||
@$(MAKE_OBJDIR)
|
||||
$(CXX) -o $@ $(CFLAGS) $(OPTIMIZER) $*.cpp $(LDFLAGS)
|
||||
|
||||
# This rule must come before the rule with no dep on header
|
||||
$(OBJDIR)/%.o: %.cpp %.h
|
||||
@$(MAKE_OBJDIR)
|
||||
$(CXX) -o $@ -c $(CFLAGS) $(OPTIMIZER) $*.cpp
|
||||
|
||||
$(OBJDIR)/jsinterp.o: jsinterp.cpp jsinterp.h
|
||||
@$(MAKE_OBJDIR)
|
||||
$(CXX) -o $@ -c $(CFLAGS) $(INTERP_OPTIMIZER) jsinterp.cpp
|
||||
|
||||
$(OBJDIR)/jsbuiltins.o: jsbuiltins.cpp jsinterp.h
|
||||
@$(MAKE_OBJDIR)
|
||||
$(CXX) -o $@ -c $(CFLAGS) $(BUILTINS_OPTIMIZER) jsbuiltins.cpp
|
||||
|
||||
$(OBJDIR)/%.o: %.cpp
|
||||
@$(MAKE_OBJDIR)
|
||||
$(CXX) -o $@ -c $(CFLAGS) $(OPTIMIZER) $*.cpp
|
||||
|
||||
$(OBJDIR)/%.o: %.s
|
||||
@$(MAKE_OBJDIR)
|
||||
$(AS) -o $@ $(ASFLAGS) $*.s
|
||||
|
||||
# This rule must come before rule with no dep on header
|
||||
$(OBJDIR)/%.obj: %.cpp %.h
|
||||
@$(MAKE_OBJDIR)
|
||||
$(CXX) -Fo$(OBJDIR)/ -c $(CFLAGS) $(JSDLL_CFLAGS) $(OPTIMIZER) $*.cpp
|
||||
|
||||
$(OBJDIR)/jsinterp.obj: jsinterp.cpp jsinterp.h
|
||||
@$(MAKE_OBJDIR)
|
||||
$(CXX) -Fo$(OBJDIR)/ -c $(CFLAGS) $(JSDLL_CFLAGS) $(INTERP_OPTIMIZER) jsinterp.cpp
|
||||
|
||||
$(OBJDIR)/jsbuiltins.obj: jsbuiltins.cpp jsinterp.h
|
||||
@$(MAKE_OBJDIR)
|
||||
$(CXX) -Fo$(OBJDIR)/ -c $(CFLAGS) $(JSDLL_CFLAGS) $(BUILTINS_OPTIMIZER) jsbuiltins.cpp
|
||||
|
||||
$(OBJDIR)/%.obj: %.cpp
|
||||
@$(MAKE_OBJDIR)
|
||||
$(CXX) -Fo$(OBJDIR)/ -c $(CFLAGS) $(JSDLL_CFLAGS) $(OPTIMIZER) $*.cpp
|
||||
|
||||
$(OBJDIR)/js.obj: js.cpp
|
||||
@$(MAKE_OBJDIR)
|
||||
$(CXX) -Fo$(OBJDIR)/ -c $(CFLAGS) $(OPTIMIZER) $<
|
||||
|
||||
ifeq ($(OS_ARCH),OS2)
|
||||
$(LIBRARY): $(LIB_OBJS)
|
||||
$(AR) $@ $? $(AR_OS2_SUFFIX)
|
||||
$(RANLIB) $@
|
||||
else
|
||||
ifdef USE_MSVC
|
||||
$(SHARED_LIBRARY): $(LIB_OBJS)
|
||||
link.exe $(LIB_LINK_FLAGS) /base:0x61000000 $(OTHER_LIBS) \
|
||||
/out:"$@" /pdb:none\
|
||||
/implib:"$(OBJDIR)/$(@F:.dll=.lib)" $^
|
||||
else
|
||||
$(LIBRARY): $(LIB_OBJS)
|
||||
$(AR) rv $@ $?
|
||||
$(RANLIB) $@
|
||||
|
||||
$(SHARED_LIBRARY): $(LIB_OBJS)
|
||||
$(MKSHLIB) -o $@ $(LIB_OBJS) $(LDFLAGS) $(OTHER_LIBS)
|
||||
endif
|
||||
endif
|
||||
|
||||
# Java stuff
|
||||
$(CLASSDIR)/$(OBJDIR)/$(JARPATH)/%.class: %.java
|
||||
mkdir -p $(@D)
|
||||
$(JAVAC) $(JAVAC_FLAGS) $<
|
||||
|
||||
define MAKE_OBJDIR
|
||||
if test ! -d $(@D); then rm -rf $(@D); mkdir -p $(@D); fi
|
||||
endef
|
||||
|
||||
ifdef DIRS
|
||||
LOOP_OVER_DIRS = \
|
||||
@for d in $(DIRS); do \
|
||||
if test -d $$d; then \
|
||||
set -e; \
|
||||
echo "cd $$d; $(MAKE) -f Makefile.ref $@"; \
|
||||
cd $$d; $(MAKE) -f Makefile.ref $@; cd ..; \
|
||||
set +e; \
|
||||
else \
|
||||
echo "Skipping non-directory $$d..."; \
|
||||
fi; \
|
||||
done
|
||||
endif
|
||||
|
||||
ifdef PREDIRS
|
||||
LOOP_OVER_PREDIRS = \
|
||||
@for d in $(PREDIRS); do \
|
||||
if test -d $$d; then \
|
||||
set -e; \
|
||||
echo "cd $$d; $(MAKE) -f Makefile.ref $@"; \
|
||||
cd $$d; $(MAKE) -f Makefile.ref $@; cd ..; \
|
||||
set +e; \
|
||||
else \
|
||||
echo "Skipping non-directory $$d..."; \
|
||||
fi; \
|
||||
done
|
||||
endif
|
||||
|
||||
export:
|
||||
+$(LOOP_OVER_PREDIRS)
|
||||
mkdir -p $(DIST)/include $(DIST)/$(LIBDIR) $(DIST)/bin
|
||||
ifneq "$(strip $(HFILES))" ""
|
||||
$(CP) $(HFILES) $(DIST)/include
|
||||
endif
|
||||
ifneq "$(strip $(LIBRARY))" ""
|
||||
$(CP) $(LIBRARY) $(DIST)/$(LIBDIR)
|
||||
endif
|
||||
ifneq "$(strip $(JARS))" ""
|
||||
$(CP) $(JARS) $(DIST)/$(LIBDIR)
|
||||
endif
|
||||
ifneq "$(strip $(SHARED_LIBRARY))" ""
|
||||
$(CP) $(SHARED_LIBRARY) $(DIST)/$(LIBDIR)
|
||||
endif
|
||||
ifneq "$(strip $(PROGRAM))" ""
|
||||
$(CP) $(PROGRAM) $(DIST)/bin
|
||||
endif
|
||||
+$(LOOP_OVER_DIRS)
|
||||
|
||||
clean:
|
||||
+$(LOOP_OVER_PREDIRS)
|
||||
rm -rf $(OBJS) $(GARBAGE)
|
||||
|
||||
clobber:
|
||||
+$(LOOP_OVER_PREDIRS)
|
||||
rm -rf $(OBJS) $(TARGETS) $(DEPENDENCIES) $(GARBAGE)
|
||||
if test -d $(OBJDIR); then rmdir $(OBJDIR); fi
|
||||
|
||||
tar:
|
||||
tar cvf $(TARNAME) $(TARFILES)
|
||||
gzip $(TARNAME)
|
||||
|
|
@ -6016,7 +6016,7 @@ s%\[%\\&%g
|
|||
s%\]%\\&%g
|
||||
s%\$%$$%g
|
||||
EOF
|
||||
DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' ' | tr '\015' ' '`
|
||||
DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '`
|
||||
rm -f conftest.defs
|
||||
|
||||
|
||||
|
|
|
@ -225,6 +225,7 @@ NO_PKG_FILES += \
|
|||
core \
|
||||
bsdecho \
|
||||
gtscc \
|
||||
js-config \
|
||||
jscpucfg \
|
||||
nsinstall \
|
||||
viewer \
|
||||
|
|
|
@ -166,10 +166,6 @@ MAKEFILES_intl="
|
|||
intl/strres/tests/Makefile
|
||||
"
|
||||
|
||||
MAKEFILES_js="
|
||||
js/src/Makefile
|
||||
"
|
||||
|
||||
MAKEFILES_liveconnect="
|
||||
js/src/liveconnect/Makefile
|
||||
js/src/liveconnect/classes/Makefile
|
||||
|
@ -774,7 +770,6 @@ add_makefiles "
|
|||
$MAKEFILES_gfx
|
||||
$MAKEFILES_htmlparser
|
||||
$MAKEFILES_intl
|
||||
$MAKEFILES_js
|
||||
$MAKEFILES_liveconnect
|
||||
$MAKEFILES_xpconnect
|
||||
$MAKEFILES_jsdebugger
|
||||
|
|
|
@ -40,7 +40,7 @@ $(error toolkit-tiers.mk is not compatible with --enable-libxul-sdk=)
|
|||
endif
|
||||
|
||||
include $(topsrcdir)/config/nspr/build.mk
|
||||
include $(topsrcdir)/js/src/build.mk
|
||||
include $(topsrcdir)/config/js/build.mk
|
||||
include $(topsrcdir)/xpcom/build.mk
|
||||
include $(topsrcdir)/netwerk/build.mk
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче