eggdrop sur ubuntu xenial 16.04 LTS
Pour compiler eggdrop 1.6.21 (oui ça existe encore) sur ubuntu 16.04 LTS, il faut bien évidemment installer TCL et ses header pour la compilation. Dans mon cas j’ai installé les paquets tcl8.6 et tcl8.6-dev
Mais en plus de préciser leur chemin, il faut passer un CFLAG particulier à GCC pour passer l’étape du link sans encombre.
CFLAGS="-std=gnu89" ./configure --with-tcllib='/usr/lib/x86_64-linux-gnu/libtcl8.6.so' --with-tclinc='/usr/include/tcl8.6/tcl.h'
make config
make
make install
source sur le eggwiki
Pour référence l’erreur est ci dessous :
gcc -g -O2 -pipe -Wall -I../.. -I../.. -I../../src -DHAVE_CONFIG_H -c strftime.c
In file included from ../../src/main.h:112:0,
from strftime.c:26:
../../src/tclhash.h:78:13: warning: inline function ‘garbage_collect_tclhash’ declared but never defined
inline void garbage_collect_tclhash(void);
In file included from ../../src/main.h:107:0,
from strftime.c:26:
../../src/proto.h:274:12: warning: inline function ‘open_listen’ declared but never defined
inline int open_listen(int *);
make[2]: Leaving directory '/home/kasimir/eggdrop1.6.21/src/compat'
---------- Yeah! That's the compiling, now the linking! ----------
Linking eggdrop (standard build).
gcc -o ../eggdrop bg.o botcmd.o botmsg.o botnet.o chanprog.o cmds.o dcc.o dccutil.o dns.o flags.o language.o match.o main.o mem.o misc.o misc\_file.o modules.o net.o rfc1459.o tcl.o tcldcc.o tclhash.o tclmisc.o tcluser.o userent.o userrec.o users.o -L/usr/lib/x86\_64-linux-gnu -ltcl8.6 -lm -ldl -lnsl -lpthread md5/md5c.o compat/\*.o `cat mod/mod.xlibs`
main.o: In function `garbage_collect':
/home/kasimir/eggdrop1.6.21/src/./main.c:710: undefined reference to `garbage_collect_tclhash'
modules.o:(.data+0x2a0): undefined reference to `open_listen'
tcldcc.o: In function `tcl_listen':
/home/kasimir/eggdrop1.6.21/src/tcldcc.c:942: undefined reference to `open_listen'
collect2: error: ld returned 1 exit status
Makefile:37: recipe for target '../eggdrop' failed
make\[1\]: \*\*\* \[../eggdrop\] Error 1
make\[1\]: Leaving directory '/home/kasimir/eggdrop1.6.21/src'
Makefile:202: recipe for target 'modegg' failed
make: \*\*\* \[modegg\] Error 2