version 1.69, 2013/03/18 10:51:35 |
version 1.70, 2013/10/13 23:30:12 |
|
|
|
|
# prefer .S to a .c, add .po, remove stuff not used in the BSD libraries. |
# prefer .S to a .c, add .po, remove stuff not used in the BSD libraries. |
# .so used for PIC object files. |
# .so used for PIC object files. |
|
# .do used for distrib "crunchgen" object files |
# .m for objective c files. |
# .m for objective c files. |
.SUFFIXES: |
.SUFFIXES: |
.SUFFIXES: .out .o .go .po .so .S .s .c .cc .cpp .C .cxx .f .y .l .m4 .m |
.SUFFIXES: .out .o .go .po .so .do .S .s .c .cc .cpp .C .cxx .f .y .l .m4 .m |
|
|
.if defined(NOPIE) |
.if defined(NOPIE) |
CFLAGS+= ${NOPIE_FLAGS} |
CFLAGS+= ${NOPIE_FLAGS} |
AFLAGS+= ${NOPIE_FLAGS} |
AFLAGS+= ${NOPIE_FLAGS} |
.endif |
.endif |
|
|
|
DIST_CFLAGS+= -Os |
|
|
.c.o: |
.c.o: |
@echo "${COMPILE.c} ${.IMPSRC} -o ${.TARGET}" |
@echo "${COMPILE.c} ${.IMPSRC} -o ${.TARGET}" |
@${COMPILE.c} ${.IMPSRC} -o ${.TARGET}.o |
@${COMPILE.c} ${.IMPSRC} -o ${.TARGET}.o |
|
|
@${LD} -X -r ${.TARGET}.o -o ${.TARGET} |
@${LD} -X -r ${.TARGET}.o -o ${.TARGET} |
@rm -f ${.TARGET}.o |
@rm -f ${.TARGET}.o |
|
|
|
.c.do: |
|
@echo "${COMPILE.c} ${DIST_CFLAGS} ${.IMPSRC} -o ${.TARGET}" |
|
@${COMPILE.c} ${DIST_CFLAGS} ${.IMPSRC} -o ${.TARGET}.o |
|
@${LD} -X -r ${.TARGET}.o -o ${.TARGET} |
|
@rm -f ${.TARGET}.o |
|
|
.cc.o .cpp.o .C.o .cxx.o: |
.cc.o .cpp.o .C.o .cxx.o: |
@echo "${COMPILE.cc} ${.IMPSRC} -o ${.TARGET}" |
@echo "${COMPILE.cc} ${.IMPSRC} -o ${.TARGET}" |
@${COMPILE.cc} ${.IMPSRC} -o ${.TARGET}.o |
@${COMPILE.cc} ${.IMPSRC} -o ${.TARGET}.o |
|
|
@${LD} -X -r ${.TARGET}.o -o ${.TARGET} |
@${LD} -X -r ${.TARGET}.o -o ${.TARGET} |
@rm -f ${.TARGET}.o |
@rm -f ${.TARGET}.o |
|
|
|
.S.do .s.do: |
|
@echo "${COMPILE.S} ${CFLAGS:M-[ID]*} ${AINC} ${DIST_CFLAGS} \ |
|
${.IMPSRC} -o ${.TARGET}" |
|
@${COMPILE.S} ${CFLAGS:M-[ID]*} ${AINC} ${DIST_CFLAGS} ${.IMPSRC} \ |
|
-o ${.TARGET}.o |
|
@${LD} -X -r ${.TARGET}.o -o ${.TARGET} |
|
@rm -f ${.TARGET}.o |
|
|
.if ${WARNINGS:L} == "yes" |
.if ${WARNINGS:L} == "yes" |
CFLAGS+= ${CDIAGFLAGS} |
CFLAGS+= ${CDIAGFLAGS} |
CXXFLAGS+= ${CXXDIAGFLAGS} |
CXXFLAGS+= ${CXXDIAGFLAGS} |
|
|
-o lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ |
-o lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ |
`${LORDER} ${SOBJS}|tsort -q` ${LDADD} |
`${LORDER} ${SOBJS}|tsort -q` ${LDADD} |
|
|
|
# all .do files... |
|
DOBJS+= ${OBJS:.o=.do} |
|
|
|
# .do files that we actually need for where this dist lib will be used |
|
.if defined(DIST_OBJS) |
|
SELECTED_DOBJS=${DIST_OBJS:.o=.do} |
|
.else |
|
SELECTED_DOBJS?=${DOBJS} |
|
.endif |
|
|
|
DIST_LIB?=lib${LIB}_d.a |
|
${DIST_LIB}: ${SELECTED_DOBJS} |
|
@echo building distrib ${DIST_LIB} library from ${SELECTED_DOBJS} |
|
@rm -f ${DIST_LIB} |
|
.if !empty(SELECTED_DOBJS) |
|
@${AR} cq ${DIST_LIB} `${LORDER} ${SELECTED_DOBJS} | tsort -q` |
|
.else |
|
@${AR} cq ${DIST_LIB} |
|
.endif |
|
${RANLIB} ${DIST_LIB} |
|
|
.if !target(clean) |
.if !target(clean) |
clean: _SUBDIRUSE |
clean: _SUBDIRUSE |
rm -f a.out [Ee]rrs mklog core *.core ${CLEANFILES} |
rm -f a.out [Ee]rrs mklog core *.core ${CLEANFILES} |
|
|
rm -f lib${LIB}_g.a ${GOBJS} |
rm -f lib${LIB}_g.a ${GOBJS} |
rm -f lib${LIB}_p.a ${POBJS} |
rm -f lib${LIB}_p.a ${POBJS} |
rm -f lib${LIB}.so.*.* ${SOBJS} |
rm -f lib${LIB}.so.*.* ${SOBJS} |
|
rm -f ${DIST_LIB} ${DOBJS} |
.endif |
.endif |
|
|
cleandir: _SUBDIRUSE clean |
cleandir: _SUBDIRUSE clean |
|
|
echo "$$0: cannot create temp file, exiting..."; \ |
echo "$$0: cannot create temp file, exiting..."; \ |
exit 1; \ |
exit 1; \ |
fi; \ |
fi; \ |
sed -e 's/^\([^\.]*\).o[ ]*:/\1.o \1.po \1.so:/' \ |
sed -e 's/^\([^\.]*\).o[ ]*:/\1.o \1.go \1.po \1.so \1.do:/' \ |
< .depend > $$TMP; \ |
< .depend > $$TMP; \ |
mv $$TMP .depend) |
mv $$TMP .depend) |
.endif |
.endif |