As I was getting ready to watch the soccer match between FC Porto (my team) and Oliveirense, at Oliveirense's stadium, the referee decided that there were no conditions (really bad pitch, also due to the rain) for the game to happen... well, I had to do something... :-)
Installing Seagull (the network traffic generator, useful for my Diameter tests) in my iMac was one of those tasks that I could never find the time, and today it seemed a good day. I knew it was not going to be a simple task, as I've tried sometime ago to install (ie, build from source) under Ubuntu or some other Linux distro and never made it... but I didn't tried hard either, as there are RHEL/Fedora binaries I just setup a VM with it.
OK.. So, first step was to look for someone who had already done the job... couldn't find any, seems like Mac's are not chosen as dev machines very often. No binaries, no instructions. I'm on my own.
The INSTALL.TXT has some instructions on how to build it... the commands to run. I'll do it as I like to: run until it crashes and see what's wrong after. First instruction is:
Edit build.conf to fit your needs (default should be OK)
If it says it should be OK, it should be OK. Let's move on.
run "./build.ksh -target clean"
Just to make sure everything is clean. Not a problem, no issues here. Next!
run "./build.ksh -target all"
This is where the "fun" began. It simply failed with some generic failure message:
[Begin Makefile generation phase]
[Creating symbolic link: /Users/ammendonca/Desktop/seagull/bin]
[Making directory: /Users/ammendonca/Desktop/seagull/work-1.8.1]
[Making directory: /Users/ammendonca/Desktop/seagull/build-1.8.1]
make: *** [/Users/ammendonca/Desktop/seagull/work-1.8.1/project.mk] Error 1
[Begin compilation phase]
make: *** No rule to make target `all'. Stop.
[Compiling protocol-external/C_ProtocolExternal.cpp]
[Compiling protocol-text/C_MessageText.cpp]
cc1plus: warnings being treated as errors
protocol-text/C_MessageText.cpp: In member function 'C_ProtocolFrame::_msg_error_code C_MessageText::EncodeWithContentLength(int)':
protocol-text/C_MessageText.cpp:62: warning: format '%d' expects type 'int', but argument 4 has type 'size_t'
make[1]: *** [/Users/ammendonca/Desktop/seagull/work-1.8.1/C_MessageText.o] Error 1
make: *** [all_seagull] Error 2
[Compiling /Users/ammendonca/Desktop/seagull/work-1.8.1/y.tab.c]
y.tab.c: In function 'int yyparse()':
y.tab.c:1349: error: 'yylex' was not declared in this scope
y.tab.c:1587: error: 'yyerror' was not declared in this scope
y.tab.c:1733: error: 'yyerror' was not declared in this scope
make[1]: *** [/Users/ammendonca/Desktop/seagull/work-1.8.1/y.tab.o] Error 1
make: *** [all_seagull] Error 2
#if defined(__linux__) || defined(__CYGWIN__)to
#if defined(__linux__) || defined(__CYGWIN__) || defined(__APPLE__)
[Linking /Users/ammendonca/Desktop/seagull/build-1.8.1/libtrans_ip.so]
Undefined symbols:
"_main", referenced from:
start in crt1.10.5.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
make[1]: *** [/Users/ammendonca/Desktop/seagull/build-1.8.1/libtrans_ip.so] Error 1
make: *** [all_libtrans_ip.so] Error 2
BUILD_LIB_LD_FLAGS_DARWIN="-shared -fPIC -dynamiclib"