[omniORB] Building OmniORB on MSYS2

Lucca-Daniau, Marc-Francois (GE Healthcare) Marc-Francois.Lucca-Daniau at ge.com
Tue Feb 12 17:17:17 GMT 2019


Hello,

OmniORB build on Windows is today supported with the Cygwin emulation layer, but not with the MSYS2 one.

While trying to do so, things go quite well, except a few issues:
1- MT.exe options are still prefixed by '/' (replace by '-')
2- "egrep" symbolic link not followed (replace by "grep -E")
3- DUMPBIN.exe option is still prefixed by '/' (hacked by '//', but no portable solution yet)

Below is our patch to show the needed changes for better Cygwin/MSYS2 portability.

Note: 'MFLD:' tag is for questions, and changes in configuration is to show our build context.

Thanks,

Marc-Francois LUCCA-DANIAU
Software Engineer - DL Infra Leader
Tél: +33 (0)1 30 70 42 56
Marc-Francois.Lucca-Daniau at ge.com

General Electric Healthcare
283, rue de la Minière
78 530 BUC - France

------------------------------------

diff --git a/README.FIRST.txt b/README.FIRST.txt index 4e02391..da33aca 100644
--- a/README.FIRST.txt
+++ b/README.FIRST.txt
@@ -21,6 +21,8 @@ README files
 README.win32.txt - contains important information on building and
                    using omniORB on Windows NT and Windows 95.
 
+MFLD: What about the Windows latest versions (2K, XP... 10) ?
+
 README.unix.txt  - contains important information on building and
                    using omniORB on Unix / Linux platforms, including
                    cross-compilation
@@ -84,7 +86,7 @@ planning on adding support for these features.
 - omniORB does not have its own Interface Repository. However, the
   omniifr project aims to create one. See
 
-    http://sourceforge.net/projects/omniifr/
+    https://github.com/omniorb/omniifr
 
 
 Installation	
@@ -95,6 +97,7 @@ Installation instructions are provided in the following files:
 - README.unix.txt  for all Unix / Linux platforms
 - README.win32.txt for Windows, both 32 and 64 bit.
 
+MFLD: so rename to README.win.txt ?
 
 Documentation
 =============
diff --git a/README.win32.txt b/README.win32.txt index 6ca6fa2..4a363a7 100644
--- a/README.win32.txt
+++ b/README.win32.txt
@@ -87,6 +87,7 @@ non-commercial use. You can get it from https://www.visualstudio.com/
     To build omniORB, you just need the standard tools from the base
     package, plus GNU make from the devel package.
 
+MFLD: add support of MSYS2 - currently testing...
 
     Python
     ------
diff --git a/bin/scripts/config.guess b/bin/scripts/config.guess index cd430f6..249c6a4 100644
--- a/bin/scripts/config.guess
+++ b/bin/scripts/config.guess
@@ -915,13 +915,13 @@ EOF
 		UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
 		echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
 	elif /bin/uname -X 2>/dev/null >/dev/null ; then
-		UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')`
-		(/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486
-		(/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \
+		UNAME_REL=`(/bin/uname -X|grep -E Release|sed -e 's/.*= //')`
+		(/bin/uname -X|grep -E i80486 >/dev/null) && UNAME_MACHINE=i486
+		(/bin/uname -X|grep -E '^Machine.*Pentium' >/dev/null) \
 			&& UNAME_MACHINE=i586
-		(/bin/uname -X|egrep '^Machine.*Pent ?II' >/dev/null) \
+		(/bin/uname -X|grep -E '^Machine.*Pent ?II' >/dev/null) \
 			&& UNAME_MACHINE=i686
-		(/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \
+		(/bin/uname -X|grep -E '^Machine.*Pentium Pro' >/dev/null) \
 			&& UNAME_MACHINE=i686
 		echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
 	else
diff --git a/config/config.mk b/config/config.mk index 67065c0..50b7fca 100644
--- a/config/config.mk
+++ b/config/config.mk
@@ -31,7 +31,7 @@
 #platform = x86_win32_vs_11
 #platform = x86_win32_vs_10
 #platform = x86_win32_vs_9
-#platform = x86_win32_vs_8
+platform = x86_win32_vs_8
 #platform = x86_win32_vs_7
 #platform = x86_win32_vs_6
 #platform = x86_win32_mingw
diff --git a/mk/platforms/x86_win32_dmc.mk b/mk/platforms/x86_win32_dmc.mk index b6a5914..54ac79f 100644
--- a/mk/platforms/x86_win32_dmc.mk
+++ b/mk/platforms/x86_win32_dmc.mk
@@ -149,7 +149,7 @@ echo "CODE SHARED EXECUTE" >> $$defname; \  echo "DATA WRITE" >> $$defname; \  echo "EXPORTS" >> $$defname; \  libunres -d $$symreflib | \ -egrep '^\?[^ ]*|^\?[^?][^ ]*' | fgrep -v "%" >> $$defname; \
+grep -E '^\?[^ ]*|^\?[^?][^ ]*' | fgrep -v "%" >> $$defname; \
 set +x;
 endef
 
diff --git a/mk/platforms/x86_win32_vs_8.mk b/mk/platforms/x86_win32_vs_8.mk index 1c92f4a..5e8ea2d 100644
--- a/mk/platforms/x86_win32_vs_8.mk
+++ b/mk/platforms/x86_win32_vs_8.mk
@@ -21,7 +21,7 @@ ABSTOP = $(shell cd $(TOP); pwd)  # version 3.5 or later.
 
 #PYTHON = /cygdrive/c/Python27/python
-#PYTHON = /cygdrive/c/Python36/python
+PYTHON = /e/Labs/Python35/python
 
 
 # Use the following set of flags to build and use multithreaded DLLs diff --git a/mk/win32.mk b/mk/win32.mk index 1508d39..2b71792 100644
--- a/mk/win32.mk
+++ b/mk/win32.mk
@@ -179,7 +179,7 @@ define CXXExecutable
  $(RM) $@; \
  $(CXXLINK) -out:$@ $(CXXLINKOPTIONS) -PDB:$@.pdb $(IMPORT_LIBRARY_FLAGS) \
       $(filter-out $(LibPattern),$^) $$libs; \
- $(MANIFESTTOOL) /outputresource:"$@;#1" /manifest $@.manifest; \
+ $(MANIFESTTOOL) -outputresource:"$@;#1" -manifest $@.manifest; \
 )
 endef
 
@@ -187,7 +187,7 @@ define CExecutable
 (set -x; \
  $(RM) $@; \
  $(CLINK) -out:$@ $(CLINKOPTIONS) -PDB:$@.pdb $(IMPORT_LIBRARY_FLAGS) $(filter-out $(LibPattern),$^) $$libs; \
- $(MANIFESTTOOL) /outputresource:"$@;#1" /manifest $@.manifest; \
+ $(MANIFESTTOOL) -outputresource:"$@;#1" -manifest $@.manifest; \
 )
 endef
 
@@ -269,11 +269,11 @@ set -x; \
 echo "LIBRARY $$dllbase" > $$defname; \  echo "VERSION $$version" >> $$defname; \  echo "EXPORTS" >> $$defname; \ -DUMPBIN.EXE /SYMBOLS $$symreflib | \ -egrep '^[^ ]+ +[^ ]+ +SECT[^ ]+ +[^ ]+ +\(\) +External +\| +\?[^ ]*|^[^ ]+ +[^ ]+ +SECT[^ ]+ +[^ ]+ +External +\| +\?[^?][^ ]*'|\ -egrep -v 'deleting destructor[^(]+\(unsigned int\)' | \ -egrep -v 'anonymous namespace' | \ -egrep -v '@std@' | \
+DUMPBIN.EXE //SYMBOLS $$symreflib | \
+grep -E '^[^ ]+ +[^ ]+ +SECT[^ ]+ +[^ ]+ +\(\) +External +\| +\?[^ 
+]*|^[^ ]+ +[^ ]+ +SECT[^ ]+ +[^ ]+ +External +\| +\?[^?][^ ]*'|\ grep 
+-E -v 'deleting destructor[^(]+\(unsigned int\)' | \ grep -E -v 
+'anonymous namespace' | \ grep -E -v '@std@' | \
 cut -d'|' -f2 | \
 cut -d' ' -f2 | $(SORT) -u >> $$defname; \  set +x; @@ -366,7 +366,7 @@ $(RM) $@; \
 $(CXXLINK) -out:$$dllname -DLL $$extralinkoption \  $$defflag -IMPLIB:$@ $(IMPORT_LIBRARY_FLAGS) \  $^ $$extralibs $$resname; \
-$(MANIFESTTOOL) /outputresource:"$$dllname;#2" /manifest $$dllname.manifest; \
+$(MANIFESTTOOL) -outputresource:"$$dllname;#2" -manifest 
+$$dllname.manifest; \
 $(CP) $@ $$slibname;
 endef




More information about the omniORB-list mailing list