This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

build problem with 2.0


I'm stumped.

I moved my serial driver from an older snapshot to 2.0, and it
doesn't build properly.  When I do a make, it only compiles
three of the five source files then complains it doesn't know
how to make the other object files, and I can't figure out why.

The same CDL file worked fine with an older eCos snapshot, and
it looks like this:

  cdl_package CYGPKG_IO_NSERIAL {
  [...]
         compile       -library=libextras.a serial.c haldiag.c
      
  [...]
         cdl_component CYGPKG_IO_SERIAL_DMRTS {
            flavor        bool
            active_if     CYGPKG_IO_NSERIAL
            default_value 1
  [...]
            compile       -library=libextras.a dmrts.c aiopic.c uart4530.c
  [...]
      }
  }

So, 5 source files should get compiled and the resultant object
files put into libextras.a: serial.c haldiag.c dmrts.c aiopic.c
uart4530.c

The error at the end of the build is:

  make[1]: *** No rule to make target src/aiopic.o.d', needed by libextras.a.stamp'.  Stop.
  make[1]: Leaving directory /home/devicemaster/ecosnew/io/nserial/current'
  make: *** [build] Error 2


Both files from the first "compile" directive get compiled, but
only the first one from the second "compile" directive gets
compiled.

In the makefile, the COMPILE variable contains all 5 source
files, but only the first 3 get compiled, then the error about
not knowing how to build the 4th.

  # eCos makefile
  # This is a generated file - do not edit
  
  export REPOSITORY := /opt/ecos/ecos-2.0/packages
  export PREFIX := /home/devicemaster/ecosnew/install
  export COMMAND_PREFIX := arm-elf-
  export CC := $(COMMAND_PREFIX)gcc
  export OBJCOPY := $(COMMAND_PREFIX)objcopy
  export HOST := UNIX
  export AR := $(COMMAND_PREFIX)ar
  
  PACKAGE := io/nserial/current
  OBJECT_PREFIX := io_nserial
  CFLAGS := -mcpu=arm7tdmi -mbig-endian -Wall -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -Woverloaded-virtual -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions -fvtable-gc -finit-priority
  LDFLAGS := -mcpu=arm7tdmi -mbig-endian -g -nostdlib -Wl,--gc-sections -Wl,-static
  VPATH := $(REPOSITORY)/$(PACKAGE)
  INCLUDE_PATH := $(INCLUDE_PATH) -I$(PREFIX)/include $(foreach dir,$(VPATH),-I$(dir) -I$(dir)/src -I$(dir)/tests) -I.
  MLT := $(wildcard $(REPOSITORY)/$(PACKAGE)/include/pkgconf/mlt*.ldi $(REPOSITORY)/$(PACKAGE)/include/pkgconf/mlt*.h)
  TESTS := 
  
  build: headers libextras.a.stamp
  
  LIBRARY := libextras.a
  COMPILE := src/serial.c src/haldiag.c src/dmrts.c src/aiopic.c src/uart4530.c
  OBJECTS := $(COMPILE:.cxx=.o.d)
  OBJECTS := $(OBJECTS:.c=.o.d)
  OBJECTS := $(OBJECTS:.S=.o.d)
  
  $(LIBRARY).stamp: $(OBJECTS)
  	$(AR) rcs $(PREFIX)/lib/$(@:.stamp=) $(foreach obj,$?,$(dir $(obj))$(OBJECT_PREFIX)_$(notdir $(obj:.o.d=.o)))
  	@cat $^ > $(@:.stamp=.deps)
  	@touch $@
  [...]


-- 
Grant Edwards
grante@visi.com
  

-- 
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]