I'm trying to build CDE from the git repository on FreeBSD 10.1-RELEASE (while successfully having built on 10.0-RELEASE) and am running into imake errors when attempting to build on 10.1-RELEASE.
Would there be any way to resolve them?
Thanks in advance!
--Douglas
~~~~~~~~~
$ make World
Building Release 2.2.2 of CDE
I hope you checked the configuration parameters in ./config/cf
to see if you need to pass BOOTSTRAPCFLAGS.
Fri Nov 14 11:09:53 CST 2014
cd ./config/imake && make -f Makefile.ini BOOTSTRAPCFLAGS="" clean
I think I've found the reason for the problem:
With FreeBSD 10.1 clang has been updated to version 3.4.1. Among other things
they've changed the behavior of cpp's traditional mode. Now stringification (#)
and token pasting (##) are ignored under some conditions.
Since both are heavily used by CDE it's no longer possible to use traditional mode
together with clang. Fortunately non-traditional mode also works with only a few
patches.
I have CDE running on FreeBSD 10.1 now and can submit the patches soon.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I'm trying to build CDE from the git repository on FreeBSD 10.1-RELEASE (while successfully having built on 10.0-RELEASE) and am running into imake errors when attempting to build on 10.1-RELEASE.
Would there be any way to resolve them?
Thanks in advance!
--Douglas
~~~~~~~~~
$ make World
Building Release 2.2.2 of CDE
I hope you checked the configuration parameters in ./config/cf
to see if you need to pass BOOTSTRAPCFLAGS.
Fri Nov 14 11:09:53 CST 2014
cd ./config/imake && make -f Makefile.ini BOOTSTRAPCFLAGS="" clean
rm -f ccimake imake.o imake
rm -f .CKP .ln .BAK .bak .o core errs , ~ .a tags TAGS make.log #*
rm -f -r Makefile.proto Makefile Makefile.dep bootstrap
make Makefile.boot
cd ./config/imake && make -f Makefile.ini BOOTSTRAPCFLAGS=""
making imake with BOOTSTRAPCFLAGS= in config/imake
cc -o ccimake -O -I../../include -I/usr/include/X11 -I../../imports/x11/include/X11 ccimake.c
cc -c -O -I../../include -I/usr/include/X11 -I../../imports/x11/include/X11
./ccimake
imake.ccc -o imake imake.o
rm -f ./config/makedepend/Makefile.proto
./config/imake/imake -I./config/cf -s ./config/makedepend/Makefile.proto -f ./config/makedepend/Imakefile -DTOPDIR=../.. -DCURDIR=./config/makedepend
In file included from Imakefile.c:8:
./config/cf/Imake.tmpl:1187:10: fatal error: '##cde##.rules' file not found
include ProjectRulesFile
/config/cf/Imake.tmpl:1185:35: note: expanded from macro 'ProjectRulesFile'
define ProjectRulesFile Concat3(<,TopLevelProject,.rules>)
./config/cf/Imake.rules:239:23: note: expanded from macro 'Concat3'
define Concat3(a,b,c)a##b##c
1 error generated.
./config/imake/imake: Exit code 1.
Stop.
*** Error code 1
Stop.
make[1]: stopped in /usr/home/dcarmich/cdesktopenv-code/cde
*** Error code 1
Stop.
make: stopped in /usr/home/dcarmich/cdesktopenv-code/cde
~~~~~~~
Last edit: Douglas Carmichael 2014-11-14
I think I've found the reason for the problem:
With FreeBSD 10.1 clang has been updated to version 3.4.1. Among other things
they've changed the behavior of cpp's traditional mode. Now stringification (#)
and token pasting (##) are ignored under some conditions.
Since both are heavily used by CDE it's no longer possible to use traditional mode
together with clang. Fortunately non-traditional mode also works with only a few
patches.
I have CDE running on FreeBSD 10.1 now and can submit the patches soon.