Building OmniORB on MSYS2

"Lucca-Daniau, Marc-Francois \(GE Healthcare\) via omniORB-list" <[email protected]> Tue, 12 Feb 2019 17:17:17 +0000
Newsgroups gmane.comp.corba.omniorb.user
Message-ID <DB6P101MB02460988E08984FC67EBA3C9E7650@DB6P101MB0246.NAMP101.PROD.OUTLOOK.COM>
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
[email protected]

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:[email protected] $(IMPORT_LIBRARY_FLAGS) \
       $(filter-out $(LibPattern),$^) $$libs; \
- $(MANIFESTTOOL) /outputresource:"$@;#1" /manifest [email protected]; \
+ $(MANIFESTTOOL) -outputresource:"$@;#1" -manifest [email protected]; \
 )
 endef
 
@@ -187,7 +187,7 @@ define CExecutable
 (set -x; \
  $(RM) $@; \
  $(CLINK) -out:$@ $(CLINKOPTIONS) -PDB:[email protected] $(IMPORT_LIBRARY_FLAGS) $(filter-out $(LibPattern),$^) $$libs; \
- $(MANIFESTTOOL) /outputresource:"$@;#1" /manifest [email protected]; \
+ $(MANIFESTTOOL) -outputresource:"$@;#1" -manifest [email protected]; \
 )
 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


_______________________________________________
omniORB-list mailing list
[email protected]
http://www.omniorb-support.com/mailman/listinfo/omniorb-list