HardenedBSD/sbin/geom/Makefile
Brooks Davis e4b0a90e77 Normalize the g(eom,cache,part,...) build.
Rather then combining hardlink creation for the geom(8) binary with
shared library build, move libraries to src/lib/geom so they are
built and installed normally.  Create a common Makefile.classes
which is included by both lib/geom/Makefile and sbin/geom/Makefile
so the symlink and libraries stay in sync.

The relocation of libraries allows libraries to be build for 32-bit
compat.  This also reduces the number of non-standard builds in
the system.

This commit is not sufficent to run a 32-bit /sbin/geom on a 64-bit
system out of the box as it will look in the wrong place for libraries
unless GEOM_LIBRARY_PATH is set appropriatly in the environment.

Reviewed by:	bdrewery
Sponsored by:	DARPA, AFRL
Differential Revision:	https://reviews.freebsd.org/D15360
2018-06-25 19:55:15 +00:00

31 lines
573 B
Makefile

# $FreeBSD$
.include <src.opts.mk>
.PATH: ${.CURDIR}/core ${.CURDIR}/misc
PACKAGE=runtime
PROG= geom
SRCS= geom.c subr.c
MAN= geom.8
CFLAGS+= -I${.CURDIR} -I${.CURDIR}/core
CFLAGS+= -DGEOM_CLASS_DIR=\"${GEOM_CLASS_DIR}\"
LIBADD= geom util
.if defined(RESCUE) || defined(RELEASE_CRUNCH)
.PATH: ${SRCTOP}/lib/geom/part \
${SRCTOP}/lib/geom/label
SRCS+= geom_label.c geom_part.c
MAN=
WARNS?= 2
CFLAGS+=-DSTATIC_GEOM_CLASSES
.else
.include "${SRCTOP}/lib/geom/Makefile.classes"
LINKS= ${GEOM_CLASSES:S|^|${BINDIR}/geom ${BINDIR}/g|}
.endif
.include <bsd.prog.mk>