1*d4a07e70Sfengbojiang# 2*d4a07e70Sfengbojiang# $Id$ 3*d4a07e70Sfengbojiang# 4*d4a07e70Sfengbojiang# Copyright 2014, Juniper Networks, Inc. 5*d4a07e70Sfengbojiang# All rights reserved. 6*d4a07e70Sfengbojiang# This SOFTWARE is licensed under the LICENSE provided in the 7*d4a07e70Sfengbojiang# ../Copyright file. By downloading, installing, copying, or otherwise 8*d4a07e70Sfengbojiang# using the SOFTWARE, you agree to be bound by the terms of that 9*d4a07e70Sfengbojiang# LICENSE. 10*d4a07e70Sfengbojiang 11*d4a07e70SfengbojiangACLOCAL_AMFLAGS = -I m4 12*d4a07e70Sfengbojiang 13*d4a07e70SfengbojiangSUBDIRS = libxo xo xopo xolint xohtml tests doc encoder 14*d4a07e70Sfengbojiangbin_SCRIPTS=libxo-config 15*d4a07e70Sfengbojiangdist_doc_DATA = Copyright 16*d4a07e70Sfengbojiang 17*d4a07e70SfengbojiangEXTRA_DIST = \ 18*d4a07e70Sfengbojiang libxo-config.in \ 19*d4a07e70Sfengbojiang warnings.mk \ 20*d4a07e70Sfengbojiang README.md \ 21*d4a07e70Sfengbojiang INSTALL.md \ 22*d4a07e70Sfengbojiang packaging/libxo.spec 23*d4a07e70Sfengbojiang 24*d4a07e70Sfengbojiang.PHONY: test tests 25*d4a07e70Sfengbojiang 26*d4a07e70Sfengbojiangtest tests: 27*d4a07e70Sfengbojiang @(cd tests ; ${MAKE} test) 28*d4a07e70Sfengbojiang 29*d4a07e70Sfengbojiangerrors: 30*d4a07e70Sfengbojiang @(cd tests/errors ; ${MAKE} test) 31*d4a07e70Sfengbojiang 32*d4a07e70Sfengbojiangdocs: 33*d4a07e70Sfengbojiang @(cd doc ; ${MAKE} docs) 34*d4a07e70Sfengbojiang 35*d4a07e70SfengbojiangDIST_FILES_DIR = ~/Dropbox/dist-files/ 36*d4a07e70SfengbojiangGH_PAGES_DIR = gh-pages/ 37*d4a07e70SfengbojiangGH_PAGES_DIR_VER = gh-pages/${PACKAGE_VERSION} 38*d4a07e70SfengbojiangPACKAGE_FILE = ${PACKAGE_TARNAME}-${PACKAGE_VERSION}.tar.gz 39*d4a07e70Sfengbojiang 40*d4a07e70SfengbojiangXOHTML_FILES = \ 41*d4a07e70Sfengbojiang ${top_srcdir}/xohtml/xohtml.css \ 42*d4a07e70Sfengbojiang ${top_srcdir}/xohtml/xohtml.js \ 43*d4a07e70Sfengbojiang ${top_srcdir}/xohtml/external/jquery.js \ 44*d4a07e70Sfengbojiang ${top_srcdir}/xohtml/external/jquery.qtip.css \ 45*d4a07e70Sfengbojiang ${top_srcdir}/xohtml/external/jquery.qtip.js 46*d4a07e70Sfengbojiang 47*d4a07e70Sfengbojiangupload: dist upload-docs upload-xohtml-files 48*d4a07e70Sfengbojiang @echo "Remember to run:" 49*d4a07e70Sfengbojiang @echo " gt tag ${PACKAGE_VERSION}" 50*d4a07e70Sfengbojiang 51*d4a07e70Sfengbojiangupload-docs: docs upload-html 52*d4a07e70Sfengbojiang 53*d4a07e70Sfengbojiangupload-html: 54*d4a07e70Sfengbojiang @echo "Uploading html ... " 55*d4a07e70Sfengbojiang @-[ -d ${GH_PAGES_DIR} -a -d doc/html ] \ 56*d4a07e70Sfengbojiang && echo "Updating html on gh-pages ..." \ 57*d4a07e70Sfengbojiang && mkdir -p ${GH_PAGES_DIR_VER}/html \ 58*d4a07e70Sfengbojiang && cp doc/top-link.html ${GH_PAGES_DIR}/libxo.html \ 59*d4a07e70Sfengbojiang && cp -r doc/html/* ${GH_PAGES_DIR_VER}/html/ \ 60*d4a07e70Sfengbojiang && (cd ${GH_PAGES_DIR} \ 61*d4a07e70Sfengbojiang && git add libxo.html \ 62*d4a07e70Sfengbojiang && git add ${PACKAGE_VERSION}/html \ 63*d4a07e70Sfengbojiang && git commit -m 'new docs' \ 64*d4a07e70Sfengbojiang libxo.html ${PACKAGE_VERSION}/html \ 65*d4a07e70Sfengbojiang && git push origin gh-pages ) ; true 66*d4a07e70Sfengbojiang 67*d4a07e70Sfengbojiangupload-xohtml-files: 68*d4a07e70Sfengbojiang @echo "Uploading xohtml files ... " 69*d4a07e70Sfengbojiang @-[ -d ${GH_PAGES_DIR} ] \ 70*d4a07e70Sfengbojiang && echo "Updating xohtml files on gh-pages ..." \ 71*d4a07e70Sfengbojiang && mkdir -p ${GH_PAGES_DIR_VER}/xohtml \ 72*d4a07e70Sfengbojiang && cp ${XOHTML_FILES} ${GH_PAGES_DIR_VER}/xohtml \ 73*d4a07e70Sfengbojiang && (cd ${GH_PAGES_DIR} \ 74*d4a07e70Sfengbojiang && git add ${PACKAGE_VERSION}/xohtml \ 75*d4a07e70Sfengbojiang && git commit -m 'new xohtml files' \ 76*d4a07e70Sfengbojiang ${PACKAGE_VERSION}/xohtml \ 77*d4a07e70Sfengbojiang && git push origin gh-pages ) ; true 78*d4a07e70Sfengbojiang 79*d4a07e70Sfengbojiangpkgconfigdir=$(libdir)/pkgconfig 80*d4a07e70Sfengbojiangpkgconfig_DATA = packaging/${PACKAGE_NAME}.pc 81*d4a07e70Sfengbojiang 82*d4a07e70Sfengbojiangget-wiki: 83*d4a07e70Sfengbojiang git clone https://github.com/Juniper/${PACKAGE_NAME}.wiki.git wiki 84*d4a07e70Sfengbojiang 85*d4a07e70Sfengbojiangget-gh-pages: 86*d4a07e70Sfengbojiang git clone https://github.com/Juniper/${PACKAGE_NAME}.git \ 87*d4a07e70Sfengbojiang gh-pages -b gh-pages 88*d4a07e70Sfengbojiang 89*d4a07e70SfengbojiangUPDATE_PACKAGE_FILE = \ 90*d4a07e70Sfengbojiang -e "s;__SHA1__;$$SHA1;" \ 91*d4a07e70Sfengbojiang -e "s;__SHA256__;SHA256 (textproc/${PACKAGE_FILE}) = $$SHA256;" \ 92*d4a07e70Sfengbojiang -e "s;__SIZE__;SIZE (textproc/${PACKAGE_FILE}) = $$SIZE;" 93*d4a07e70Sfengbojiang 94*d4a07e70SfengbojiangGH_PACKAGING_DIR = ${PACKAGE_VERSION}/packaging 95*d4a07e70SfengbojiangGH_PAGES_PACKAGE_DIR = ${GH_PAGES_DIR}/${GH_PACKAGING_DIR} 96*d4a07e70Sfengbojiang 97*d4a07e70Sfengbojiangpackages: 98*d4a07e70Sfengbojiang @-[ -d ${GH_PAGES_DIR} ] && set -x \ 99*d4a07e70Sfengbojiang && echo "Updating packages on gh-pages ..." \ 100*d4a07e70Sfengbojiang && mkdir -p ${GH_PAGES_DIR}/${GH_PACKAGING_DIR} \ 101*d4a07e70Sfengbojiang && SHA1="`openssl sha1 ${PACKAGE_FILE} | awk '{print $$2}'`" \ 102*d4a07e70Sfengbojiang && SHA256="`openssl sha256 ${PACKAGE_FILE} | awk '{print $$2}'`" \ 103*d4a07e70Sfengbojiang && SIZE="`ls -l ${PACKAGE_FILE} | awk '{print $$5}'`" \ 104*d4a07e70Sfengbojiang && echo "... ${GH_PAGES_PACKAGE_DIR}/${PACKAGE_NAME}.rb ..." \ 105*d4a07e70Sfengbojiang && sed ${UPDATE_PACKAGE_FILE} \ 106*d4a07e70Sfengbojiang packaging/${PACKAGE_NAME}.rb.base \ 107*d4a07e70Sfengbojiang > ${GH_PAGES_PACKAGE_DIR}/${PACKAGE_NAME}.rb \ 108*d4a07e70Sfengbojiang && echo "... ${GH_PAGES_PACKAGE_DIR}/${PACKAGE_NAME}.spec ..." \ 109*d4a07e70Sfengbojiang && cp packaging/${PACKAGE_NAME}.spec \ 110*d4a07e70Sfengbojiang ${GH_PAGES_PACKAGE_DIR}/${PACKAGE_NAME}.spec \ 111*d4a07e70Sfengbojiang && (cd ${GH_PAGES_DIR} \ 112*d4a07e70Sfengbojiang && git add ${GH_PACKAGING_DIR} \ 113*d4a07e70Sfengbojiang && git add ${GH_PACKAGING_DIR}/libxo.rb \ 114*d4a07e70Sfengbojiang ${GH_PACKAGING_DIR}/libxo.spec \ 115*d4a07e70Sfengbojiang && git commit -m 'new packaging data' \ 116*d4a07e70Sfengbojiang ${GH_PACKAGING_DIR} \ 117*d4a07e70Sfengbojiang && git push origin gh-pages ) ; true 118*d4a07e70Sfengbojiang 119*d4a07e70SfengbojiangANALYZE_DIR = ~/trash/libxo 120*d4a07e70SfengbojiangANALYZE_CMD = scan-build-mp-3.6 121*d4a07e70Sfengbojiang 122*d4a07e70Sfengbojianganalyze: 123*d4a07e70Sfengbojiang ${MAKE} clean 124*d4a07e70Sfengbojiang ${ANALYZE_CMD} -o ${ANALYZE_DIR} ${MAKE} 125*d4a07e70Sfengbojiang 126*d4a07e70SfengbojiangSANIFLAGS=-fno-omit-frame-pointer -g -O2 127*d4a07e70Sfengbojiang 128*d4a07e70Sfengbojiangsanitize-address: 129*d4a07e70Sfengbojiang ${MAKE} clean 130*d4a07e70Sfengbojiang ${MAKE} CFLAGS="-fsanitize=address ${SANIFLAGS}" 131*d4a07e70Sfengbojiang ${MAKE} install 132*d4a07e70Sfengbojiang ${MAKE} test 133*d4a07e70Sfengbojiang 134*d4a07e70Sfengbojiangsanitize-undefined: 135*d4a07e70Sfengbojiang ${MAKE} clean 136*d4a07e70Sfengbojiang ${MAKE} CFLAGS="-fsanitize=undefined ${SANIFLAGS}" 137*d4a07e70Sfengbojiang ${MAKE} install 138*d4a07e70Sfengbojiang ${MAKE} test 139*d4a07e70Sfengbojiang 140*d4a07e70Sfengbojiangsanitize-memory: 141*d4a07e70Sfengbojiang ${MAKE} clean 142*d4a07e70Sfengbojiang ${MAKE} CFLAGS="-fsanitize=memory ${SANIFLAGS}" 143*d4a07e70Sfengbojiang ${MAKE} install 144*d4a07e70Sfengbojiang ${MAKE} test 145