xref: /freebsd-11-stable/lib/libmagic/Makefile (revision 0eeb1acca057c719ac74a5b2d3ae27a2044d23d9)
1# $FreeBSD$
2# Copyright (c) David E. O'Brien, 2000-2004, 2006, 2009
3
4PACKAGE=lib${LIB}
5CONTRDIR=	${SRCTOP}/contrib/file
6.PATH: ${CONTRDIR}
7.PATH: ${CONTRDIR}/src
8.PATH: ${CONTRDIR}/doc
9
10LIB=	magic
11SHLIB_MAJOR=	4
12.if !make(build-tools)
13LIBADD=	z
14.endif
15MAN=	libmagic.3 magic.5
16
17SRCS=	apprentice.c apptype.c ascmagic.c buffer.c cdf.c cdf_time.c \
18	compress.c der.c encoding.c fsmagic.c funcs.c is_json.c \
19	is_csv.c \
20	is_tar.c magic.c print.c readcdf.c readelf.c seccomp.c softmagic.c
21INCS=	magic.h
22
23MAGICPATH?=	/usr/share/misc
24
25CFLAGS+= -DMAGIC='"${MAGICPATH}/magic"' -DHAVE_CONFIG_H
26CFLAGS+= -I${.CURDIR} -I${.OBJDIR} -I${CONTRDIR}/src
27
28WARNS?=		3
29
30CLEANFILES+=	magic magic.mgc
31
32FILES=		magic magic.mgc
33FILESDIR=	${MAGICPATH}
34
35MAGFILES=	${CONTRDIR}/magic/Header \
36		${CONTRDIR}/magic/Localstuff \
37		${CONTRDIR}/magic/Magdir/[a-z]*
38
39
40PACKAGE_VERSION!=	sed -n '/define.*PACKAGE_VERSION/{s,[^0-9.],,gp;q;}' ${.CURDIR}/config.h
41
42libmagic.pc: libmagic.pc.in
43	sed -e 's,@prefix@,/usr,g ; \
44		s,@exec_prefix@,$${prefix},g ; \
45		s,@libdir@,$${exec_prefix}/lib,g ; \
46		s,@sharedlibdir@,$${libdir},g ; \
47		s,@includedir@,$${prefix}/include,g ; \
48		s,@VERSION@,${PACKAGE_VERSION},g ; \
49		s,@LIBS@,,g ;' \
50                ${.ALLSRC} > ${.TARGET}
51
52magic: ${MAGFILES}
53	cat ${.ALLSRC:O} > ${.TARGET}
54
55magic.mgc: mkmagic magic
56	${BTOOLSPATH:U.}/mkmagic magic
57
58CLEANFILES+=	mkmagic
59build-tools: mkmagic
60mkmagic: apprentice.c cdf_time.c encoding.c funcs.c magic.c print.c ${INCS} ${BUILD_TOOLS_META}
61	${CC:N${CCACHE_BIN}} ${CFLAGS} -DCOMPILE_ONLY ${LDFLAGS} -o ${.TARGET} ${.ALLSRC:N*.h} \
62	    ${LDADD}
63
64FILEVER!= awk '$$1 == "\#define" && $$2 == "VERSION" { print $$3; exit }' \
65			${.CURDIR}/config.h
66CLEANFILES+=	${MAN}
67.for mp in ${MAN}
68${mp}: ${mp:C/[0-9]/man/}
69	sed -e 's/__FSECTION__/5/g' -e 's/__CSECTION__/1/g' \
70		-e 's/__VERSION__/${FILEVER}/g' \
71		-e 's,__MAGIC__,${MAGICPATH}/magic,g' ${.ALLSRC} > ${.TARGET}
72.endfor
73
74CLEANFILES+=	${INCS}
75.for inc in ${INCS}
76${inc}: ${inc}.in
77	sed -e 's,X.YY,${FILEVER:S,",,g:S,.,,g},g' ${.ALLSRC} > ${.TARGET}
78.endfor
79
80FILES+=			libmagic.pc
81FILESDIR_libmagic.pc=	${LIBDATADIR}/pkgconfig
82
83.include <bsd.lib.mk>
84