Link to home
Start Free TrialLog in
Avatar of albyh
albyh

asked on

How do I compile this tool in Unix

I am trying to compile the tool shown at the link below on my linux server but am experiencing problems.

http://code.google.com/p/uits/wiki/UITSWikiHome

I've uploaded the relevant files for Unix onto my server which includes a Makefile but when I run the command make I get the following message

make: *** No rule to make target `main.o', needed by `UITS_Tool'.  Stop.

Any help would be greatly appreciated.



Avatar of woolmilkporc
woolmilkporc
Flag of Germany image

Did you run "./configure" in the distribution directory before "make"?
wmp
Avatar of albyh
albyh

ASKER

Yeah I just get

-bash: ./configure: No such file or directory
Anyway, your Makefile is incomplete.
Which OS do you use?
Seems that only for Mac OSX and Windows there is a straightforward way to build the tool.
wmp
Avatar of albyh

ASKER

I've just tried reuploading the makefile to the server but I get the same error

I'm using CentOS.

That's the problem there's clear instructions for Win and Mac but not for Unix :-(
Is the configure file executable?

chmod +x configure
Avatar of albyh

ASKER

There is no configure file
I don't know which file you've downloaded, but this zip:

uits-tool-0.01.zip

includes a few instructions for how to compile on unix in the README.  It might help.

Lee
Avatar of albyh

ASKER

You mean this line "Under unix, type ./runUITS.sh".  Thats not instructions for how to complie it's just a test script to be run after the file is compiled.
have you tried to compile the tool by following the instruction for building on Mac OSX from commandline? MacOsX is a unix variant.
Avatar of albyh

ASKER

The instructions for Mac OSX are to go to the directory and type make which is what I have done and get the error shown in the initial question
Are these the build instructions you were referring to?

BUILDING UITS_Tool   The UITS_Tool is written in C and has been compiled using the GNU C compiler on Mac   and Windows (MinGW). It uses three open source libraries. Compiled versions of those   libraries are distributed with the tool. To build in another environment, those   libraries must be re-compiled. The three libraries are:                                                           OpenSSL -  (http://www.openssl.org/) Version 1.0 beta4                                                           Libxml2 -  (http://xmlsoft.org/) Distributed with MacOSX                                                           Mini-XML - (http://www.minixml.org/)        To build under MacOSX using X-Code, use the xcode project,                uits-tool-osx-xcode/uits-tool-osx-xcode.xcodeproj        To build under MacOSX from the command line:                1. open a terminal window                2. cd to uits-tool-osx-make                3. make

There is indeed a Makefile in uits-tool-0.01/uits-tool-osx-make. Did you really cd there? However it needs a little TLC to function under Linux.
Firstly, at least at gcc (GCC) 4.4.4 there is no -arch i386 option, so remove that.
Secondly, you can not use the shipped .a libraries and must recompile them as per the instructions above.

On my system, I already have libxml2 and libssl. I fetched the source for libmxml. Will re-try build now.
ASKER CERTIFIED SOLUTION
Avatar of Duncan Roe
Duncan Roe
Flag of Australia image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Having applied the patch, it might be best to change the line in Makefile that reads:

CFLAGS  = $(OPTIM) -I /usr/include/libxml2 -I openssl/include

to

CFLAGS  = $(OPTIM) -I /usr/include/libxml2 -I /usr/include/openssl

That way, you use the header file that exactly matches the ssl library you are now using. It doesn't change any compiler warnings though
The warnings are pretty innocuous, only bad programming practice (they could be removed easily).

Yes that's what I thought but I normally have a zero-tolerance policy towards warnings hence "may be all right".
Me too ;-)