freebsd-dev/lib/libexpat/Makefile
Alex Richardson 24c14ab87e 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
2018-08-22 11:56:42 +00:00

34 lines
833 B
Makefile

# $FreeBSD$
PACKAGE=lib${LIB}
EXPAT= ${SRCTOP}/contrib/expat
LIB= bsdxml
SHLIBDIR?= /lib
SHLIB_MAJOR= 4
SRCS= xmlparse.c xmlrole.c xmltok.c
INCS= bsdxml.h bsdxml_external.h
MAN= libbsdxml.3
.PATH: ${EXPAT}/lib
CFLAGS+= -I${.CURDIR} -DHAVE_EXPAT_CONFIG_H
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 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
sed -e 's/XmlParse_INCLUDED/_BSD_XML_H_/' \
-e 's/COPYING/src\/contrib\/expat\/COPYING/' \
-e 's/expat_external/bsdxml_external/' ${.ALLSRC} \
> ${.TARGET}
bsdxml_external.h: expat_external.h
${CP} ${.ALLSRC} ${.TARGET}
.include <bsd.lib.mk>