The use of the gcc commandline option -I-
had been
deprecated for a while now. I just removed it from the PTMakefile's.
The test (make test) was fixed to work with modern C++ compilers that demand that std::cout is used instead of just cout.
Fixed the default Makedefs.h
: the given example cause
CPPEXT
to end on a space which then resulted in a total
failure of everything else (It must be: CPPEXT=.cc
on it own
on a line, not CPPEXT=".cc"
with or without a comment
behind it).
The test (make test) was fixed to work around a bug in the
libstdc++ that comes with for instance RedHat-7.0
(_G_CLOG_CONFLICT
needs to be defined).
Support for FreeBSD: The path to make
is now better
propagated so things work when you are using gmake
for
instance. FreeBSDs find
does not support
-mindepth
-maxdepth
or -printf
,
therefore find
has been replaced with a construction
using ls
and grep
.
All UNIX programs that used to be set in $PROTODIR/Makedefs.h
are now determined, including path, by ./configure
.
During installation /bin/sh
is used (bash
is
still needed to use prototype makefiles).
./configure
now tries to extract --prefix
and --datadir
automatically from a previous install.
Fixed all Makefiles with a loop like
"for i in $(SUBDIRS); do
".
The behaviour of for
in bash-2 changed from bash-1.14
and prototype would not work with bash-2.
Only remove ELF executable files, not scripts, in target
real-clean
.
Added CPPEXT to $PROTODIR/Makedefs.h.
Bug fixes for target real-clean
: .cvsignore
files were wrongly deleted and recursion into sub directories was broken.
Target shared didn't create the $BASEDIR/lib directory, if it doesn't exist, before copying the shared library there.
A few minor bug fixes:
typing make
in a subdirectory
caused the target .depend
to be build while checking the
Makefile
target.
This can fail since INCLUDEFLAGS
is set by the
Makefile(s) in the parent directories now.
Also, it was possible that the dependency on subdirectory objects caused these object files to be rebuild with the rules of the parent Makefile. Both bugs have been fixed.
The INCLUDEFLAGS
variable is now correctly
propagated to sub directories by replacing each occurance of
"-I
" by "-I../
".
$PROTODIR/Makedefs.h
was corrected to include a
DFLAGS
variable which can be set to -MM
or
-M
to produce respectively dependencies of only local
header files (between double quotes) or also system header files
(between angle brackets)
Of course you can change the default per project in your
$BASEDIR/Makedefs.h
file.
If you upgrade from version 1.0, then please note that
you will have to set a new environment variable (CPPEXT
)
and that the variable SRC has been spliced into two:
CSRC
and CXXSRC
, for C sources and
C++ sources respectively.
You will have to edit all your projects Makefiles and change
SRC
into CXXSRC
(assuming it's a
C++ project), sorry about that.
Also, CFLAGS
is now only used for C sources,
you'll have to change CXXFLAGS
for C++ projects.
Warning: Upgrading prototype will overwrite
$PROTODIR/Makedefs.h
. If you made changes to that file
(most likely setting a different default CFLAGS
), then you'll
have to redo that by hand after installing. You might
want to backup $PROTODIR/Makedefs.h
before installing.