This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
build problem with 2.0
- From: Grant Edwards <grante at visi dot com>
- To: ecos-discuss at sources dot redhat dot com
- Date: Fri, 8 Aug 2003 12:28:07 -0500
- Subject: [ECOS] 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