]> gitweb @ CieloNegro.org - build-hc-pkg.git/commitdiff
Various changes to support Linux master
authorPHO <pho@cielonegro.org>
Fri, 16 Mar 2012 09:07:54 +0000 (18:07 +0900)
committerPHO <pho@cielonegro.org>
Fri, 16 Mar 2012 09:07:54 +0000 (18:07 +0900)
build-hc-pkg
files/host-build.mk
mk/main.mk

index 868039eb12fdf73432dd9042d2e61be04e0464c2..e900fcfae14f44a209c2e47f40d37afb98be266e 100755 (executable)
@@ -36,6 +36,17 @@ function detect_gnu_tar () {
     fi
 }
 
     fi
 }
 
+function detect_gnu_sed () {
+    if which gsed >/dev/null 2>&1; then
+        echo "gsed"
+    elif sed --version | grep -qF GNU; then
+        echo "sed"
+    else
+        echo "We need GNU sed to be installed." >&2
+        exit 1
+    fi
+}
+
 function say_hello () {
     local -r self=$(basename "$0")
     local -r platform=$(detect_platform_type)
 function say_hello () {
     local -r self=$(basename "$0")
     local -r platform=$(detect_platform_type)
@@ -81,6 +92,7 @@ function build_hc_pkg () {
         SRCPATH="$srcpath" \
         PLATFORM="$(detect_platform_type)" \
         GNUTAR="$(detect_gnu_tar)" \
         SRCPATH="$srcpath" \
         PLATFORM="$(detect_platform_type)" \
         GNUTAR="$(detect_gnu_tar)" \
+        GNUSED="$(detect_gnu_sed)" \
         SHELL="$SHELL"
 
     echo "If you are done, run \"$0 clean\" to cleanup the working directory."
         SHELL="$SHELL"
 
     echo "If you are done, run \"$0 clean\" to cleanup the working directory."
index 326330296bb9699e489f9984e91759ba88643d2d..b54c2e25b04b1b5438b46d725b7e1ce40bb50f89 100644 (file)
@@ -1,3 +1,4 @@
+# -*- makefile-gmake -*-
 PORTING_HOST = YES
 GhcUnregisterised = YES
 GhcLibHcOpts = -O -fvia-C -keep-hc-files
 PORTING_HOST = YES
 GhcUnregisterised = YES
 GhcLibHcOpts = -O -fvia-C -keep-hc-files
@@ -17,3 +18,9 @@ INTEGER_LIBRARY = integer-simple
 libraries/terminfo_CONFIGURE_OPTS += \
        --configure-option=--with-curses-includes=/usr/pkg/include \
        --configure-option=--with-curses-libraries=/usr/pkg/lib
 libraries/terminfo_CONFIGURE_OPTS += \
        --configure-option=--with-curses-includes=/usr/pkg/include \
        --configure-option=--with-curses-libraries=/usr/pkg/lib
+
+ifeq ($(shell uname),Linux)
+# To find out why evacuate() segfaults on Linux...
+rts_CC_OPTS += -O0 -g
+# ...but this stops ghc-stage2 from segfaulting. Sigh.
+endif
index c3567a85f38164b5faa6c6c5ae99e644dbc7b1c9..ad46595d22ee6a9ebec76f490116b4fea3d84848 100644 (file)
@@ -1,5 +1,6 @@
 DIRNAME    := $(patsubst %-src.tar.bz2,%,$(notdir $(SRCPATH)))
 GNUTAR     ?= gtar
 DIRNAME    := $(patsubst %-src.tar.bz2,%,$(notdir $(SRCPATH)))
 GNUTAR     ?= gtar
+GNUSED     ?= gsed
 HC_TARNAME ?= $(DIRNAME)-boot-$(PLATFORM).tar.bz2
 
 all: work/pack-hc-pkg.stamp
 HC_TARNAME ?= $(DIRNAME)-boot-$(PLATFORM).tar.bz2
 
 all: work/pack-hc-pkg.stamp
@@ -69,7 +70,7 @@ work/extract-boot-tarball.stamp: work/build-boot-tarball.stamp
 
 work/replace-paths.stamp: work/extract-boot-tarball.stamp
        cd "work/$(DIRNAME)" && \
 
 work/replace-paths.stamp: work/extract-boot-tarball.stamp
        cd "work/$(DIRNAME)" && \
-               gsed -i \
+               $(GNUSED) -i \
                        -e 's#/usr/pkg#[[PREFIX]]#g' \
                        -e 's#'`pwd`'-host#[[GHC_SOURCE_PATH]]#g' \
                        inplace/lib/package.conf.d/*.conf \
                        -e 's#/usr/pkg#[[PREFIX]]#g' \
                        -e 's#'`pwd`'-host#[[GHC_SOURCE_PATH]]#g' \
                        inplace/lib/package.conf.d/*.conf \