Stop using unifdef to generate bsdxml.h

The current invocation of unifdef causes the build to fail when using a shell
with -o pipefail on by default since unifdef will return a non-zero exit status
if it changes something. The only thing this call to unifdef does is remove 5
lines that will be ignored by the compiler anyway. Furthermore, it is the only
make rule in the source tree that requires unifdef. Removing this call also
makes it slightly easier to build without inhering $PATH (D16815) since we
don't need unifdef anymore.

I also noticed that the sed call to replace the include guard has been broken
for over 10 years since the import of expat 2.0.1 changed it from
`XmlParse_INCLUDED` to `Expat_INCLUDED`. I could also fix this but since it's
been broken for so long and no one noticed, it's probably not necessary.

Reviewed By:	emaste
Approved By:	jhb (mentor)
Differential Revision: https://reviews.freebsd.org/D14317
This commit is contained in:
arichardson 2018-08-22 11:56:42 +00:00
parent 78480951cf
commit 8f8ffd0de4

View File

@ -18,14 +18,13 @@ CLEANFILES= bsdxml.h bsdxml_external.h
WARNS?= 2
# OK, so it is not entirely unadulterated: we amend the COPYING to
# point people to the right place, get rid of some VMS stuff and use
# FreeBSD-style include guards. We also want to point it at the new
# bsdxml_external.h rather than the old expat_external.h file.
# point people to the right place and use FreeBSD-style include guards.
# We also want to point it at the new bsdxml_external.h rather than the
# old expat_external.h file.
bsdxml.h: expat.h
unifdef -U__VMS < ${.ALLSRC} | \
sed -e 's/XmlParse_INCLUDED/_BSD_XML_H_/' \
-e 's/COPYING/src\/contrib\/expat\/COPYING/' \
-e 's/expat_external/bsdxml_external/' \
-e 's/expat_external/bsdxml_external/' ${.ALLSRC} \
> ${.TARGET}
bsdxml_external.h: expat_external.h