Bug #2507
closedWt build fails on FreeBSD 10.0
0%
Description
The build for version 3.3.1 stops after trying to compile src/Wt/Http/Request from src/Wt/Http/Request.C
On the distribution Request.C has a newer date than the Request header, that is a dependency of many other
sources in the project.
The default intrinsic rules in the POSIX standard for make try to rebuild an extensionless file (assumed
executable) from a suitable newer source found in the same directory, in particular POSIX defines as defaults:
SINGLE SUFFIX RULES
.c:
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $<
.f:
$(FC) $(FFLAGS) $(LDFLAGS) -o $@ $<
.sh:
cp $< $@
chmod a+x $@
Apparently FreeBSD also adds a similar rule for the extension .C
I guess this problem doesn't happen too often because people tend to put their headers in a separate directory from
their C sources, or give them .h or .hpp suffixes.
As a workaround, forcing the -r switch to make through the environment variable MAKEFLAGS solves the problem.
Probably it would be best to add some extension to the headers to avoid this misunderstanding on POSIX-style systems.
Updated by Wim Dumon about 11 years ago
- Status changed from New to Closed
Since Wt doesn't ship with Makefiles, I would say this is a bug in cmake :-)
Are you using gnu make, and shouldn't gnu make behave pretty much identical on freebsd as on Linux?
BR,
Wim.