diff --git a/src/Makefile b/src/Makefile index 31f39ab5..8b4524df 100644 --- a/src/Makefile +++ b/src/Makefile @@ -22,7 +22,11 @@ # packaging script. -include version.mk +ifeq ($(shell uname),FreeBSD) +SHELL := /usr/local/bin/bash +else SHELL := /bin/bash +endif VERSION ?= $(shell git describe --always --tags --candidate=100) diff --git a/src/pacparser.c b/src/pacparser.c index 961ed84c..0eea0915 100644 --- a/src/pacparser.c +++ b/src/pacparser.c @@ -25,6 +25,10 @@ #include #include +#ifdef __FreeBSD__ +#include +#endif + #ifdef XP_UNIX #include #include // for AF_INET diff --git a/src/spidermonkey/js/src/config.mk b/src/spidermonkey/js/src/config.mk index f622d30a..59d377e9 100644 --- a/src/spidermonkey/js/src/config.mk +++ b/src/spidermonkey/js/src/config.mk @@ -92,17 +92,15 @@ endif # Virtually all Linux versions are identical. # Any distinctions are handled in linux.h ifeq ($(OS_ARCH),Linux) -OS_CONFIG := Linux_All + OS_CONFIG := Linux_All +else ifeq ($(OS_ARCH),dgux) + OS_CONFIG := dgux +else ifeq ($(OS_ARCH),Darwin) + OS_CONFIG := Darwin +else ifeq ($(OS_ARCH),FreeBSD) # Add this line for FreeBSD + OS_CONFIG := FreeBSD else -ifeq ($(OS_ARCH),dgux) -OS_CONFIG := dgux -else -ifeq ($(OS_ARCH),Darwin) -OS_CONFIG := Darwin -else -OS_CONFIG := $(OS_ARCH)$(OS_OBJTYPE)$(OS_RELEASE) -endif -endif + OS_CONFIG := $(OS_ARCH)$(OS_OBJTYPE)$(OS_RELEASE) endif ASFLAGS = diff --git a/src/spidermonkey/js/src/config/FreeBSD.mk b/src/spidermonkey/js/src/config/FreeBSD.mk new file mode 100644 index 00000000..2773a19b --- /dev/null +++ b/src/spidermonkey/js/src/config/FreeBSD.mk @@ -0,0 +1,95 @@ +# -*- 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 FreeBSD +# + +CC ?= gcc +CCC ?= g++ +CFLAGS += -Wall -Wno-format +OS_CFLAGS = -DXP_UNIX -DSVR4 -DSYSV -D_BSD_SOURCE -DPOSIX_SOURCE -DHAVE_LOCALTIME_R + +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 (amd64,$(CPU_ARCH)) +ifeq (86,$(findstring 86,$(CPU_ARCH))) +CPU_ARCH = x86 +OS_CFLAGS+= -DX86_LINUX + +ifeq (gcc, $(CC)) +# if using gcc on x86, check version for opt bug +# (http://bugzilla.mozilla.org/show_bug.cgi?id=24892) +GCC_VERSION := $(shell gcc -v 2>&1 | grep version | awk '{ print $$3 }') +GCC_LIST:=$(sort 2.91.66 $(GCC_VERSION) ) + +ifeq (2.91.66, $(firstword $(GCC_LIST))) +CFLAGS+= -DGCC_OPT_BUG +endif +endif +endif +endif + +GFX_ARCH = x + +OS_LIBS = -lm -lc + +ASFLAGS += -x assembler-with-cpp + + +# Use the editline library to provide line-editing support. +JS_EDITLINE = 1 + +ifeq ($(CPU_ARCH),amd64) +# 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),amd64) +# We need PIC code for shared libraries +# FIXME: better patch rules.mk & fdlibm/Makefile* +OS_CFLAGS += -DPIC -fPIC +endif diff --git a/tests/runtests.sh b/tests/runtests.sh index 4462f775..5361aea0 100755 --- a/tests/runtests.sh +++ b/tests/runtests.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash pushd $(dirname $0) > /dev/null; script_dir=$PWD; popd > /dev/null