Bug in EiffelStudio build scripts?

19 views
Skip to first unread message

Greg Lee

unread,
Sep 14, 2014, 9:49:11 PM9/14/14
to eiffelst...@googlegroups.com
Hi.

I recently downloaded and attempted to build the EiffelStudio source from svn. I used the geant automated build scripts. I am running LInux Mint 17 (64 bit) on VirtualBox running on Windows 7 with a GPL install of EiffelStudio 14.05 for linux-x86-64.

I encountered an error while running the "geant prepare" script. The compilation was running fine up to the point in bold:

("geant prepare" output.....)

gcc -c -I../.. -I../../run-time -I../../idrs -I../../run-time/include -DWORKBENCH -DEIF_IPC -O3 -pipe -fPIC -D_GNU_SOURCE -m64  rqst_idrs.c
/bin/rm -f libipc.a
ar rc libipc.a com.o identify.o logfile.o network.o select.o shword.o stack.o stream.o system.o transfer.o rqst_idrs.o
: libipc.a
gcc -c  -DWORKBENCH -DEIF_IPC com.c -o MTcom.o
com.c:47:24: fatal error: eif_config.h: No such file or directory
 #include "eif_config.h"
                        ^
compilation terminated.
make[4]: *** [MTcom.o] Error 1
make[4]: Leaving directory `/home/leegr3/Projects/EiffelStudio/Src/C/ipc/shared'
make[3]: *** [subdirs] Error 1
make[3]: Leaving directory `/home/leegr3/Projects/EiffelStudio/Src/C/ipc'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/home/leegr3/Projects/EiffelStudio/Src/C/ipc'
make[1]: *** [subdirs] Error 1
make[1]: Leaving directory `/home/leegr3/Projects/EiffelStudio/Src/C'
make: *** [all] Error 2
quick_configure terminated.


Looking at the build output, it looks like the gcc command for com.c is missing some needed include directories, since eif_config.h definitely exists in the parent directories to the file com.c . I went into the makefiles that were failing and hand-edited then to add the missing include directores. That seemed to fix the error, but later on there were additional errors with the compilation of scoop.c. It looks like the gcc command for scoop.c was missing the -DEIFFEL_THREADS and -DLINUX_THREADS symbols. That hand-edited fix did not solve the problem, though. I encountered the same errors when I followed the "recommended approach" while running quick_configure.

On the web page "https://dev.eiffel.com/Compiling_EiffelStudio", you ask for errors to be reported. I believe I have followed the build instructions correctly, and that there is an error in the build scripts.

Thanks,

Greg Lee
 

Jocelyn Fiat

unread,
Sep 15, 2014, 3:19:00 AM9/15/14
to eiffelst...@googlegroups.com
Dear Lee,

It is not possible to compile EiffelStudio with gcc (see the note of the first section on https://dev.eiffel.com/Compiling_EiffelStudio )


You have to use Microsoft C Compiler, mainly for COM and dotnet related component.

I hope this helps,
-- Jocelyn


--
For more messaging options, visit this group at http://forum.eiffel.com.
Information on the Eiffelstudio project: http://dev.eiffel.com.



--
Jocelyn
------------------------------------------------------------------------
Eiffel Software
805-685-1006
http://www.eiffel.com
Customer support: http://support.eiffel.com
User group: http://groups.eiffel.com/join
------------------------------------------------------------------------

mira....@gmail.com

unread,
Oct 1, 2014, 5:48:36 AM10/1/14
to eiffelst...@googlegroups.com
Hi Jocelyn and Greg,

I have encountered the same behaviour like Greg. I can not agree with Jocelyn, build on Linux should use gcc (clang) there is no MS compiler.
It looks like missing CFLAGS on command line for all files in C/run-time directory

Regards

Mira Fontan

Jocelyn Fiat

unread,
Oct 1, 2014, 6:07:19 AM10/1/14
to eiffelst...@googlegroups.com
Hi,

Sorry I read too quickly the original message, I though this was on Windows, ... my mistake.

Of course, compiling EiffelStudio on Linux is using "gcc"
I will try to reproduce, and provide a better answer.
But I suspect that subversion is not properly configured , follow instruction from https://dev.eiffel.com/Subversion_Settings
and especially the "use-commit-times"="yes"

-- Jocelyn

Jocelyn Fiat

unread,
Oct 1, 2014, 8:20:56 AM10/1/14
to eiffelst...@googlegroups.com
Hi,

I tried on ubuntu 14.04 64bits, and this is working fine.
My svn is configured to "use-commit-times=yes" ... which is important for the run-time compilation (make dependencies on file timestamp).
I installed EiffelStudio 14.05
And environement variables ISE_EIFFEL, ISE_LIBRARY, ISE_PLATFORM, EIFFEL_SRC are set to expected values.

With those settings the "geant prepare" works fine.

Now, Greg, if you still has issue, please let us know,
-- Jocelyn

Mira Fontan

unread,
Oct 1, 2014, 8:21:57 AM10/1/14
to eiffelst...@googlegroups.com
Hi,

many thanks for your advice, my fault I skip the subversion setting part. Now it compiles with gcc and with clang too. Clang has much better diagnostic than gcc and produces more warnings.

Mira

Jocelyn Fiat

unread,
Oct 1, 2014, 12:16:39 PM10/1/14
to eiffelst...@googlegroups.com
Thanks for your first message to report my bad answer, 
and thanks for the confirmation that it is also working for you.

Note that the source code has also a git mirror at https://github.com/EiffelSoftware/EiffelStudio
In the case, you want to contribute and send patch, you can do that either with subversion, or also for the git repository.

Regards,
-- Jocelyn
Reply all
Reply to author
Forward
0 new messages