3296cb154d
looking ${.OBJDIR} work that has the up-side of actually working
in upgrade and make -jN cases.
This needs to be revisited further, and it is conceivable that
the ${.OBJDIR} stuff can be simplified, but the sheer number of
edge cases and other causes make this Hard(tm). For now, this works.
108 lines
2.3 KiB
Makefile
108 lines
2.3 KiB
Makefile
# $FreeBSD$
|
|
|
|
LIB= hdb
|
|
|
|
SRCS= \
|
|
common.c \
|
|
db.c \
|
|
db3.c \
|
|
hdb-ldap.c \
|
|
hdb.c \
|
|
keytab.c \
|
|
mkey.c \
|
|
ndbm.c \
|
|
print.c \
|
|
hdb_err.c \
|
|
${.OBJDIR}/hdb_err.h \
|
|
${.OBJDIR}/hdb_asn1.h \
|
|
${.OBJDIR}/k524_err.h \
|
|
${.OBJDIR}/krb5_err.h \
|
|
${.OBJDIR}/heim_err.h \
|
|
${GEN:S/.x/.c/g}
|
|
|
|
CFLAGS+=-I${KRB5DIR}/include \
|
|
-I${INCLUDEOBJDIR} \
|
|
-I${KRB5DIR}/lib/krb5 \
|
|
-I${KRB5DIR}/lib/hdb \
|
|
-I${KRB5DIR}/lib/asn1 \
|
|
-I${KRB5DIR}/lib/roken \
|
|
-I${.OBJDIR} \
|
|
-I${ASN1OBJDIR} \
|
|
${LDAPCFLAGS}
|
|
|
|
GEN= \
|
|
asn1_Key.x \
|
|
asn1_GENERATION.x \
|
|
asn1_Event.x \
|
|
asn1_HDBFlags.x \
|
|
asn1_hdb_entry.x \
|
|
asn1_Salt.x
|
|
|
|
.include <bsd.lib.mk>
|
|
|
|
.PATH: ${KRB5DIR}/lib/hdb
|
|
.PATH: ${KRB5DIR}/lib/asn1
|
|
.PATH: ${KRB5DIR}/lib/vers
|
|
.PATH: ${KRB5DIR}/lib/roken
|
|
|
|
build-tools: make-print-version asn1_compile
|
|
|
|
.for I in ${GEN}
|
|
${I:S/.x/.c/}: ${I}
|
|
cmp -s ${.OODATE} ${.TARGET} 2> /dev/null || cp ${.OODATE} ${.TARGET}
|
|
.endfor
|
|
|
|
CLEANFILES+= ${GEN:S/.x/.c/g} hdb_asn1.h asn1_files
|
|
|
|
${GEN} ${.OBJDIR}/hdb_asn1.h: asn1_compile hdb.asn1
|
|
./asn1_compile ${KRB5DIR}/lib/hdb/hdb.asn1 hdb_asn1
|
|
|
|
asn1_compile: \
|
|
gen.c \
|
|
gen_copy.c \
|
|
gen_decode.c \
|
|
gen_encode.c \
|
|
gen_free.c \
|
|
gen_glue.c \
|
|
gen_length.c \
|
|
hash.c \
|
|
emalloc.c \
|
|
main.c \
|
|
symbol.c \
|
|
getarg.c \
|
|
warnerr.c \
|
|
${.OBJDIR}/lex.o \
|
|
${.OBJDIR}/parse.o \
|
|
${.OBJDIR}/print_version.o \
|
|
get_window_size.c \
|
|
strupr.c
|
|
${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.OODATE} ${LDADD}
|
|
|
|
.ORDER: ${.OBJDIR}/roken.h ${.OBJDIR}/parse.c ${.OBJDIR}/parse.h ${.OBJDIR}/lex.c
|
|
|
|
${.OBJDIR}/parse.o: ${.OBJDIR}/parse.c ${.OBJDIR}/roken.h
|
|
|
|
${.OBJDIR}/lex.o: ${.OBJDIR}/lex.c ${.OBJDIR}/parse.h ${.OBJDIR}/roken.h
|
|
|
|
${.OBJDIR}/parse.h ${.OBJDIR}/parse.c: parse.y
|
|
${YACC} -d ${.OODATE}
|
|
cp y.tab.c parse.c
|
|
cp y.tab.h parse.h
|
|
|
|
${.OBJDIR}/lex.c: lex.l
|
|
${LEX} -t ${LFLAGS} ${.OODATE} > ${.TARGET}
|
|
|
|
${.OBJDIR}/print_version.o: ${.OBJDIR}/print_version.h print_version.c \
|
|
${.OBJDIR}/roken.h
|
|
${CC} ${CFLAGS} -c -o ${.TARGET} ${KRB5DIR}/lib/vers/print_version.c
|
|
|
|
${.OBJDIR}/print_version.h: make-print-version
|
|
./make-print-version print_version.h
|
|
|
|
make-print-version: make-print-version.c
|
|
${CC} ${CFLAGS} -static -o ${.TARGET} ${.OODATE}
|
|
|
|
CLEANFILES+= ${GEN} asn1_compile lex.o parse.o parse.c parse.h \
|
|
hdb_asn1.h make-print-version print_version.h print_version.o \
|
|
y.tab.c y.tab.h
|