Hi Hugo,
I have done this by just using a few new files and soft links in base/configure/os.
So in addition to linux-x86 and linux-x86_64 I am building for 3 additional Linux architectures which I call linux-x86_64-gcc42, linux-x86-gcc43, and linux-x86_64-rhel6
lrwxrwxrwx 1 epics epics 26 Dec 9 2015 CONFIG.Common.linux-x86_64-rhel6 -> CONFIG.Common.linux-x86_64
lrwxrwxrwx 1 epics epics 26 Dec 9 2015 CONFIG.linux-x86_64-rhel6.Common -> CONFIG.linux-x86_64.Common
lrwxrwxrwx 1 epics epics 32 Dec 9 2015 CONFIG.linux-x86_64-rhel6.linux-x86_64-rhel6 -> CONFIG.linux-x86_64.linux-x86_64
lrwxrwxrwx 1 epics epics 23 May 7 2015 CONFIG.Common.linux-x86-gcc43 -> CONFIG.Common.linux-x86
lrwxrwxrwx 1 epics epics 26 May 6 2015 CONFIG.Common.linux-x86_64-gcc42 -> CONFIG.Common.linux-x86_64
lrwxrwxrwx 1 epics epics 23 May 7 2015 CONFIG.linux-x86-gcc43.Common -> CONFIG.linux-x86.Common
lrwxrwxrwx 1 epics epics 26 May 7 2015 CONFIG.linux-x86-gcc43.linux-x86-gcc43 -> CONFIG.linux-x86.linux-x86
lrwxrwxrwx 1 epics epics 26 May 6 2015 CONFIG.linux-x86_64-gcc42.Common -> CONFIG.linux-x86_64.Common
lrwxrwxrwx 1 epics epics 32 May 6 2015 CONFIG.linux-x86_64-gcc42.linux-x86_64-gcc42 -> CONFIG.linux-x86_64.linux-x86_64
-rw-r--r-- 1 epics epics 1828 May 7 2015 CONFIG_SITE.Common.linux-x86-gcc43
-rw-r--r-- 1 epics epics 1833 May 6 2015 CONFIG_SITE.Common.linux-x86_64-gcc42
For files which need to be different from the distribution files I create new files, while for those that just need a different name I use soft links.
In my case those additional architectures are on different computers that all share the same file system. I just change the login files on those computers to define EPICS_HOST_ARCH
as appropriate.
Mark
From: [email protected] [mailto:[email protected]]
On Behalf Of Hugo Slepicka
Sent: Monday, January 09, 2017 11:37 AM
To: [email protected]
Subject: Multiple OS Build
I would like some input from the community regarding the organization of EPICS build for multiple OS targets (not cross-compiling), e.g. RHEL (5, 6, 7), Debian and other flavors available to coexist in a shared directory structure.
How is the community handling cases similar to rhel7-x86_64 versus rhel6-x86_64 given that "EPICS_HOST_ARCH" returns "linux-x86_64" for both?
One possible solutions would be to use something like:
<shared_path>/<os_version>/base/.../<EPICS_HOST_ARCH>/...
- where os_version would be: rhel5, rhel6, deb7, deb8, etc.
Another solution would be to apply a local patch to the EPICS building system to return a specific value for EPICS_HOST_ARCH including the <os_version>, e.g. rhel6-x86_64, resulting in something like this:
<shared_path>/base/.../<NEW_EPICS_HOST_ARCH>/...