All of lore.kernel.org
 help / color / mirror / Atom feed
* [meta-mingw] Patch to replace .sh with Win style batch files
@ 2015-01-07 20:31 Mark Hatle
  2015-01-07 20:31 ` [meta-mingw][PATCH] meta-environment: Update environment files to " Mark Hatle
  0 siblings, 1 reply; 2+ messages in thread
From: Mark Hatle @ 2015-01-07 20:31 UTC (permalink / raw)
  To: yocto

When using meta-mingw to build a Windows compatible SDK, we should be 
generating .bat files instead of .sh files to setup the environment.

We also want to make sure the resulting files are in windows format,
i.e. contain the \r.

Mark Hatle (1):
  meta-environment: Update environment files to batch files

 classes/toolchain-scripts-mingw32.bbclass   | 87 +++++++++++++++++++++++++++++
 recipes-core/meta/meta-environment.bbappend |  4 ++
 2 files changed, 91 insertions(+)
 create mode 100644 classes/toolchain-scripts-mingw32.bbclass
 create mode 100644 recipes-core/meta/meta-environment.bbappend

-- 
1.9.3



^ permalink raw reply	[flat|nested] 2+ messages in thread

* [meta-mingw][PATCH] meta-environment: Update environment files to batch files
  2015-01-07 20:31 [meta-mingw] Patch to replace .sh with Win style batch files Mark Hatle
@ 2015-01-07 20:31 ` Mark Hatle
  0 siblings, 0 replies; 2+ messages in thread
From: Mark Hatle @ 2015-01-07 20:31 UTC (permalink / raw)
  To: yocto

Since the environment .sh files can't be used on a normal windows machine,
change to providing .bat files instead.  The same mechanisms normally used
can be used on the Windows command line. i.e.

Unix way:
$ source environment-setup-armv5te-wrs-linux-gnueabi.sh
$ $CC hello.c

Win32 way:
C:\Users\mhatle\win-sdk>environment-setup-armv5te-wrs-linux-gnueabi.bat

C:\Users\mhatle\win-sdk>%CC% hello.c

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
---
 classes/toolchain-scripts-mingw32.bbclass   | 87 +++++++++++++++++++++++++++++
 recipes-core/meta/meta-environment.bbappend |  4 ++
 2 files changed, 91 insertions(+)
 create mode 100644 classes/toolchain-scripts-mingw32.bbclass
 create mode 100644 recipes-core/meta/meta-environment.bbappend

diff --git a/classes/toolchain-scripts-mingw32.bbclass b/classes/toolchain-scripts-mingw32.bbclass
new file mode 100644
index 0000000..5ac69a1
--- /dev/null
+++ b/classes/toolchain-scripts-mingw32.bbclass
@@ -0,0 +1,87 @@
+# Based off of the oe-core meta/classes/toolchain-scripts.bbclass version
+toolchain_create_sdk_env_script_sdkmingw32 () {
+	# Create environment setup script
+	libdir=${4:-${libdir}}
+	sysroot=${3:-${SDKTARGETSYSROOT}}
+	sysroot=${sysroot##${SDKPATH}}
+	pathnative=${SDKPATHNATIVE}
+	pathnative=${pathnative##${SDKPATH}}
+	multimach_target_sys=${2:-${REAL_MULTIMACH_TARGET_SYS}}
+	script=${1:-${SDK_OUTPUT}/${SDKPATH}/environment-setup-$multimach_target_sys}.bat
+	rm -f $script
+	touch $script
+	echo 'set SDKROOT=%~dp0%' >> $script
+	echo 'set SDKTARGETSYSROOT=%SDKROOT%'"$sysroot" >> $script
+	EXTRAPATH=""
+	for i in ${CANADIANEXTRAOS}; do
+		EXTRAPATH="$EXTRAPATH;%~\$PATH:0%$pathnative${bindir_nativesdk}/${TARGET_ARCH}${TARGET_VENDOR}-$i"
+	done
+	echo 'set PATH=%SDKROOT%'"$pathnative"'${bindir_nativesdk};%SDKROOT%'"$pathnative"'${bindir_nativesdk}/${TARGET_SYS}'"$EXTRAPATH"';%PATH%' >> $script
+	echo 'set PKG_CONFIG_SYSROOT_DIR=%SDKTARGETSYSROOT%' >> $script
+	echo 'set PKG_CONFIG_PATH=%SDKTARGETSYSROOT%'"$libdir"'/pkgconfig' >> $script
+	echo 'set CONFIG_SITE=%SDKROOT%/site-config-'"${multimach_target_sys}" >> $script
+	echo 'set OECORE_NATIVE_SYSROOT=%SDKROOT%'"$pathnative" >> $script
+	echo 'set OECORE_TARGET_SYSROOT=%SDKTARGETSYSROOT%' >> $script
+	echo 'set OECORE_ACLOCAL_OPTS=-I %SDKROOT%'"$pathnative"'/usr/share/aclocal' >> $script
+	echo 'set PYTHONHOME=%SDKROOT%'"$pathnative"'${prefix_nativesdk}' >> $script
+
+	toolchain_shared_env_script
+
+	# Change unix '/' to Win32 '\'
+	sed -e 's,/,\\,g' -i $script
+
+	# Make the file windows friendly...
+	awk 'sub("$", "\r")' $script > $script.new
+	mv $script.new $script
+}
+
+toolchain_shared_env_script_sdkmingw32 () {
+	echo 'set CC=${TARGET_PREFIX}gcc ${TARGET_CC_ARCH} --sysroot=%SDKTARGETSYSROOT%' >> $script
+	echo 'set CXX=${TARGET_PREFIX}g++ ${TARGET_CC_ARCH} --sysroot=%SDKTARGETSYSROOT%' >> $script
+	echo 'set CPP=${TARGET_PREFIX}gcc -E ${TARGET_CC_ARCH} --sysroot=%SDKTARGETSYSROOT%' >> $script
+	echo 'set AS=${TARGET_PREFIX}as ${TARGET_AS_ARCH}' >> $script
+	echo 'set LD=${TARGET_PREFIX}ld ${TARGET_LD_ARCH} --sysroot=%SDKTARGETSYSROOT%' >> $script
+	echo 'set GDB=${TARGET_PREFIX}gdb' >> $script
+	echo 'set STRIP=${TARGET_PREFIX}strip' >> $script
+	echo 'set RANLIB=${TARGET_PREFIX}ranlib' >> $script
+	echo 'set OBJCOPY=${TARGET_PREFIX}objcopy' >> $script
+	echo 'set OBJDUMP=${TARGET_PREFIX}objdump' >> $script
+	echo 'set AR=${TARGET_PREFIX}ar' >> $script
+	echo 'set NM=${TARGET_PREFIX}nm' >> $script
+	echo 'set M4=m4' >> $script
+	echo 'set TARGET_PREFIX=${TARGET_PREFIX}' >> $script
+	echo 'set CONFIGURE_FLAGS=--target=${TARGET_SYS} --host=${TARGET_SYS} --build=${SDK_ARCH}-linux --with-libtool-sysroot=%SDKTARGETSYSROOT%' >> $script
+	echo 'set CFLAGS=${TARGET_CFLAGS}' >> $script
+	echo 'set CXXFLAGS=${TARGET_CXXFLAGS}' >> $script
+	echo 'set LDFLAGS=${TARGET_LDFLAGS}' >> $script
+	echo 'set CPPFLAGS=${TARGET_CPPFLAGS}' >> $script
+	echo 'set OECORE_DISTRO_VERSION=${DISTRO_VERSION}' >> $script
+	echo 'set OECORE_SDK_VERSION=${SDK_VERSION}' >> $script
+	echo 'set ARCH=${ARCH}' >> $script
+	echo 'set CROSS_COMPILE=${TARGET_PREFIX}' >> $script
+
+	cat >> $script <<EOF
+
+@REM Append environment subscripts
+
+@IF EXIST %OECORE_TARGET_SYSROOT%\\environment-setup.d (
+   FOR %%x IN (%OECORE_TARGET_SYSROOT%\\environment-setup.d\\*.bat) DO call "%%x"
+)
+
+@IF EXIST %OECORE_NATIVE_SYSROOT%\\environment-setup.d (
+   FOR %%x IN (%OECORE_NATIVE_SYSROOT%\\environment-setup.d\\*.bat) DO call "%%x"
+)
+EOF
+}
+
+toolchain_create_sdk_siteconfig_append_sdkmingw32 () {
+        # Make the file windows friendly...
+        awk 'sub("$", "\r")' $siteconfig > $siteconfig.new
+        mv $siteconfig.new $siteconfig
+}
+
+toolchain_create_sdk_version_append_sdkmingw32 () {
+        # Make the file windows friendly...
+        awk 'sub("$", "\r")' $versionfile > $versionfile.new
+        mv $versionfile.new $versionfile
+}
diff --git a/recipes-core/meta/meta-environment.bbappend b/recipes-core/meta/meta-environment.bbappend
new file mode 100644
index 0000000..93f6ff0
--- /dev/null
+++ b/recipes-core/meta/meta-environment.bbappend
@@ -0,0 +1,4 @@
+TCSCRIPTS ?= ""
+TCSCRIPTS_sdkmingw32 = "toolchain-scripts-mingw32"
+
+inherit ${TCSCRIPTS_sdkmingw32}
-- 
1.9.3



^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2015-01-07 20:31 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-01-07 20:31 [meta-mingw] Patch to replace .sh with Win style batch files Mark Hatle
2015-01-07 20:31 ` [meta-mingw][PATCH] meta-environment: Update environment files to " Mark Hatle

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.