aboutsummaryrefslogtreecommitdiff
path: root/lib/libmagic/Makefile
blob: e390ff1261c6e154a3509b407869e3c84430685b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
# $FreeBSD$
# Copyright (c) David E. O'Brien, 2000-2004, 2006, 2009

PACKAGE=lib${LIB}
CONTRDIR=	${SRCTOP}/contrib/file
.PATH: ${CONTRDIR}
.PATH: ${CONTRDIR}/src
.PATH: ${CONTRDIR}/doc

LIB=	magic
SHLIB_MAJOR=	4
.if !make(build-tools)
LIBADD=	z
.endif
MAN=	libmagic.3 magic.5

SRCS=	apprentice.c apptype.c ascmagic.c buffer.c cdf.c cdf_time.c \
	compress.c der.c encoding.c fsmagic.c funcs.c is_json.c \
	is_csv.c \
	is_tar.c magic.c print.c readcdf.c readelf.c seccomp.c softmagic.c
INCS=	magic.h

MAGICPATH?=	/usr/share/misc

CFLAGS+= -DMAGIC='"${MAGICPATH}/magic"' -DHAVE_CONFIG_H
CFLAGS+= -I${.CURDIR} -I${.OBJDIR} -I${CONTRDIR}/src

WARNS?=		3

CLEANFILES+=	magic magic.mgc

FILES=		magic magic.mgc
FILESDIR=	${MAGICPATH}

MAGFILES=	${CONTRDIR}/magic/Header \
		${CONTRDIR}/magic/Localstuff \
		${CONTRDIR}/magic/Magdir/[a-z]*


PACKAGE_VERSION!=	sed -n '/define.*PACKAGE_VERSION/{s,[^0-9.],,gp;q;}' ${.CURDIR}/config.h

libmagic.pc: libmagic.pc.in
	sed -e 's,@prefix@,/usr,g ; \
		s,@exec_prefix@,$${prefix},g ; \
		s,@libdir@,$${exec_prefix}/lib,g ; \
		s,@sharedlibdir@,$${libdir},g ; \
		s,@includedir@,$${prefix}/include,g ; \
		s,@VERSION@,${PACKAGE_VERSION},g ; \
		s,@LIBS@,,g ;' \
                ${.ALLSRC} > ${.TARGET}

magic: ${MAGFILES}
	cat ${.ALLSRC:O} > ${.TARGET}

magic.mgc: magic
	${BTOOLSPATH:U.}/mkmagic magic

.if ${MACHINE} == "host" || ${MK_DIRDEPS_BUILD} == "no"
CLEANFILES+=	mkmagic
DEPENDOBJS+=	mkmagic
build-tools: mkmagic
mkmagic: apprentice.c cdf_time.c encoding.c funcs.c magic.c print.c ${INCS} ${BUILD_TOOLS_META}
	${CC:N${CCACHE_BIN}} ${CFLAGS} -DCOMPILE_ONLY ${LDFLAGS} -o ${.TARGET} \
	    ${.ALLSRC:N*.h:O:u} ${LDADD}

.endif
.if ${MK_DIRDEPS_BUILD} == "yes"
BTOOLSPATH= ${HOST_OBJTOP}/${RELDIR}
.else
magic.mgc: mkmagic
.endif

FILEVER!= awk '$$1 == "\#define" && $$2 == "VERSION" { print $$3; exit }' \
			${.CURDIR}/config.h
CLEANFILES+=	${MAN}
.for mp in ${MAN}
${mp}: ${mp:C/[0-9]/man/}
	sed -e 's/__FSECTION__/5/g' -e 's/__CSECTION__/1/g' \
		-e 's/__VERSION__/${FILEVER}/g' \
		-e 's,__MAGIC__,${MAGICPATH}/magic,g' ${.ALLSRC} > ${.TARGET}
.endfor

CLEANFILES+=	${INCS}
.for inc in ${INCS}
${inc}: ${inc}.in
	sed -e 's,X.YY,${FILEVER:S,",,g:S,.,,g},g' ${.ALLSRC} > ${.TARGET}
.endfor

FILES+=			libmagic.pc
FILESDIR_libmagic.pc=	${LIBDATADIR}/pkgconfig

.include <bsd.lib.mk>