FWIW, Dore'[1] doesn't compile out of the box on FreeBSD 10.3-stable:
tingo at kg-core1$ uname -a
FreeBSD kg-core1.kg4.no 10.3-STABLE FreeBSD 10.3-STABLE #0 r310083:
Wed Dec 14 21:00:13 CET 2016
root at kg-core1.kg4.no:/usr/obj/usr/src/sys/GENERIC amd64
Result
tingo at kg-core1$ make -f Makefile.ini World
Building Release 6.1 of Dore.
I hope you checked the configuration parameters in ./config/cf
to see if you need to pass BOOTSTRAPCFLAGS.
Sun Mar 19 22:31:44 CET 2017
cd ./config/imake; make -f Makefile.ini BOOTSTRAPCFLAGS="" clean;
make -f Makefile.ini BOOTSTRAPCFLAGS=""
rm -f ccimake imake.o imake
rm -f *.CKP *.ln *.BAK *.bak *.o core errs ,* *~ *.a tags TAGS make.log \#*
making imake with BOOTSTRAPCFLAGS=
cc -o ccimake -O -I../../include ccimake.c
ccimake.c:42:1: warning: type specifier missing, defaults to 'int'
[-Wimplicit-int]
main()
^~~~
ccimake.c:44:2: warning: implicit declaration of function 'write' is
invalid in C99 [-Wimplicit-function-declaration]
write(1, imake_ccflags, sizeof(imake_ccflags) - 1);
^
ccimake.c:45:2: warning: implicitly declaring library function 'exit'
with type 'void (int) __attribute__((noreturn))'
exit(0);
^
ccimake.c:45:2: note: please include the header <stdlib.h> or
explicitly provide a declaration for 'exit'
3 warnings generated.
cc -c -O -I../../include `./ccimake` imake.c
imake.c:265:1: warning: type specifier missing, defaults to 'int'
[-Wimplicit-int]
main(argc, argv)
^~~~
imake.c:274:2: warning: implicit declaration of function 'init' is
invalid in C99 [-Wimplicit-function-declaration]
init();
^
imake.c:275:2: warning: implicit declaration of function 'SetOpts' is
invalid in C99 [-Wimplicit-function-declaration]
SetOpts(argc, argv);
^
imake.c:278:2: warning: implicit declaration of function
'CheckImakefileC' is invalid in C99 [-Wimplicit-function-declaration]
CheckImakefileC(ImakefileC);
^
imake.c:285:2: warning: implicit declaration of function 'AddMakeArg'
is invalid in C99 [-Wimplicit-function-declaration]
AddMakeArg("-f");
^
imake.c:296:2: warning: implicit declaration of function 'cppit' is
invalid in C99 [-Wimplicit-function-declaration]
cppit(cleanedImakefile, Template, ImakefileC, tmpfd, tmpMakefile);
^
imake.c:300:4: warning: implicit declaration of function 'showit' is
invalid in C99 [-Wimplicit-function-declaration]
showit(tmpfd);
^
imake.c:302:3: warning: implicit declaration of function 'makeit' is
invalid in C99 [-Wimplicit-function-declaration]
makeit();
^
imake.c:303:2: warning: implicit declaration of function 'wrapup' is
invalid in C99 [-Wimplicit-function-declaration]
wrapup();
^
imake.c:307:1: warning: type specifier missing, defaults to 'int'
[-Wimplicit-int]
showit(fd)
^~~~~~
imake.c:315:3: warning: implicit declaration of function
'writetmpfile' is invalid in C99 [-Wimplicit-function-declaration]
writetmpfile(stdout, buf, red, "stdout");
^
imake.c:318:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
imake.c:320:1: warning: type specifier missing, defaults to 'int'
[-Wimplicit-int]
wrapup()
^~~~~~
imake.c:328:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
imake.c:345:1: warning: type specifier missing, defaults to 'int'
[-Wimplicit-int]
init()
^~~~
imake.c:361:8: warning: using the result of an assignment as a
condition without parentheses [-Wparentheses]
if (p = getenv("IMAKEINCLUDE")) {
~~^~~~~~~~~~~~~~~~~~~~~~~~
imake.c:361:8: note: place parentheses around the assignment to
silence this warning
if (p = getenv("IMAKEINCLUDE")) {
^
( )
imake.c:361:8: note: use '==' to turn this assignment into an equality
comparison
if (p = getenv("IMAKEINCLUDE")) {
^
==
imake.c:365:3: warning: implicit declaration of function 'AddCppArg'
is invalid in C99 [-Wimplicit-function-declaration]
AddCppArg(p);
^
imake.c:372:8: warning: using the result of an assignment as a
condition without parentheses [-Wparentheses]
if (p = getenv("IMAKECPP"))
~~^~~~~~~~~~~~~~~~~~~~
imake.c:372:8: note: place parentheses around the assignment to
silence this warning
if (p = getenv("IMAKECPP"))
^
( )
imake.c:372:8: note: use '==' to turn this assignment into an equality
comparison
if (p = getenv("IMAKECPP"))
^
==
imake.c:374:8: warning: using the result of an assignment as a
condition without parentheses [-Wparentheses]
if (p = getenv("IMAKEMAKE"))
~~^~~~~~~~~~~~~~~~~~~~~
imake.c:374:8: note: place parentheses around the assignment to
silence this warning
if (p = getenv("IMAKEMAKE"))
^
( )
imake.c:374:8: note: use '==' to turn this assignment into an equality
comparison
if (p = getenv("IMAKEMAKE"))
^
==
imake.c:379:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
imake.c:381:1: warning: type specifier missing, defaults to 'int'
[-Wimplicit-int]
AddMakeArg(arg)
^~~~~~~~~~
imake.c:389:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
imake.c:391:1: warning: type specifier missing, defaults to 'int'
[-Wimplicit-int]
AddCppArg(arg)
^~~~~~~~~
imake.c:399:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
imake.c:401:1: warning: type specifier missing, defaults to 'int'
[-Wimplicit-int]
SetOpts(argc, argv)
^~~~~~~
imake.c:479:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
imake.c:505:14: warning: cast to 'char *' from smaller integer type
'int' [-Wint-to-pointer-cast]
LogFatal(s, (char *)i);
^
imake.c:527:27: warning: implicitly declaring library function
'strerror' with type 'char *(int)'
fprintf(stderr, "%s: ", strerror(errno));
^
imake.c:527:27: note: please include the header <string.h> or
explicitly provide a declaration for 'strerror'
imake.c:538:1: warning: type specifier missing, defaults to 'int'
[-Wimplicit-int]
showargs(argv)
^~~~~~~~
imake.c:544:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
imake.c:550:1: warning: type specifier missing, defaults to 'int'
[-Wimplicit-int]
CheckImakefileC(masterc)
^~~~~~~~~~~~~~~
imake.c:561:8: warning: implicitly declaring library function
'strncmp' with type 'int (const char *, const char *, unsigned long)'
strncmp(mkcbuf, TmplDef, sizeof(TmplDef)-1)) ||
^
imake.c:561:8: note: please include the header <string.h> or
explicitly provide a declaration for 'strncmp'
imake.c:573:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
imake.c:575:1: warning: type specifier missing, defaults to 'int'
[-Wimplicit-int]
cppit(imakefile, template, masterc, outfd, outfname)
^~~~~
imake.c:626:2: warning: implicit declaration of function
'CleanCppOutput' is invalid in C99 [-Wimplicit-function-declaration]
CleanCppOutput(outfd, outfname);
^
imake.c:627:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
imake.c:629:1: warning: type specifier missing, defaults to 'int'
[-Wimplicit-int]
makeit()
^~~~~~
imake.c:662:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
imake.c:706:7: warning: implicitly declaring library function 'strcmp'
with type 'int (const char *, const char *)'
if (strcmp(ptoken, "define") &&
^
imake.c:706:7: note: please include the header <string.h> or
explicitly provide a declaration for 'strcmp'
imake.c:747:1: warning: type specifier missing, defaults to 'int'
[-Wimplicit-int]
CleanCppOutput(tmpfd, tmpfname)
^~~~~~~~~~~~~~
imake.c:754:14: warning: using the result of an assignment as a
condition without parentheses [-Wparentheses]
while(input = ReadLine(tmpfd, tmpfname)) {
~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
imake.c:754:14: note: place parentheses around the assignment to
silence this warning
while(input = ReadLine(tmpfd, tmpfname)) {
^
( )
imake.c:754:14: note: use '==' to turn this assignment into an
equality comparison
while(input = ReadLine(tmpfd, tmpfname)) {
^
==
imake.c:755:7: warning: implicit declaration of function 'isempty' is
invalid in C99 [-Wimplicit-function-declaration]
if (isempty(input)) {
^
imake.c:762:31: warning: implicitly declaring library function
'strlen' with type 'unsigned long (const char *)'
writetmpfile(tmpfd, input, strlen(input), tmpfname);
^
imake.c:762:31: note: please include the header <string.h> or
explicitly provide a declaration for 'strlen'
imake.c:775:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
imake.c:782:1: warning: type specifier missing, defaults to 'int'
[-Wimplicit-int]
isempty(line)
^~~~~~~
imake.c:819:7: warning: implicitly declaring library function 'strcpy'
with type 'char *(char *, const char *)'
strcpy(pend+1, pend+5);
^
imake.c:819:7: note: please include the header <string.h> or
explicitly provide a declaration for 'strcpy'
imake.c:915:1: warning: type specifier missing, defaults to 'int'
[-Wimplicit-int]
writetmpfile(fd, buf, cnt, fname)
^~~~~~~~~~~~
imake.c:923:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
48 warnings generated.
cc -o imake imake.o
imake.o: In function `main':
imake.c:(.text+0xb2): warning: warning: mktemp() possibly used
unsafely; consider using mkstemp()
rm -f Makefile.bak; mv Makefile Makefile.bak
mv: rename Makefile to Makefile.bak: No such file or directory
*** Error code 1 (ignored)
./config/imake/imake -I./config/cf -DTOPDIR=. -DCURDIR=.
./config/imake/imake: No such file or directory: Cannot exec
/usr/libexec/cpp. Stop.
./config/imake/imake: Exit code 1. Stop.
*** Error code 1
Stop.
make: stopped in /zs/tingo/work/Dore-6.01
No, I haven't tried digging out the old FreeBSD port files from the
archives yet.
References:
1)
https://www.ibiblio.org/pub/packages/development/graphics/Dore/
--
Regards,
Torfinn Ingolfsen