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