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