Experimental Physics and Industrial Control System
This discussion moved off tech-talk before it was resolved. The problem turns out to be a bug in makeBaseApp.pl. The newer versions of Cygwin make no longer accept Windows-style path names, only Unix-style path names. By default makeBaseApp.pl is generating a line like the following in example/configure/RELEASE:
EPICS_BASE=C:/EPICS/base
Cygwin make does not allow that. It should be:
EPICS_BASE=/cygdrive/c/EPICS/base
Simply editing configure/RELEASE allowed the build to succeed for Cid with the latest version of Cygwin make.
Mark
________________________________
From: Mark Rivers
Sent: Tue 11/8/2011 12:27 PM
To: 'Cid, Florencio A'; Ron Sluiter
Cc: [email protected]
Subject: RE: IOC make error
OK, perhaps your problem is just in the syntax you are using to define paths. It looks like you have defined EPICS_BASE to be C:/EPICS/base. I would suggest instead defining it as /cygdrive/c/EPICS/base. With that syntax then perhaps the standard Cygwin make will work? You can either edit /cygdrive/c/mytop/configure/RELEASE or run makeBaseApp again.
Mark
________________________________
From: Cid, Florencio A [mailto:[email protected]]
Sent: Tuesday, November 08, 2011 12:18 PM
To: Mark Rivers; Ron Sluiter
Cc: [email protected]
Subject: RE: IOC make error
Mark,
Using the make.exe received from you, I was able to get successfully compile the example IOC, but encountered the following (see below).
$ make clean
make -C ./configure clean
make[1]: Entering directory `/cygdrive/c/mytop/configure'
rm -rf O.cygwin-x86 O.Common
make[1]: Leaving directory `/cygdrive/c/mytop/configure'
make -C ./myexampleApp clean
make[1]: Entering directory `/cygdrive/c/mytop/myexampleApp'
make -C ./src clean
make[2]: Entering directory `/cygdrive/c/mytop/myexampleApp/src'
rm -rf O.cygwin-x86 O.Common
make[2]: Leaving directory `/cygdrive/c/mytop/myexampleApp/src'
make -C ./Db clean
make[2]: Entering directory `/cygdrive/c/mytop/myexampleApp/Db'
rm -rf O.cygwin-x86 O.Common
make[2]: Leaving directory `/cygdrive/c/mytop/myexampleApp/Db'
make[1]: Leaving directory `/cygdrive/c/mytop/myexampleApp'
make -C ./iocBoot clean
make[1]: Entering directory `/cygdrive/c/mytop/iocBoot'
make -C ./iocmyexample clean
make[2]: Entering directory `/cygdrive/c/mytop/iocBoot/iocmyexample'
rm -f cdCommands envPaths dllPath.bat
make[2]: Leaving directory `/cygdrive/c/mytop/iocBoot/iocmyexample'
make[1]: Leaving directory `/cygdrive/c/mytop/iocBoot'
ui495a@lt-fcid /cygdrive/c/mytop
$ make
make -C ./configure install
make[1]: Entering directory `/cygdrive/c/mytop/configure'
perl c:/EPICS/base/bin/cygwin-x86/makeMakefile.pl O.cygwin-x86 ../..
mkdir O.Common
make -C O.cygwin-x86 -f ../Makefile TOP=../.. T_A=cygwin-x86 install
make[2]: Entering directory `/cygdrive/c/mytop/configure/O.cygwin-x86'
perl c:/EPICS/base/bin/cygwin-x86/convertRelease.pl checkRelease
make[2]: Leaving directory `/cygdrive/c/mytop/configure/O.cygwin-x86'
make[1]: Leaving directory `/cygdrive/c/mytop/configure'
make -C ./myexampleApp install
make[1]: Entering directory `/cygdrive/c/mytop/myexampleApp'
make -C ./src install
make[2]: Entering directory `/cygdrive/c/mytop/myexampleApp/src'
perl c:/EPICS/base/bin/cygwin-x86/makeMakefile.pl O.cygwin-x86 ../../..
mkdir O.Common
make -C O.cygwin-x86 -f ../Makefile TOP=../../.. T_A=cygwin-x86 install
make[3]: Entering directory `/cygdrive/c/mytop/myexampleApp/src/O.cygwin-x86'
perl c:/EPICS/base/bin/cygwin-x86/makeIncludeDbd.pl base.dbd xxxSupport.dbd dbSu
bExample.dbd myexampleHello.dbd initTrace.dbd ../O.Common/myexampleInclude.dbd
Expanding dbd
Installing created dbd file ../../../dbd/myexample.dbd
c:/EPICS/base/bin/cygwin-x86/dbToRecordtypeH.exe -I . -I .. -I ../../../dbd -Ic
:/EPICS/base/dbd ../xxxRecord.dbd ../O.Common/xxxRecord.h
Installing generated generic include file ../../../include/xxxRecord.h
gcc -c -D_POSIX_THREADS -D_POSIX_TIMERS -DUNIX -DCYGWIN32 -O3
-Wall -m32 -DEPICS_DLL_NO -MMD -I. -I../O.Common -I. -I.. -I../../../i
nclude/os/cygwin32 -I../../../include -Ic:/EPICS/base/include/os/cygwin32 -Ic:/E
PICS/base/include ../xxxRecord.c
gcc -c -D_POSIX_THREADS -D_POSIX_TIMERS -DUNIX -DCYGWIN32 -O3
-Wall -m32 -DEPICS_DLL_NO -MMD -I. -I../O.Common -I. -I.. -I../../../i
nclude/os/cygwin32 -I../../../include -Ic:/EPICS/base/include/os/cygwin32 -Ic:/E
PICS/base/include ../devXxxSoft.c
gcc -c -D_POSIX_THREADS -D_POSIX_TIMERS -DUNIX -DCYGWIN32 -O3
-Wall -m32 -DEPICS_DLL_NO -MMD -I. -I../O.Common -I. -I.. -I../../../i
nclude/os/cygwin32 -I../../../include -Ic:/EPICS/base/include/os/cygwin32 -Ic:/E
PICS/base/include ../dbSubExample.c
gcc -c -D_POSIX_THREADS -D_POSIX_TIMERS -DUNIX -DCYGWIN32 -O3
-Wall -m32 -DEPICS_DLL_NO -MMD -I. -I../O.Common -I. -I.. -I../../../i
nclude/os/cygwin32 -I../../../include -Ic:/EPICS/base/include/os/cygwin32 -Ic:/E
PICS/base/include ../myexampleHello.c
gcc -c -D_POSIX_THREADS -D_POSIX_TIMERS -DUNIX -DCYGWIN32 -O3
-Wall -m32 -DEPICS_DLL_NO -MMD -I. -I../O.Common -I. -I.. -I../../../i
nclude/os/cygwin32 -I../../../include -Ic:/EPICS/base/include/os/cygwin32 -Ic:/E
PICS/base/include ../initTrace.c
ar -rc myexampleSupport.lib xxxRecord.o devXxxSoft.o dbSubExample.o mye
xampleHello.o initTrace.o
ranlib myexampleSupport.lib
Installing library ../../../lib/cygwin-x86/myexampleSupport.lib
perl c:/EPICS/base/bin/cygwin-x86/registerRecordDeviceDriver.pl ../O.Common/myex
ample.dbd myexample_registerRecordDeviceDriver c\:/mytop > myexample.tmp
mv myexample.tmp myexample_registerRecordDeviceDriver.cpp
g++ -c -D_POSIX_THREADS -D_POSIX_TIMERS -DUNIX -DCYGWIN32 -O3
-Wall -m32 -DEPICS_DLL_NO -MMD -I. -I../O.Common -I. -I.. -I../../../i
nclude/os/cygwin32 -I../../../include -Ic:/EPICS/base/include/os/cygwin32 -Ic:/E
PICS/base/include myexample_registerRecordDeviceDriver.cpp
g++ -c -D_POSIX_THREADS -D_POSIX_TIMERS -DUNIX -DCYGWIN32 -O3
-Wall -m32 -DEPICS_DLL_NO -MMD -I. -I../O.Common -I. -I.. -I../../../i
nclude/os/cygwin32 -I../../../include -Ic:/EPICS/base/include/os/cygwin32 -Ic:/E
PICS/base/include ../myexampleMain.cpp
g++ -o myexample.exe -static -Lc\:/mytop/lib/cygwin-x86 -Lc\:/EPICS/base/lib/cyg
win-x86 -m32 myexample_registerRecordDeviceDriver.o myexampl
eMain.o -lmyexampleSupport -lrecIoc -lsoftDevIoc -lmiscIoc -lrsrvIoc -ldbtool
sIoc -lasIoc -ldbIoc -lregistryIoc -ldbStaticIoc -lca -lCom -lpthread -lread
line -lcurses -lm
/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../i686-pc-cygwin/bin/ld: cannot find
-lmyexampleSupport
/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../i686-pc-cygwin/bin/ld: cannot find
-lrecIoc
/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../i686-pc-cygwin/bin/ld: cannot find
-lsoftDevIoc
/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../i686-pc-cygwin/bin/ld: cannot find
-lmiscIoc
/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../i686-pc-cygwin/bin/ld: cannot find
-lrsrvIoc
/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../i686-pc-cygwin/bin/ld: cannot find
-ldbtoolsIoc
/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../i686-pc-cygwin/bin/ld: cannot find
-lasIoc
/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../i686-pc-cygwin/bin/ld: cannot find
-ldbIoc
/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../i686-pc-cygwin/bin/ld: cannot find
-lregistryIoc
/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../i686-pc-cygwin/bin/ld: cannot find
-ldbStaticIoc
/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../i686-pc-cygwin/bin/ld: cannot find
-lca
/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../i686-pc-cygwin/bin/ld: cannot find
-lCom
collect2: ld returned 1 exit status
make[3]: *** [myexample.exe] Error 1
make[3]: Leaving directory `/cygdrive/c/mytop/myexampleApp/src/O.cygwin-x86'
make[2]: *** [install.cygwin-x86] Error 2
make[2]: Leaving directory `/cygdrive/c/mytop/myexampleApp/src'
make[1]: *** [src.install] Error 2
make[1]: Leaving directory `/cygdrive/c/mytop/myexampleApp'
make: *** [myexampleApp.install] Error 2
Flo
From: Mark Rivers [mailto:[email protected]]
Sent: Tuesday, November 08, 2011 10:37 AM
To: Cid, Florencio A; Ron Sluiter
Cc: [email protected]
Subject: RE: IOC make error
No, I think if base built OK then you can proceed to building the IOC.
________________________________
From: Cid, Florencio A [mailto:[email protected]]
Sent: Tuesday, November 08, 2011 11:34 AM
To: Mark Rivers; Ron Sluiter
Cc: [email protected]
Subject: RE: IOC make error
Thanks, Mark. Will do. Should I attempt to rebuild EPICS base with this new make.exe prior to trying to compile/build the example IOC?
Flo
From: Mark Rivers [mailto:[email protected]]
Sent: Tuesday, November 08, 2011 10:33 AM
To: Cid, Florencio A; Ron Sluiter
Cc: [email protected]
Subject: RE: IOC make error
http://cars.uchicago.edu/software/pub/make.gz
gunzip it, and rename it from make to make.exe.
Mark
________________________________
From: Cid, Florencio A [mailto:[email protected]]
Sent: Tuesday, November 08, 2011 11:28 AM
To: Mark Rivers; Ron Sluiter
Cc: [email protected]
Subject: RE: IOC make error
Mark,
I tend to agree with you regarding figuring out why the latest version of Cygwin make is not working.....
In the meantime, I was wondering if you could please have a copy of your make.gz. Thought that I would give it a try.
Flo
From: Mark Rivers [mailto:[email protected]]
Sent: Tuesday, November 08, 2011 9:41 AM
To: Cid, Florencio A; Ron Sluiter
Cc: [email protected]
Subject: RE: IOC make error
Interestingly I see the following:
$ uname -r
1.7.7(0.230/5/3)
$ ls -al /bin/make*
-rwx------+ 1 epics None 495190 2008-05-23 17:48 /bin/make.exe
-rwxr-x---+ 1 epics Users 151552 2008-02-09 13:50 /bin/make.exe.old
-rw-r--r-- 1 rivers mkpasswd 179495 2009-01-12 14:03 /bin/make.gz
So my version of Cygwin is slightly older than yours, 1.7.7 vs 1.7.9. I have the same version of make as you which I am NOT using, (it is renamed to make.exe.old) and I am using another version that is about 3 times larger. I honestly don't remember where I got the version that I am using. But the .gz file expands into the version of make.exe that I am using. I can make that available if you want, but I think we need to figure out why the latest version of Cygwin make is not working?
Mark
________________________________
From: Cid, Florencio A [mailto:[email protected]]
Sent: Tuesday, November 08, 2011 10:26 AM
To: Mark Rivers; Ron Sluiter
Cc: [email protected]
Subject: RE: IOC make error
Mark,
Cgwin version is as follows:
$ uname -r
1.7.9(0.237/5/3)
Info for /bin/make is as follows:
$ ls -al make
-rwxr-xr-x 1 ui495a root 151552 Feb 9 2008 make
Flo
From: Mark Rivers [mailto:[email protected]]
Sent: Tuesday, November 08, 2011 9:18 AM
To: Cid, Florencio A; Ron Sluiter
Cc: [email protected]
Subject: RE: IOC make error
Those are the same settings I am using.
What version of Cygwin are you using? What is the size and date of your /bin/make.exe?
Mark
________________________________
From: Cid, Florencio A [mailto:[email protected]]
Sent: Tuesday, November 08, 2011 10:04 AM
To: Mark Rivers; Ron Sluiter
Cc: [email protected]
Subject: RE: IOC make error
Mark,
I've set the following in the file, CONFIG_SITE,
SHARED_LIBRARIES = NO
STATIC_BUILD = YES
Flo
From: Mark Rivers [mailto:[email protected]]
Sent: Tuesday, November 08, 2011 8:30 AM
To: Ron Sluiter; Cid, Florencio A
Cc: [email protected]
Subject: RE: IOC make error
I don't think that tech-talk message of mine applies any more. That was an attempt to use the Cygwin version of make to build for win32-x86. That is not supported, and one should use the GnuWin version of make to build for win32-x86.
As far as I know the current Cygwin version of make should work OK to build for the cygwin-x86 architecture, and there is no need to roll back to an earlier version.
Are you building statically or dynamically?
Mark
________________________________
From: [email protected] [mailto:[email protected]] On Behalf Of Ron Sluiter
Sent: Tuesday, November 08, 2011 9:27 AM
To: Cid, Florencio A
Cc: '[email protected]'
Subject: Re: IOC make error
This tech-talk entry <http://www.aps.anl.gov/epics/tech-talk/2010/msg00964.php> may fix your problem.
On 11/7/2011 4:42 PM, Cid, Florencio A wrote:
Hello all,
I've just installed EPICS base (3.14.12.1) on Windows XP with Cygwin (EPICS_HOST_ARCH = cygwin-x86). To verify the installation, I was attempting to building the Example IOC application (per Section 2.2 of the Application Developer's Guide).
Unfortunately, I am encountering the following errors upon attempting to compile:
$ make
make -C ./configure install
make[1]: Entering directory `/cygdrive/c/mytop/configure'
make -C O.cygwin-x86 -f ../Makefile TOP=../.. T_A=cygwin-x86 install
make[2]: Entering directory `/cygdrive/c/mytop/configure/O.cygwin-x86'
perl c:/EPICS/base/bin/cygwin-x86/convertRelease.pl checkRelease
make[2]: Leaving directory `/cygdrive/c/mytop/configure/O.cygwin-x86'
make[1]: Leaving directory `/cygdrive/c/mytop/configure'
make -C ./myexampleApp install
make[1]: Entering directory `/cygdrive/c/mytop/myexampleApp'
make -C ./src install
make[2]: Entering directory `/cygdrive/c/mytop/myexampleApp/src'
make -C O.cygwin-x86 -f ../Makefile TOP=../../.. T_A=cygwin-x86 install
make[3]: Entering directory `/cygdrive/c/mytop/myexampleApp/src/O.cygwin-x86'
c:/EPICS/base/configure/RULES_TARGET:69: *** multiple target patterns. Stop.
make[3]: Leaving directory `/cygdrive/c/mytop/myexampleApp/src/O.cygwin-x86'
make[2]: *** [install.cygwin-x86] Error 2
make[2]: Leaving directory `/cygdrive/c/mytop/myexampleApp/src'
make[1]: *** [src.install] Error 2
make[1]: Leaving directory `/cygdrive/c/mytop/myexampleApp'
make: *** [myexampleApp.install] Error 2
Not sure if this is an indication that I have a bad EPICS base build and/or have something lacking in my environment, etc. Any help/info/assistance will be greatly appreciated.
Thanks in advance,
Florencio Cid
- References:
- RE: IOC make error Mark Rivers
- Navigate by Date:
- Prev:
Re: PV in PCAS can not be archived by Channel Archiver Kasemir, Kay
- Next:
RE: PV in PCAS can not be archived by Channel Archiver Jeff Hill
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
<2011>
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
- Navigate by Thread:
- Prev:
RE: IOC make error Mark Rivers
- Next:
RE: IOC make error Jeff Hill
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
<2011>
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024