diff options
author | Ashish Gupta <ashmew2@gmail.com> | 2017-04-14 13:42:37 +0200 |
---|---|---|
committer | Ashish Gupta <ashmew2@gmail.com> | 2017-04-15 09:36:53 +0200 |
commit | 5d95452cbf9d3f876000943bd7a72cd4798f0e0b (patch) | |
tree | 1e9f709460f577c255b0b13444dff7a5b726517d | |
parent | 37bf169dab81e00fb0c3fd6b35c992684f018c11 (diff) | |
download | buildsystem-5d95452cbf9d3f876000943bd7a72cd4798f0e0b.tar.gz buildsystem-5d95452cbf9d3f876000943bd7a72cd4798f0e0b.tar.bz2 |
Patch Makefile.tools to support cross compiling from Linux to KolibriOS
-rw-r--r-- | makefiles/Makefile.tools | 52 |
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 |