File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / libpdel / Makefile
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 23:25:53 2012 UTC (12 years, 3 months ago) by misho
Branches: libpdel, MAIN
CVS tags: v0_5_3, HEAD
libpdel

    1: # $Id: Makefile,v 1.1.1.1 2012/02/21 23:25:53 misho 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>
  245: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>