Annotation of embedaddon/libpdel/Makefile, revision 1.1.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>