EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

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

Subject: Re: Makefiles to create a library based on Asyn
From: Benoit <[email protected]>
To: Mark Rivers <[email protected]>
Cc: EPICS mailing list <[email protected]>
Date: Wed, 19 Aug 2015 17:16:03 +0200
Thanks Mark, 

this let met find the error ... the path to all these includes was wrong! 

Cheers,


--
Benoit RAT
www.neub.co.nr

On Wed, Aug 19, 2015 at 4:55 PM, Mark Rivers <[email protected]> wrote:

What happens if you comment out one or the other of these 2 lines?

 

INC += $(CORE_INC)
INC += $(BRIDGE_INC)

 

Perhaps that will help you find the problem.

 

Mark



 

From: [email protected] [mailto:[email protected]] On Behalf Of Benoit
Sent: Wednesday, August 19, 2015 8:44 AM
To: EPICS mailing list
Subject: Makefiles to create a library based on Asyn

 

Hi everybody,

 

I am creating a "generic" library in order to connect several open hardware FPGA devices to EPICS.

This library is able to handle different bridges (syncronous => PCIe & asynchronous => etherbone, serial) so I have based it on asyn.

But I am having trouble to create the Makefile system in order to generate my  libewb.so

 

EPICS_BASE = 3.1.4

Asyn =4.13.1

 

make -C ./configure install 
make[1]: Entering directory `/home/neub/Work/7S/LLRF/LOCAL/epics-wb/configure'
make -C O.linux-x86 -f ../Makefile TOP=../.. T_A=linux-x86 install
make[2]: Entering directory `/home/neub/Work/7S/LLRF/LOCAL/epics-wb/configure/O.linux-x86'
perl /opt/EPICS/base/bin/linux-x86/convertRelease.pl checkRelease
make[2]: Leaving directory `/home/neub/Work/7S/LLRF/LOCAL/epics-wb/configure/O.linux-x86'
make[1]: Leaving directory `/home/neub/Work/7S/LLRF/LOCAL/epics-wb/configure'
make -C ./src install 
make[1]: Entering directory `/home/neub/Work/7S/LLRF/LOCAL/epics-wb/src'
make -C O.linux-x86 -f ../Makefile TOP=../.. T_A=linux-x86 install
make[2]: Entering directory `/home/neub/Work/7S/LLRF/LOCAL/epics-wb/src/O.linux-x86'
Installing os dependent include file ../../include/os/Linux/.
Usage:
        [ -m mode ] file ... directory
        -d             Create non-existing directories
        -m mode        Set the mode for the installed file (0755 by default)
        file           Name of file
        directory      Destination directory
Can't find file '.'
make[2]: *** [../../include/os/Linux/.] Error 2
make[2]: Leaving directory `/home/neub/Work/7S/LLRF/LOCAL/epics-wb/src/O.linux-x86'

 

When I print more info in the Makefile I have:

 

make[2]: Entering directory `/home/neub/Work/7S/LLRF/LOCAL/epics-wb/src/O.linux-x86'
echo "Installing os dependent include file ../../include/os/Linux/."
perl /opt/EPICS/base/bin/linux-x86/installEpics.pl -d -m 644 . ../../include/os/Linux

 

It seems that we are trying to add the file '.' but I don't know why?

 

 

my Makefile is as follow:

 

TOP = ..
include $(TOP)/configure/CONFIG
### Obtain the version ($ is replaced by $$)
VERSION = $(shell git describe --always --dirty=+ | sed  's;^.*-\([v0-9\.]*\)\([a-z0-9\-+]*\)$$;\1\2;' )
DATE          = $(shell date +"%d %b. %Y")

### Create the user FLAGS
#USR_CFLAGS += -DDEBUG
CXXFLAGS=-Wall -g -DTRACE_STDERR -std=c++11
USR_CXXFLAGS +=${USR_FLAGS}
USR_CXXFLAGS +=${CXXFLAGS}
USR_CXXFLAGS +=-D__GIT_VER__="\"${GIT_VER}\"" 

 

EWB = $(TOP)/src
### Define the library
LIBRARY = ewb
ewb_LIBS += $(EPICS_BASE_IOC_LIBS)
ewb_LIBS += asyn

### Process ewb_core
CORE_SRC_DIR = $(EWB)/ewbcore
CORE_INC +=$(wildcard $(CORE_SRC_DIR)/*.h)
CORE_SRCS +=$(wildcard $(CORE_SRC_DIR)/*.cpp)
CORE_OBJS += $(addprefix $(ODIR), $(subst $(EWB)/,,$(CORE_SRCS:.cpp=.o)))
### Process ewb_bridge
BRIDGE_SRC_DIR = $(EWB)/ewbbridge
BRIDGE_INC +=$(BRIDGE_SRC_DIR)/EWBBridge.h
BRIDGE_INC +=$(BRIDGE_SRC_DIR)/EWBMemTestFileCon.h
BRIDGE_SRCS +=$(BRIDGE_SRC_DIR)/EWBMemTestFileCon.cpp

### Add external library for bridge
ifeq (${JUNGOWD_OFF},1)
USR_CXXFLAGS +=-DAWBPD_NO_X1052
else
BRIDGE_INC +=$(BRIDGE_SRC_DIR)/EWBMemTestFileCon.h
BRIDGE_SRCS +=$(BRIDGE_SRC_DIR)/EWBMemTestFileCon.cpp
USR_INCLUDES +=-I${JUNGOWD} -I${JUNGOWD}/include
USR_INCLUDES +=-I${X1052}   -I${X1052}/include
USR_SYS_LIBS += x1052_api
USR_SYS_LIBS += wdapi${JUNGOWDVER}
endif

### Append to the list
SRC_DIRS += $(CORE_SRC_DIR)
INC += $(CORE_INC)
ewb_SRCS += $(CORE_SRCS)
SRC_DIRS += $(BRIDGE_SRC_DIR)
INC += $(BRIDGE_INC)
ewb_SRCS += $(BRIDGE_SRCS)
LIBSRCS = $(ewb_SRCS) #Just to try 

### Set to build

include $(TOP)/configure/RULES

 

You can check the code of the project there (epics-make branch): 

 

 

I hope someone can help me... I am sure that this is a silly mistake but I don't find it :(

 

Regards,

 

 

--

 

 

Benoit RAT LAMY

 



References:
Makefiles to create a library based on Asyn Benoit
RE: Makefiles to create a library based on Asyn Mark Rivers

Navigate by Date:
Prev: RE: Makefiles to create a library based on Asyn Mark Rivers
Next: Fast, reliable remote I/O in 2015 Gomella, Andrew (NIH/NHLBI) [F]
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  <20152016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: RE: Makefiles to create a library based on Asyn Mark Rivers
Next: Fast, reliable remote I/O in 2015 Gomella, Andrew (NIH/NHLBI) [F]
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  <20152016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 16 Dec 2015 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·