xref: /f-stack/tools/libxo/Makefile.am (revision d4a07e70)
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