problem doing make ...

Support and queries relating to all previous versions of ZoneMinder
Locked
m.fl
Posts: 1
Joined: Sat Dec 06, 2003 2:10 pm

problem doing make ...

Post by m.fl »

I´m using debian (sid) gcc 3.3, kernel 2.4.22 on powerpc

mfl@titan:~/Desktop/zm-0.9.15$ gcc -v
Reading specs from /usr/lib/gcc-lib/powerpc-linux/3.3.2/specs
Konfiguriert mit: ../src/configure -v --enable-languages=c,c++,java,f77,pascal,objc,ada --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-gxx-include-dir=/usr/include/c++/3.3 --enable-shared --with-system-zlib --enable-nls --without-included-gettext --enable-__cxa_atexit --enable-clocale=gnu --enable-java-gc=boehm --enable-java-awt=xlib --enable-objc-gc --disable-multilib powerpc-linux
Thread model: posix
gcc-Version 3.3.2 (Debian)

Linux titan 2.4.22-ben2-mfl1 #1 Fr Sep 12 02:23:57 CEST 2003 ppc GNU/Linux

Any ideas?

mfl@titan:~/Desktop/zm-0.9.15$ make
make all-recursive
make[1]: Entering directory `/home/mfl/Desktop/zm-0.9.15'
Making all in src
make[2]: Entering directory `/home/mfl/Desktop/zm-0.9.15/src'
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/include -g -O2 -MT zmc.o -MD -MP -MF ".deps/zmc.Tpo" \
-c -o zmc.o `test -f 'zmc.cpp' || echo './'`zmc.cpp; \
then mv ".deps/zmc.Tpo" ".deps/zmc.Po"; \
else rm -f ".deps/zmc.Tpo"; exit 1; \
fi
In file included from /usr/include/linux/videodev2.h:16,
from /usr/include/linux/videodev.h:8,
from zm_camera.h:25,
from zm_monitor.h:30,
from zmc.cpp:26:
/usr/include/linux/time.h:9: error: redefinition of `struct timespec'
/usr/include/time.h:119: error: previous definition of `struct timespec'
/usr/include/linux/time.h:15: error: redefinition of `struct timeval'
/usr/include/bits/time.h:70: error: previous definition of `struct timeval'
/usr/include/linux/time.h:20: error: redefinition of `struct timezone'
/usr/include/sys/time.h:57: error: previous definition of `struct timezone'
/usr/include/linux/time.h:354: error: redefinition of `struct itimerspec'
/usr/include/time.h:160: error: previous definition of `struct itimerspec'
/usr/include/linux/time.h:359: error: redefinition of `struct itimerval'
/usr/include/sys/time.h:108: error: previous definition of `struct itimerval'
make[2]: *** [zmc.o] Fehler 1
make[2]: Leaving directory `/home/mfl/Desktop/zm-0.9.15/src'
make[1]: *** [all-recursive] Fehler 1
make[1]: Leaving directory `/home/mfl/Desktop/zm-0.9.15'
make: *** [all] Fehler 2
snakebyte
Posts: 45
Joined: Sun Dec 07, 2003 1:51 am

Re: problem doing make ...

Post by snakebyte »

I don't know if this will help ya, but it's worth trying until someone else here with more knowledge can give you an answer.

Since gcc is getting confused with all of your tim.h files, try to change the include path in your Makefile to something like /usr/include/linux. At least it should only fine one time.h file for the defines it's looking for. Course if your linux dir doesn't have all the includes necessary to compile you'll probably still error out...

The only other trick I can think of is to move those other time.h files outa the /usr/include dir structure before compiling.. perhaps try to find the most recent one (normally they have some kinda version info at the head of the file, but I suppose you could go by file date too).

I would imagine you'll just run into other header file conflicts too, but hey.. give it a try, eh?
wdudley
Posts: 4
Joined: Wed Nov 26, 2003 5:06 am

Re: problem doing make ...

Post by wdudley »

I have the exact same problem building on two different Debian system.

I hacked up /usr/include/time.h, /usr/include/sys/time.h, /usr/include/linux/time.h and put wrappers around the definitions that were being included multiple times, and
then the make finished without event. But this is REALLY UGLY and can't be right.

So -- has ANYBODY EVER BUILT THIS ON A DEBIAN LINUX X-86 SYSTEM? If so, please
supply exact instructions for what you did - I couldn't figure out which of half a dozen
include variables in Makefile controlled the include path for the compile, and changing
the most likely suspects resulted in no difference in the build at all.
wdudley
Posts: 4
Joined: Wed Nov 26, 2003 5:06 am

Re: problem doing make ...Debian

Post by wdudley »

SOLVED.

The problem was that configure decided that the include directory should
be /usr/include/linux instead of /usr/include. A subsequent run of configure
got the right value (after a Debian update, so not sure why.)

To fix manually, edit src/Makefile, change the line to read:
oldincludedir = /usr/include

Bill Dudley
Locked