Annotation of embedaddon/libpdel/Makefile, revision 1.1
1.1 ! misho 1: # $Id: Makefile,v 1.61 2004/07/29 00:59:36 archie Exp $
! 2:
! 3: LIB= pdel
! 4:
! 5: SUBDIRS= config http io net ppp structs sys tmpl util
! 6:
! 7: VERSION!= grep -w PDEL_VERSION_STRING ${.CURDIR}/version.h \
! 8: | awk '{ print $$NF }' | sed 's/"//g'
! 9: VERSION_MAJOR= ${VERSION:C/([0-9]+)\.([0-9]+)\.([0-9]+)/\1/g}
! 10: VERSION_MINOR= ${VERSION:C/([0-9]+)\.([0-9]+)\.([0-9]+)/\2/g}
! 11: VERSION_PATCH= ${VERSION:C/([0-9]+)\.([0-9]+)\.([0-9]+)/\3/g}
! 12:
! 13: PREFIX?= /usr/local
! 14: PDELTOP= ${.CURDIR}
! 15: LIBSUFX= lib
! 16: LIBDIR= ${PREFIX}/${LIBSUFX}
! 17: SHLIBDIR= ${PREFIX}/${LIBSUFX}
! 18: MANSUFX= man/man
! 19: MANDIR= ${PREFIX}/${MANSUFX}
! 20: INCSUFX= include/pdel
! 21: INCDIR= ${PREFIX}/${INCSUFX}
! 22: OBJDIR= ${PDELTOP}/obj
! 23: SHLIB_MAJOR= ${VERSION_MAJOR}
! 24: MAN= libpdel.3
! 25: NOPROFILE=
! 26: INCHDRS= version.h
! 27:
! 28: # Uncomment to get debug symbols
! 29: #CFLAGS+=-g
! 30: #STRIP=
! 31:
! 32: #
! 33: # Read in info from subdirectories
! 34: #
! 35: .for DIR in ${SUBDIRS}
! 36: .include "${DIR}/Makefile.inc"
! 37: .for PDIR in ${${DIR}_PATH}
! 38: .PATH: ${PDIR}
! 39: SRCDIRS+= ${PDIR}
! 40: .endfor
! 41: SRCS+= ${${DIR}_SRCS}
! 42: INCHDRS+= ${${DIR}_INCS:S/^/${DIR}\//g}
! 43: MAN+= ${${DIR}_MAN:S/^/${DIR}\//g}
! 44: MLINKS+= ${${DIR}_MLINKS}
! 45: .endfor
! 46:
! 47: CFLAGS+= -I${PDELTOP}
! 48: CFLAGS+= -I${PREFIX}/include
! 49: CFLAGS+= -DTYPED_MEM_UNDEFINE_ORIGINALS
! 50:
! 51: CLEANFILES+= ${.CURDIR}/freebsd.port/pdel-port.tgz
! 52:
! 53: #
! 54: # Cleaning up
! 55: #
! 56: extra_clean: cleandir
! 57: ( cd ${.CURDIR} && find -E ${.CURDIR} \
! 58: -regex '.*/(tags|.*\.orig|xx)' | xargs rm )
! 59: @if [ -d ${.CURDIR}/freebsd.port ]; then \
! 60: cd ${.CURDIR}/freebsd.port && ${MAKE} cleandir; \
! 61: fi
! 62: @for DIR in ${SUBDIRS}; do \
! 63: TDIRS=`find ${.CURDIR}/$${DIR} -type d -a -name '*test*'`; \
! 64: for TDIR in $${TDIRS}; do \
! 65: ( cd $${TDIR} && ${MAKE} cleandir ); \
! 66: done; \
! 67: done
! 68:
! 69: .if !defined(EXTRA_CLEAN)
! 70: clean cleandir distclean:
! 71: cd ${.CURDIR} && ${MAKE} extra_clean EXTRA_CLEAN=
! 72: .endif
! 73:
! 74: #
! 75: # Handle installation of #include files
! 76: #
! 77: beforeinstall: includedirs includefiles
! 78:
! 79: #
! 80: # Create #include subdirectories
! 81: #
! 82: includedirs:
! 83: @INCDIRS=`echo ${INCHDRS} | fmt 2 | grep / \
! 84: | sed -E 's,^(.*)/[^/]+$$,\1,g' | sort | uniq`; \
! 85: for DIR in $${INCDIRS}; do \
! 86: if ! [ -d ${DESTDIR}${INCDIR}$${DIR} ]; then \
! 87: echo ${INSTALL} -d -o ${BINOWN} -g ${BINGRP} -m 0755 \
! 88: ${DESTDIR}${INCDIR}/$${DIR}; \
! 89: ${INSTALL} -d -o ${BINOWN} -g ${BINGRP} -m 0755 \
! 90: ${DESTDIR}${INCDIR}/$${DIR}; \
! 91: fi; \
! 92: done
! 93:
! 94: #
! 95: # Install header files
! 96: #
! 97: includefiles:
! 98: @for HDR in ${INCHDRS}; do \
! 99: echo ${INSTALL} -C -o ${SHAREOWN} -g ${SHAREGRP} -m \
! 100: ${SHAREMODE} ${PDELTOP}/$${HDR} \
! 101: ${DESTDIR}${INCDIR}/$${HDR}; \
! 102: ${INSTALL} -C -o ${SHAREOWN} -g ${SHAREGRP} -m \
! 103: ${SHAREMODE} ${PDELTOP}/$${HDR} \
! 104: ${DESTDIR}${INCDIR}/$${HDR}; \
! 105: done
! 106:
! 107: #
! 108: # Print out all created directories
! 109: #
! 110: dirlist:
! 111: @INCDIRS=`echo ${INCHDRS} | fmt 2 | grep / \
! 112: | sed -E 's,^(.*)/[^/]+$$,\1,g' | sort | uniq`; \
! 113: for DIR in $${INCDIRS}; do \
! 114: echo ${INCSUFX}/$${DIR}; \
! 115: done; \
! 116: echo ${INCSUFX}
! 117:
! 118: #
! 119: # Print out all installed files
! 120: #
! 121: filelist:
! 122: @( cd ${.CURDIR} && ${MAKE} filelist-unsorted | sort )
! 123:
! 124: filelist-unsorted:
! 125: @echo ${LIBSUFX}/libpdel.a
! 126: @echo ${LIBSUFX}/libpdel.so
! 127: @echo ${LIBSUFX}/libpdel.so.${SHLIB_MAJOR}
! 128: @for HDR in ${INCHDRS}; do \
! 129: echo ${INCSUFX}/$${HDR}; \
! 130: done
! 131: @set `echo ${MAN} " " | sed 's/\.\([^.]*\) /.\1 \1 /g'`; \
! 132: while : ; do \
! 133: case $$# in \
! 134: 0) break;; \
! 135: 1) echo "warn: missing extension: $$1"; break;; \
! 136: esac; \
! 137: page=`basename $$1`; shift; sect=$$1; shift; \
! 138: ${ECHO} ${MANSUFX}$${sect}/$${page}.gz; \
! 139: done
! 140: @set `echo ${MLINKS} " " | sed 's/\.\([^.]*\) /.\1 \1 /g'`; \
! 141: while : ; do \
! 142: case $$# in \
! 143: 0) break;; \
! 144: [123]) echo "warn: empty MLINK: $$1 $$2 $$3"; break;; \
! 145: esac; \
! 146: shift; shift; page=`basename $$1`; shift; sect=$$1; shift; \
! 147: ${ECHO} ${MANSUFX}$${sect}/$${page}.gz; \
! 148: done
! 149:
! 150: #
! 151: # Create distribution tarball, including substituted copyright notices
! 152: #
! 153: COPYRIGHT_TAG= @COPYRIGHT@
! 154: COPYRIGHT_FILE= ${.CURDIR}/COPYRIGHT
! 155:
! 156: tarball: ${COPYRIGHT_FILE}
! 157: ( cd ${.CURDIR} && ${MAKE} cleandir )
! 158: rm -f ${.CURDIR}/GNUmakefile
! 159: ( cd ${.CURDIR} && ${MAKE} ${.CURDIR}/GNUmakefile )
! 160: rm -rf libpdel-${VERSION}
! 161: mkdir libpdel-${VERSION}
! 162: ( cd ${.CURDIR} && find COPYRIGHT README Changes *akefile* libpdel.3 \
! 163: ports debug version.h ${SUBDIRS} \( -name CVS -a -prune \) \
! 164: -o -type f -print | cpio -pudml ${OBJDIR}/libpdel-${VERSION} )
! 165: FILES=`find ${OBJDIR}/libpdel-${VERSION} -type f -print`; \
! 166: for f in $${FILES}; do \
! 167: if [ "$${f}" != "${OBJDIR}/libpdel-${VERSION}/Makefile" ] \
! 168: && grep -q '${COPYRIGHT_TAG}' $${f}; then \
! 169: echo substituting '${COPYRIGHT_TAG}' in $${f}; \
! 170: LINE=`grep -n '${COPYRIGHT_TAG}' $${f} \
! 171: | head -1 | awk -F: '{print $$1}'`; \
! 172: TAIL=`grep -n '${COPYRIGHT_TAG}' $${f} \
! 173: | head -1 | awk -F: '{print $$2}' \
! 174: | sed -e 's/\\\\/\\\\\\\\/g' -e 's/"/\\\\"/g'`; \
! 175: PREFX=`echo "$${TAIL}" \
! 176: | sed -E 's/^(.*)${COPYRIGHT_TAG}(.*)$$/\\1/g'`; \
! 177: SUFFX=`echo "$${TAIL}" \
! 178: | sed -E 's/^(.*)${COPYRIGHT_TAG}(.*)$$/\\2/g'`; \
! 179: if [ "$${LINE}" -gt 1 ]; then \
! 180: head -`expr $${LINE} - 1` < $${f} > $${f}.new; \
! 181: else \
! 182: cat /dev/null > $${f}.new; \
! 183: fi; \
! 184: awk "{ printf \"%s%s%s\\n\", \
! 185: \"$${PREFX}\", \$$0, \"$${SUFFX}\" }" \
! 186: < ${COPYRIGHT_FILE} >> $${f}.new; \
! 187: tail +`expr $${LINE} + 1` < $${f} >> $${f}.new; \
! 188: mv $${f}.new $${f}; \
! 189: fi; \
! 190: done
! 191: ( cd ${OBJDIR} && tar cf - libpdel-${VERSION} ) \
! 192: | gzip --best > ${.CURDIR}/libpdel-${VERSION}.tar.gz
! 193:
! 194: CLEANFILES+= ${.CURDIR}/libpdel-${VERSION}.tar.gz
! 195: CLEANDIRS+= ${OBJDIR}/libpdel-${VERSION}
! 196:
! 197: .if make(${.CURDIR}/GNUmakefile)
! 198: #
! 199: # Create a GNUmakefile for Linux
! 200: #
! 201: L_OMIT= (bpf|fs_mount|if_arp|if_iface|if_ip|if_util|route_msg|uroute|ppp_|pdel_ppp)
! 202:
! 203: L_SRCS!= echo ${SRCS} | fmt -w 1 | grep -vE '${L_OMIT}'
! 204: L_MAN!= echo ${MAN} | fmt -w 1 | grep -vE '${L_OMIT}'
! 205: L_HDRS!= echo ${HDRS} | fmt -w 1 | grep -vE '${L_OMIT}'
! 206: L_INCS!= echo ${INCHDRS} | fmt -w 1 | grep -vE '${L_OMIT}'
! 207: L_MLINKS!= set `echo ${MLINKS}`; \
! 208: while : ; do \
! 209: case $$\# in \
! 210: 0) break;; \
! 211: 1) echo "warn: empty MLINK: $$1"; break;; \
! 212: esac; \
! 213: if ! echo $$1 $$2 | grep -qE "${L_OMIT}"; then \
! 214: echo $$1 $$2; \
! 215: fi; \
! 216: shift; shift; \
! 217: done
! 218: L_CFLAGS= ${CFLAGS:S/${PDELTOP}/\$(srcdir)/g}
! 219: L_SRCDIRS= ${SRCDIRS:S/${PDELTOP}/\$(srcdir)/g:S/-DTYPED_MEM_UNDEFINE_ORIGINALS//g}
! 220:
! 221: ${.CURDIR}/GNUmakefile: ${.CURDIR}/Makefile ${.CURDIR}/GNUmakefile.in
! 222: @echo creating ${.TARGET}
! 223: @sed -e 's,\$$\I\d: .*$$,Note: generated file,g' \
! 224: -e 's,@SRCS@,${L_SRCS},g' \
! 225: -e 's,@SRCDIRS@,${L_SRCDIRS},g' \
! 226: -e 's,@INCS@,${L_INCS},g' \
! 227: -e 's,@MAN@,${L_MAN},g' \
! 228: -e 's,@MLINKS@,${L_MLINKS},g' \
! 229: -e 's,@SUBDIRS@,${L_SUBDIRS},g' \
! 230: -e 's,@CFLAGS@,${L_CFLAGS},g' \
! 231: -e 's,@VERSION_MAJOR@,${VERSION_MAJOR},g' \
! 232: -e 's,@VERSION_MINOR@,${VERSION_MINOR},g' \
! 233: -e 's,@VERSION_PATCH@,${VERSION_PATCH},g' \
! 234: < ${.CURDIR}/GNUmakefile.in > ${.TARGET}
! 235: .endif
! 236:
! 237: #
! 238: # Print out version
! 239: #
! 240: version:
! 241: @echo ${VERSION}
! 242:
! 243: .include "${PDELTOP}/Makefile.inc"
! 244: .include <bsd.lib.mk>
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>