1 1.3.4.1 bouyer # $NetBSD: Makefile.inc,v 1.3.4.1 2017/04/21 16:54:03 bouyer Exp $ 2 1.1 jakllsch # 3 1.1 jakllsch # Configuration variables (default values are below): 4 1.1 jakllsch # 5 1.1 jakllsch # S must be set to the top of the 'sys' tree. 6 1.1 jakllsch # GNUEFIDST may be set to the location of the directory where library 7 1.1 jakllsch # objects are to be built. Defaults to ${.OBJDIR}/lib/gnuefi. 8 1.1 jakllsch # GNUEFI_AS may be set to 'obj' to build a object from the library's 9 1.1 jakllsch # object files. (Otherwise, a library will be built.) 10 1.1 jakllsch # Defaults to 'library'. 11 1.1 jakllsch # GNUEFIMISCCPPFLAGS 12 1.1 jakllsch # Miscellaneous cpp flags to be passed to the library's Makefile 13 1.1 jakllsch # when building. 14 1.1 jakllsch # GNUEFIMISCMAKEFLAGS 15 1.1 jakllsch # Miscellaneous flags to be passed to the library's Makefile when 16 1.1 jakllsch # building. See library's Makefile for more details about 17 1.1 jakllsch # supported flags and their default values. 18 1.1 jakllsch 19 1.1 jakllsch # Default values: 20 1.1 jakllsch GNUEFIDST?= ${.OBJDIR}/lib/gnuefi 21 1.1 jakllsch GNUEFI_AS?= library 22 1.1 jakllsch GNUEFIDOTDIR?= ../../. 23 1.1 jakllsch 24 1.1 jakllsch CWARNFLAGS.clang+= -Wno-format-extra-args 25 1.1 jakllsch 26 1.1 jakllsch GNUEFIDIR= ${S:S@^.@${GNUEFIDOTDIR}@:Q}/lib/libgnuefi 27 1.1 jakllsch .if (${GNUEFI_AS} == "obj") 28 1.1 jakllsch GNUEFILIB= ${GNUEFIDST}/libgnuefi.o 29 1.1 jakllsch GNUEFILIB_PROF= ${GNUEFIDST}/libgnuefi.po 30 1.1 jakllsch .else 31 1.1 jakllsch GNUEFILIB= ${GNUEFIDST}/libgnuefi.a 32 1.1 jakllsch GNUEFILIB_PROF= ${GNUEFIDST}/libgnuefi_p.a 33 1.1 jakllsch .endif 34 1.1 jakllsch ZLIBSRCDIR:= ${.PARSEDIR}/../../../common/dist/zlib 35 1.1 jakllsch GNUEFIMISCCPPFLAGS+=-I${ZLIBSRCDIR} 36 1.1 jakllsch 37 1.1 jakllsch GNUEFIMAKE= \ 38 1.1 jakllsch cd ${GNUEFIDST} && ${MAKE} -f ${GNUEFIDIR:Q}/Makefile \ 39 1.1 jakllsch GNUEFIDIR=${GNUEFIDIR:Q} \ 40 1.1 jakllsch CC=${CC:Q} CFLAGS=${CFLAGS:Q} CPUFLAGS= \ 41 1.1 jakllsch AS=${AS:Q} AFLAGS=${AFLAGS:Q} \ 42 1.1 jakllsch LORDER=${LORDER:Q} \ 43 1.1 jakllsch TSORT=${TSORT:Q} \ 44 1.1 jakllsch LD=${LD:Q} STRIP=${STRIP:Q} \ 45 1.1 jakllsch AR=${AR:Q} NM=${NM:Q} \ 46 1.1 jakllsch RANLIB=${RANLIB:Q} SIZE=${SIZE:Q} \ 47 1.1 jakllsch MACHINE=${MACHINE} MACHINE_ARCH=${MACHINE_ARCH:Q} \ 48 1.1 jakllsch GNUEFICPPFLAGS=${CPPFLAGS:S@^-I.@-I${GNUEFIDOTDIR}@g:Q} \ 49 1.1 jakllsch GNUEFIMISCCPPFLAGS=${GNUEFIMISCCPPFLAGS:Q} \ 50 1.3.4.1 bouyer LIBGNUEFI_ARCH=${LIBGNUEFI_ARCH:Q} \ 51 1.1 jakllsch ${GNUEFIMISCMAKEFLAGS} 52 1.1 jakllsch 53 1.1 jakllsch ${GNUEFILIB}: .NOTMAIN .MAKE __always_make_gnuefilib 54 1.1 jakllsch @echo making sure the gnuefi library is up to date... 55 1.1 jakllsch .if (${GNUEFI_AS} == "library") 56 1.1 jakllsch @${GNUEFIMAKE} libgnuefi.a 57 1.1 jakllsch .else 58 1.1 jakllsch @${GNUEFIMAKE} libgnuefi.o 59 1.1 jakllsch .endif 60 1.1 jakllsch 61 1.1 jakllsch ${GNUEFILIB_PROF}: .NOTMAIN .MAKE __always_make_gnuefilib 62 1.1 jakllsch @echo making sure the profiled gnuefi library is up to date... 63 1.1 jakllsch .if (${GNUEFI_AS} == "library") 64 1.1 jakllsch @${GNUEFIMAKE} libgnuefi_p.a 65 1.1 jakllsch .else 66 1.1 jakllsch @${GNUEFIMAKE} libgnuefi.po 67 1.1 jakllsch .endif 68 1.1 jakllsch 69 1.1 jakllsch clean: .NOTMAIN cleangnuefilib 70 1.1 jakllsch cleangnuefilib: .NOTMAIN 71 1.1 jakllsch @echo cleaning the gnuefi library objects 72 1.1 jakllsch @if [ -d "${GNUEFIDST}" ]; then ${GNUEFIMAKE} clean; fi 73 1.1 jakllsch 74 1.1 jakllsch cleandir distclean: .NOTMAIN cleandirgnuefilib 75 1.1 jakllsch cleandirgnuefilib: .NOTMAIN 76 1.1 jakllsch @echo cleandiring the gnuefi library objects 77 1.1 jakllsch @if [ -d "${GNUEFIDST}" ]; then ${GNUEFIMAKE} cleandir; fi 78 1.1 jakllsch 79 1.1 jakllsch dependall depend: .NOTMAIN dependgnuefilib 80 1.1 jakllsch dependgnuefilib: .NOTMAIN .MAKE __always_make_gnuefilib 81 1.1 jakllsch @echo depending the gnuefi library objects 82 1.1 jakllsch @${GNUEFIMAKE} depend 83 1.1 jakllsch 84 1.1 jakllsch __always_make_gnuefilib: .NOTMAIN 85 1.1 jakllsch @mkdir -p ${GNUEFIDST} 86 1.1 jakllsch 87 1.1 jakllsch .PHONY: __always_make_gnuefilib 88 1.1 jakllsch .PHONY: cleangnuefilib cleandirgnuefilib dependgnuefilib 89