From d49b8e62fe2d77e84699451c93ecd008a3955376 Mon Sep 17 00:00:00 2001 From: NicJA Date: Fri, 14 Apr 2017 16:33:19 +0000 Subject: [PATCH] # move iconv's headers and libs out of the main developer directory, so that it isn't found by configure unless explicitly included. # adapt existing code to use iconv from its new location, fixing issues compiling the native GCC toolchain when iconv gets built before it. git-svn-id: https://svn.aros.org/svn/aros/trunk/contrib@54517 fb15a70f-31f2-0310-bbcc-cdcc74a49acc --- Games/lbreakout2/mmakefile.src | 6 +++++- Games/spout/mmakefile.src | 3 +++ MultiMedia/cdxlplay/mmakefile.src | 4 ++-- Networking/Apps/OWB/WebView/mmakefile.src | 4 +++- Networking/Apps/OWB/mmakefile.src | 7 +++++-- SDL/SDL_gfx/mmakefile.src | 5 ++++- SDL/SDL_main/mmakefile.src | 10 ++++++---- SDL/SDL_mixer/mmakefile.src | 5 ++++- SDL/SDL_net/mmakefile.src | 8 +++++--- development/libs/libiconv/mmakefile.src | 15 ++++++++++++--- development/libs/libintl/mmakefile.src | 2 ++ gnu/gcc/mmakefile.src | 23 +++++++++++++++++++++++ 12 files changed, 74 insertions(+), 18 deletions(-) diff --git a/Games/lbreakout2/mmakefile.src b/Games/lbreakout2/mmakefile.src index 75f5634b5..3950e5549 100644 --- a/Games/lbreakout2/mmakefile.src +++ b/Games/lbreakout2/mmakefile.src @@ -9,9 +9,13 @@ include $(SRCDIR)/config/aros-contrib.cfg #MM- contrib-games-quick : contrib-games-lbreakout2-quick #MM- lbreakout2-quick : contrib-games-lbreakout2-quick +USER_INCLUDES := -I$(AROS_CONTRIB_INCLUDES) +USER_CFLAGS := -DSDL_NET_ENABLED +USER_LDFLAGS := -L$(AROS_CONTRIB_LIB) + %build_with_configure mmake=contrib-games-lbreakout2 nix=yes \ extraoptions="--bindir='$$(PROGDIR)' --datarootdir='$$(PROGDIR)data' \ --localstatedir='$$(PROGDIR)var' --docdir='$$(PROGDIR)docs' \ --disable-sdltest --with-docdir='$$(PROGDIR)docs' --program-prefix='' \ - CFLAGS='-DSDL_NET_ENABLED' LIBS='-lmikmod -lvorbisfile -lvorbis -logg -lSDL_net'" \ + LIBS='-lmikmod -lvorbisfile -lvorbis -logg -lSDL_net'" \ prefix=$(AROS_CONTRIB)/Games/Action/LBreakout2 nix_dir_layout=no diff --git a/Games/spout/mmakefile.src b/Games/spout/mmakefile.src index a728b8fcb..c3f4c3d2b 100644 --- a/Games/spout/mmakefile.src +++ b/Games/spout/mmakefile.src @@ -8,6 +8,9 @@ include $(SRCDIR)/config/aros-contrib.cfg #MM- contrib-games-quick : contrib-games-spout-quick #MM- spout-quick : contrib-games-spout-quick +USER_INCLUDES := -I$(AROS_CONTRIB_INCLUDES) +USER_LDFLAGS := -L$(AROS_CONTRIB_LIB) + %build_with_configure mmake=contrib-games-spout nix=yes \ extraoptions="--disable-sdl-test" \ prefix=$(AROS_CONTRIB)/Games/Action/Spout nix_dir_layout=no diff --git a/MultiMedia/cdxlplay/mmakefile.src b/MultiMedia/cdxlplay/mmakefile.src index 9cebb3ab2..c706bd831 100644 --- a/MultiMedia/cdxlplay/mmakefile.src +++ b/MultiMedia/cdxlplay/mmakefile.src @@ -17,8 +17,8 @@ FILES := \ NOWARN_FLAGS := USER_CFLAGS := $(NOWARN_FLAGS) -USER_INCLUDES := -I$(SRCDIR)/$(CURDIR)/include -USER_LDFLAGS := +USER_INCLUDES := -I$(SRCDIR)/$(CURDIR)/include -I$(AROS_CONTRIB_INCLUDES) +USER_LDFLAGS := -L$(AROS_CONTRIB_LIB) #MM- contrib : contrib-multimedia-cdxlplay #MM contrib-multimedia-cdxlplay : includes linklibs development-sdl diff --git a/Networking/Apps/OWB/WebView/mmakefile.src b/Networking/Apps/OWB/WebView/mmakefile.src index 9aba4ba50..e1de85f09 100644 --- a/Networking/Apps/OWB/WebView/mmakefile.src +++ b/Networking/Apps/OWB/WebView/mmakefile.src @@ -38,6 +38,8 @@ NOWARN_CFLAGS := $(NOWARN_ERROR) $(NOWARN_UNUSED_VARIABLE) $(NOWARN_WRITE_STRING NOWARN_CXXFLAGS := $(NOWARN_CFLAGS) $(NOWARN_CONVERSION_NULL) USER_CFLAGS := $(NOWARN_CFLAGS) USER_CXXFLAGS := -std=gnu++98 $(NOWARN_CXXFLAGS) +USER_INCLUDES := -I$(AROS_CONTRIB_INCLUDES) +USER_LDFLAGS := -L$(AROS_CONTRIB_LIB) OWB_OPTIONS := \ -DENABLE_DATABASE:BOOL=ON \ @@ -49,7 +51,7 @@ OWB_OPTIONS := \ -DJPEG_INCLUDE_DIR=$(AROS_DEVELOPER)/include/ \ -DOWB_BASE_DEPS_LIBRARIES=$(AROS_DEVELOPER)/lib/libxml2.a \ -DOWB_BASE_DEPS_INCLUDE_DIRS=$(AROS_DEVELOPER)/include/libxml2 \ - -DCURL_LIBRARIES="$(AROS_DEVELOPER)/lib/libcurl.a;$(AROS_DEVELOPER)/lib/libiconv.a;$(AROS_DEVELOPER)/lib/libz.a;$(AROS_DEVELOPER)/lib/libssl.a;$(AROS_DEVELOPER)/lib/libcrypto.a;" \ + -DCURL_LIBRARIES="$(AROS_DEVELOPER)/lib/libcurl.a;$(AROS_CONTRIB_LIB)/libiconv.a;$(AROS_DEVELOPER)/lib/libz.a;$(AROS_DEVELOPER)/lib/libssl.a;$(AROS_DEVELOPER)/lib/libcrypto.a;" \ -DCURL_INCLUDE_DIRS=$(AROS_DEVELOPER)/include/ \ -DPNG12_LIBRARIES=$(AROS_DEVELOPER)/lib/libpng.a \ -DPNG12_INCLUDE_DIRS=$(AROS_DEVELOPER)/include/ \ diff --git a/Networking/Apps/OWB/mmakefile.src b/Networking/Apps/OWB/mmakefile.src index 87bd1f33d..608e9c5cb 100644 --- a/Networking/Apps/OWB/mmakefile.src +++ b/Networking/Apps/OWB/mmakefile.src @@ -6,6 +6,8 @@ include $(SRCDIR)/config/aros-contrib.cfg EXEDIR := $(AROS_CONTRIB)/Networking/Apps/OWB USER_CFLAGS := -DZUNE_BUILTIN_SCROLLGROUP=0 -DWTF_PLATFORM_AROS=1 +USER_INCLUDES := -I$(AROS_CONTRIB_INCLUDES) +USER_LDFLAGS := -L$(AROS_CONTRIB_LIB) %build_prog mmake=aros-tcpip-apps-startowb \ files="startowb locale" targetdir=$(EXEDIR) \ @@ -58,8 +60,9 @@ endif #TODO: Link OWB with shared library version of freetype2 USER_CFLAGS := -DZUNE_BUILTIN_SCROLLGROUP=0 -DMUIMASTER_YES_INLINE_STDARG \ - -DWTF_PLATFORM_AROS=1 -I$(SRCDIR)/$(CURDIR)/tabs -I$(AROS_INCLUDES)/SDL \ - -I$(AROS_INCLUDES)/webkit-owb + -DWTF_PLATFORM_AROS=1 +USER_INCLUDES := -I$(SRCDIR)/$(CURDIR)/tabs -I$(AROS_INCLUDES)/SDL \ + -I$(AROS_INCLUDES)/webkit-owb -I$(AROS_CONTRIB_INCLUDES) %build_prog mmake=aros-tcpip-apps-owb progname=owb targetdir=$(EXEDIR) \ files="$(FILES)" uselibs="webkit-owb webcore wtf jsc webkit-owb $(I18N_LIBS) codesets thread xml2 fontconfig freetype2.static SDL SDL_gfx GL png jpeg curl iconv z mui ssl crypto sqlite3 xslt thread stdc++ pthread" diff --git a/SDL/SDL_gfx/mmakefile.src b/SDL/SDL_gfx/mmakefile.src index 31ea40b9f..8d2fa2144 100644 --- a/SDL/SDL_gfx/mmakefile.src +++ b/SDL/SDL_gfx/mmakefile.src @@ -1,4 +1,4 @@ -# Copyright © 2004-2014, The AROS Development Team. All rights reserved. +# Copyright © 2004-2017, The AROS Development Team. All rights reserved. # $Id$ include $(SRCDIR)/config/aros-contrib.cfg @@ -17,6 +17,9 @@ else DISABLE_MMX := endif +USER_INCLUDES := -I$(AROS_CONTRIB_INCLUDES) +USER_LDFLAGS := -L$(AROS_CONTRIB_LIB) + REPOSITORIES := http://www.ferzkopp.net/Software/SDL_gfx-2.0 \ ftp://ftp.netbsd.org/pub/pkgsrc/distfiles diff --git a/SDL/SDL_main/mmakefile.src b/SDL/SDL_main/mmakefile.src index a34bc42c9..9a03f106b 100644 --- a/SDL/SDL_main/mmakefile.src +++ b/SDL/SDL_main/mmakefile.src @@ -1,4 +1,4 @@ -# Copyright © 2009-2013, The AROS Development Team. All rights reserved. +# Copyright © 2009-2017, The AROS Development Team. All rights reserved. # $Id$ include $(SRCDIR)/config/aros-contrib.cfg @@ -105,9 +105,11 @@ FILES := \ $(ARCHSRCDIR)/src/video/cgx/SDL_cgxvideo \ $(ARCHSRCDIR)/src/video/cgx/SDL_cgxwm -SDLINCDIR := $(AROS_DEVELOPER)/include/SDL +SDLINCDIR := $(AROS_INCLUDES)/SDL -USER_INCLUDES := -I$(SDLINCDIR) -I$(ARCHSRCDIR) -I$(ARCHSRCDIR)/src -DSDL_AROS_SHARED +USER_INCLUDES := -I$(SDLINCDIR) -I$(ARCHSRCDIR) -I$(ARCHSRCDIR)/src -I$(AROS_CONTRIB_INCLUDES) +USER_CFLAGS := -DSDL_AROS_SHARED +USER_LDFLAGS := -L$(AROS_CONTRIB_LIB) %build_module mmake=SDL-aros-sharedlib \ modname=SDL modtype=library \ @@ -116,7 +118,7 @@ USER_INCLUDES := -I$(SDLINCDIR) -I$(ARCHSRCDIR) -I$(ARCHSRCDIR)/src -DSDL_AROS_S #MM SDL-aros-staticlib : SDL-aros-includes -USER_INCLUDES := -I$(SDLINCDIR) -I$(ARCHSRCDIR) -I$(ARCHSRCDIR)/src +USER_CFLAGS := %build_linklib mmake=SDL-aros-staticlib libname=SDL_static \ files="$(FILES)" diff --git a/SDL/SDL_mixer/mmakefile.src b/SDL/SDL_mixer/mmakefile.src index 08a783d9c..a4b0d8a00 100644 --- a/SDL/SDL_mixer/mmakefile.src +++ b/SDL/SDL_mixer/mmakefile.src @@ -1,4 +1,4 @@ -# Copyright © 2004-2011, The AROS Development Team. All rights reserved. +# Copyright © 2004-2017, The AROS Development Team. All rights reserved. # $Id$ include $(SRCDIR)/config/aros-contrib.cfg @@ -7,6 +7,9 @@ include $(SRCDIR)/config/aros-contrib.cfg #MM- development-SDL_mixer : SDL-aros-lib development-libvorbis development-libmikmod +USER_INCLUDES := -I$(AROS_CONTRIB_INCLUDES) +USER_LDFLAGS := -L$(AROS_CONTRIB_LIB) + %fetch_and_build_gnu_development package=SDL_mixer version=1.2.11 patch=yes \ package_repo=http://www.libsdl.org/projects/SDL_mixer/release/ \ suffixes="tar.gz" extraoptions="LIBMIKMOD_CONFIG='$(AROS_DEVELOPER)/bin/libmikmod-config' --disable-music-mp3 --enable-music-mod --disable-music-mod-shared --disable-music-ogg-shared --disable-music-cmd --disable-music-flac libdir=$(AROS_LIB)" diff --git a/SDL/SDL_net/mmakefile.src b/SDL/SDL_net/mmakefile.src index 987f4f7f9..46fcc3ff9 100644 --- a/SDL/SDL_net/mmakefile.src +++ b/SDL/SDL_net/mmakefile.src @@ -1,4 +1,4 @@ -# Copyright © 2008-2010, The AROS Development Team. All rights reserved. +# Copyright © 2008-2017, The AROS Development Team. All rights reserved. # $Id$ include $(SRCDIR)/config/aros-contrib.cfg @@ -7,9 +7,11 @@ include $(SRCDIR)/config/aros-contrib.cfg #MM- development-SDL_net : SDL-aros-lib -SDLNETCFLAGS := $(OPTIMIZATION_CFLAGS) -D__BSD_VISIBLE=1 +USER_INCLUDES := -I$(AROS_CONTRIB_INCLUDES) +USER_CFLAGS := -D__BSD_VISIBLE=1 +USER_LDFLAGS := -L$(AROS_CONTRIB_LIB) %fetch_and_build_gnu_development package=SDL_net version=1.2.7 patch=yes \ package_repo=http://www.libsdl.org/projects/SDL_net/release/ \ - suffixes="tar.gz" extracflags="$(SDLNETCFLAGS)" extraoptions="libdir=$(AROS_LIB)" + suffixes="tar.gz" extraoptions="libdir=$(AROS_LIB)" diff --git a/development/libs/libiconv/mmakefile.src b/development/libs/libiconv/mmakefile.src index 06192ddb4..25f9adbea 100644 --- a/development/libs/libiconv/mmakefile.src +++ b/development/libs/libiconv/mmakefile.src @@ -1,12 +1,21 @@ -# Copyright © 2008-2016, The AROS Development Team. All rights reserved. +# Copyright © 2008-2017, The AROS Development Team. All rights reserved. # $Id$ include $(SRCDIR)/config/aros-contrib.cfg +# +# N.B -: +# iconv is not placed directly in AROS_DEVELOPER/INCLUDE/LIB +# its presence there can cause some components to fail to compile, +# such as the native gnu toolchain. +# code using it should explicitly include AROS_CONTRIB_DEVELOPER/INCLUDE/LIB +# + #MM- contrib-development : contrib-libiconv #MM- contrib-libiconv : development-libiconv -#MM- libiconv-includes : contrib-libiconv +#MM- includes-iconv : contrib-libiconv +#MM- linklibs-iconv : contrib-libiconv %fetch_and_build_gnu_development package=libiconv version=1.14 patch=no \ - suffixes="tar.gz" extraoptions="--libdir=$(AROS_LIB)" + prefix=$(AROS_CONTRIB_DEVELOPER) suffixes="tar.gz" extraoptions="--bindir=$(AROS_DEVELOPER)/bin --libdir=$(AROS_CONTRIB_LIB)" diff --git a/development/libs/libintl/mmakefile.src b/development/libs/libintl/mmakefile.src index 3f90ece81..56237107b 100644 --- a/development/libs/libintl/mmakefile.src +++ b/development/libs/libintl/mmakefile.src @@ -28,6 +28,8 @@ INTL_FILES = \ dngettext \ USER_CFLAGS := -DHAVE_ICONV=1 -D'LOCALEDIR="PROGDIR:i18n"' -DIN_LIBINTL -DHAVE_UNISTD_H=1 -DHAVE_STPCPY=1 -DHAVE_GETCWD=1 -DHAVE_INTTYPES_H=1 +USER_INCLUDES := -I$(AROS_CONTRIB_INCLUDES) +USER_LDFLAGS := -L$(AROS_CONTRIB_LIB) %build_linklib mmake=contrib-development-libs-libintl libname=intl \ files="$(INTL_FILES)" diff --git a/gnu/gcc/mmakefile.src b/gnu/gcc/mmakefile.src index ed5fb4fc4..4cc0f175d 100644 --- a/gnu/gcc/mmakefile.src +++ b/gnu/gcc/mmakefile.src @@ -17,7 +17,9 @@ ifneq (no-java,$(JAVA_TARGET)) GCC_LANGUAGES:=$(GCC_LANGUAGES),java endif +# # ARM requires additional flags to determine CPU type and FP model +# ifneq (,$(findstring $(AROS_TARGET_CPU),arm)) GCC_EXTRA_OPTS += --with-arch=$(GCC_DEFAULT_CPU) GCC_EXTRA_OPTS += --with-float=$(GCC_DEFAULT_FLOAT_ABI) @@ -48,6 +50,27 @@ GCC_HOST_VARS += \ am_cv_func_iconv=no \ ac_cv_header_iconv_h=no \ +# +# GCC will fail to build if iconv is found, so check and generate an error if it +# is present. +# +INVALID_ICONV=false +# Check if iconv is incorrectly installed in the Dev env.. +if [ -a $(AROS_INCLUDE)/iconv.h ] ; \ +then \ + INVALID_ICONV=true ; \ +fi; +if [ -a $(AROS_LIB)/libiconv.a ] ; \ +then \ + INVALID_ICONV=true ; \ +fi; +ifneq (false,$(INVALID_ICONV)) +$(error iconv incorrect installed - please remove it from the developer environement) +endif + +# +# Rules to build the native GCC compiler. +# %fetch_and_build_gnu_development package=gcc version=$(GCC_VERSION) crossbuild=yes patch=yes \ package_repo="$(GNU_REPOSITORY)/gcc/gcc-$(GCC_VERSION)" \ config_env_extra=$(GCC_HOST_VARS) extraoptions=$(GCC_EXTRA_OPTS) \ -- 2.11.4.GIT