summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAshish Gupta <ashmew2@gmail.com>2017-04-14 13:42:37 +0200
committerAshish Gupta <ashmew2@gmail.com>2017-04-15 09:36:53 +0200
commit5d95452cbf9d3f876000943bd7a72cd4798f0e0b (patch)
tree1e9f709460f577c255b0b13444dff7a5b726517d
parent37bf169dab81e00fb0c3fd6b35c992684f018c11 (diff)
downloadbuildsystem-5d95452cbf9d3f876000943bd7a72cd4798f0e0b.tar.gz
buildsystem-5d95452cbf9d3f876000943bd7a72cd4798f0e0b.tar.bz2
Patch Makefile.tools to support cross compiling from Linux to KolibriOS
-rw-r--r--makefiles/Makefile.tools52
1 files changed, 46 insertions, 6 deletions
diff --git a/makefiles/Makefile.tools b/makefiles/Makefile.tools
index 86fac4c..029dd9d 100644
--- a/makefiles/Makefile.tools
+++ b/makefiles/Makefile.tools
@@ -55,7 +55,16 @@ NSTESTTOOLS := $(NSSHARED)/testtools
# Bootstrap default tooling
###############################################################################
-BUILD_CC ?= cc
+ifeq ($(HOST),kolibrios)
+ BUILD_CC := kos32-gcc
+ CC := kos32-gcc
+ AR := kos32-ar
+ BUILD := Linux
+ PREFIX ?= /opt/netsurf
+else
+ BUILD_CC ?= cc
+endif
+
###############################################################################
# Host/build platform detection
@@ -125,8 +134,10 @@ else
CC__ := $(CC)
# Improve our guess at the identity of CC
# (only if CC was not specified by the user)
- ifeq ($(origin CC),default)
- CC__ := $(HOST)-gcc
+ ifneq ($(HOST),kolibrios)
+ ifeq ($(origin CC),default)
+ CC__ := $(HOST)-gcc
+ endif
endif
# Search the path for the compiler
@@ -139,7 +150,12 @@ else
else
CC__ := $(realpath $(toolpath_))
toolpath_ := $(dir $(CC__))
- toolprefix_ := $(subst :,/,$(dir $(subst -,/,$(subst /,:,$(CC__)))))
+ ifneq ($(HOST),kolibrios)
+ toolprefix_ := $(subst :,/,$(dir $(subst -,/,$(subst /,:,$(CC__)))))
+ else
+ toolprefix_ := $(subst kos32/,kos32,$(toolprefix_))
+ endif
+
ifeq ($(origin AR),default)
AR__ := $(toolprefix_)-ar
endif
@@ -242,6 +258,26 @@ else
PREFIX ?= $(GCCSDK_INSTALL_ENV)
endif
+
+ ifeq ($(HOST),kolibrios)
+ KOL_LIBC_MAIN := $(HOME)/kolibrios/contrib/sdk/sources/newlib/libc/include
+ KOL_LIBC_MACHINE := $(HOME)/kolibrios/contrib/sdk/sources/newlib/libc/include/machine
+ KOL_LIBC_INCLUDES := -I$(KOL_LIBC_MAIN) -I$(KOL_LIBC_MACHINE)
+
+ KOL_NS_DEP_INCLUDES := -I$(HOME)/kolibrios/contrib/sdk/sources/expat/lib
+
+ KOL_LIB_DIR := $(HOME)/kolibrios/contrib/sdk/lib
+ LIB_LDFLAGS := -L$(KOL_LIB_DIR) -lfreetype
+ OS_LDFLAGS := -static -S -Tstatic.lds --image-base 0
+
+ NS_INCLUDE := $(PREFIX)/include
+ NS_LIB_LDFLAGS := -L$(PREFIX)/lib/ -lnsbmp -lnsutils -lwapcaplet -lsvgtiny -lnsgif -lutf8proc -lcss -lnsfb -lparserutils -ldom -lhubbub -lz -lexpat
+
+ WARN_SUPPRESS := -Wno-undef -Wno-redundant-decls -Wno-char-subscripts -Wno-undef -Wno-implicit-function-declaration -Wno-int-conversion -Wno-nested-externs -Wno-format-extra-args -Wno-format -Wno-pedantic
+ ERROR_SUPPRESS := -Wno-error=pedantic
+ CFLAGS += -c -fno-ident -fomit-frame-pointer -U__WIN32__ -U_Win32 -U_WIN32 -U__MINGW32__ -UWIN32 -U__BSD_VISIBLE $(KOL_LIBC_INCLUDES) -I$(NS_INCLUDE) $(KOL_NS_DEP_INCLUDES) $(WARN_SUPPRESS) $(ERROR_SUPPRESS)
+ LDFLAGS += $(OS_LDFLAGS) $(NS_LIB_LDFLAGS) $(LIB_LDFLAGS) -lc -lgcc -lc
+ endif
endif
# Default prefix
@@ -415,8 +451,12 @@ else
OPTLDFLAGS ?= $(LDDBG)
endif
-ifeq ($(origin ARFLAGS),default)
- ARFLAGS := $(ARFLG)
+ifneq ($(HOST),kolibrios)
+ ifeq ($(origin ARFLAGS),default)
+ ARFLAGS := $(ARFLG)
+ endif
+else
+ ARFLAGS := crs
endif
# TODO: This assumes that the C compiler can cope with assembler