EPICS Home

Experimental Physics and Industrial Control System


 
1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  <20092010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  <20092010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: AreaDetector, Compiling synApps modules for Windows Microsoft compiler
From: "Mark Rivers" <[email protected]>
To: "Timothy Madden" <[email protected]>, <[email protected]>
Date: Mon, 12 Jan 2009 12:46:12 -0600
Sorry, I sent the last message before I did the final paste.

Tim,

You should not need to do this.  You can use standard Windows file
paths, i.e. D:/EPICS/base-3.14.10.  You do, however, need a version of
gnu make for Windows which is not the latest version from Cygwin.  The
latest version on Cygwin does not work with the latest EPICS releases.
I can get you that version of make.  Unfortunately one cannot tell which
version one is running with "make -v", both the good and bad versions
report 3.81.

Here is a listing of the 2 versions on my Cygwin system:

$ ls -l make*
-rwx------+ 1 epics None  495190 May 23  2008 make.exe
-rwxr-x---+ 1 epics Users 151552 Feb  9  2008 make.exe.old

The one called .old does not work.  Here is the version of make reported
for each one:

$ ./make -v
GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for i686-pc-cygwin

rivers@Rivers-Mobile /bin
$ ./make.exe.old -v
GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for i686-pc-cygwin

rivers@Rivers-Mobile /bin
$

Mark


-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Timothy Madden
Sent: Monday, January 12, 2009 12:35 PM
To: [email protected]
Subject: AreaDetector, Compiling synApps modules for Windows Microsoft
compiler

Folks

I am making a soft IOC to run Mark River's area detector module (AD). AD

requires several synApps modules to run. I have built EPICS 3-14-10 
successfully with the MS Windows compiler (.NET 2003). I ran into a 
problem with the make utility  when compiling the synApps modules.

For example, to compile gensub using the windows compiler I have to set 
EPICS_BASE in the RELEASE file to something. I can use a DOS style  path

or a UNIX style path. If I set EPICS_BASE to D:/EPICS/base-3.14.10, the 
make system gives an error:



...RULES_TARGET:90 *** target pattern contains no '%'

This is due to the ':' in the DOS path. IN unix make land, the : is used

to concatenate variables and is not recognized as part of a path.

If I set EPICS_BASE to a UNIX path, say, 
EPICS_BASE=/cygdrive/d/epics/base I get another error.
The problem here is that make is attempting to pass UNIX paths to the 
Microsoft compiler, cl. cl does not understand
UNIX paths as arguments.

I found a way to compile that seems to work OK.
This is in the top make file, say in gensub/1-6a.
TOP=/.
Put this in the top of the configure/RELEASE file:
EPICS_BASE=$(TOP)/../../../../base-3.14.10

Now we only use relative paths. IN this way we never have to use a : in 
the pathname, and both DOS and gnu make can
understand the paths.

I propose we change the Makefile Rules to include calls to
shell cygpath ....
cygpath can convert UNIX paths to DOS and vice versa

IN this way we can use
if HOST_ARCH= win32-x86
to conditionally call cygpath within the make system to convert to the 
proper paths.
This way we could would not even have to have a RELEASE.win32-x86 file. 
The make system would automatically convert
 the path names to DOS or UNIX depending on which type of path is
needed.

Tim Madden






References:
AreaDetector, Compiling synApps modules for Windows Microsoft compiler Timothy Madden
RE: AreaDetector, Compiling synApps modules for Windows Microsoft compiler Mark Rivers

Navigate by Date:
Prev: RE: AreaDetector, Compiling synApps modules for Windows Microsoft compiler Mark Rivers
Next: RE: USB streaming device to linux/epics Mark Rivers
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  <20092010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: RE: AreaDetector, Compiling synApps modules for Windows Microsoft compiler Mark Rivers
Next: Re: AreaDetector, Compiling synApps modules for Windows Microsoft compiler Andrew Johnson
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  <20092010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024