10bbfda8aSnia# This just shortcuts stuff through to cmake 20bbfda8aSniaall build ctwm man man-html man-all install clean: build/Makefile 30bbfda8aSnia ( cd build && ${MAKE} ${@} ) 40bbfda8aSnia 5b18c2d1eSniaCMAKE?=cmake 60bbfda8aSniabuild/Makefile cmake: CMakeLists.txt 70bbfda8aSnia ( mkdir -p build && cd build && \ 8b18c2d1eSnia ${CMAKE} -DCMAKE_C_FLAGS:STRING="${CFLAGS}" ${CMAKE_EXTRAS} .. ) 90bbfda8aSnia 100bbfda8aSniaallclean distclean: 110bbfda8aSnia rm -rf build/* 120bbfda8aSnia 130bbfda8aSnia 140bbfda8aSnia 150bbfda8aSnia# 160bbfda8aSnia# The below targets are mostly only of interest to developers 170bbfda8aSnia# 180bbfda8aSnia 190bbfda8aSnia# Add'l thunks to cmake 200bbfda8aSnia.PHONY: tags 210bbfda8aSniaman-pdf doxygen doxyclean tags: build/Makefile 220bbfda8aSnia ( cd build && ${MAKE} ${@} ) 230bbfda8aSnia 240bbfda8aSnia# Make sure everything's build before running tests 250bbfda8aSnia.PHONY: test 26b18c2d1eSniatest: build/Makefile 270bbfda8aSnia ( cd build && ${MAKE} test_bins ) 280bbfda8aSnia ( cd build && ${MAKE} CTEST_OUTPUT_ON_FAILURE=1 ${@} ) 290bbfda8aSnia 300bbfda8aSnia# Reindent files 310bbfda8aSniaindent: 32b18c2d1eSnia astyle -n --options=tools/ctwm.astyle *.[ch] tests/*/*.[ch] 330bbfda8aSnia 340bbfda8aSnia 350bbfda8aSnia# Build documentation files 360bbfda8aSniaDOC_FILES=README.html CHANGES.html 370bbfda8aSniadocs: ${DOC_FILES} 380bbfda8aSniadocs_clean doc_clean: 390bbfda8aSnia rm -f ${DOC_FILES} 400bbfda8aSnia 410bbfda8aSnia.SUFFIXES: ${.SUFFIXES} .html .md 420bbfda8aSnia.md.html: 430bbfda8aSnia multimarkdown -afo ${@} ${<} 440bbfda8aSnia 450bbfda8aSnia 460bbfda8aSnia# asciidoc files 470bbfda8aSniaUMAN=doc/manual 480bbfda8aSniaadocs: 490bbfda8aSnia (cd ${UMAN} && make all_set_version) 500bbfda8aSniaadocs_pregen: 510bbfda8aSnia (cd ${UMAN} && make all) 520bbfda8aSniaadoc_clean: 530bbfda8aSnia (cd ${UMAN} && make clean) 540bbfda8aSnia 550bbfda8aSnia 560bbfda8aSnia# 570bbfda8aSnia# Pre-build some files for tarballs 580bbfda8aSnia# 590bbfda8aSniaGEN=gen 600bbfda8aSnia${GEN}: 610bbfda8aSnia mkdir -p ${GEN} 620bbfda8aSnia 630bbfda8aSnia# All the generated source files 640bbfda8aSnia_RELEASE_FILES=gram.tab.c gram.tab.h lex.c version.c.in ctwm.1 ctwm.1.html 650bbfda8aSniaRELEASE_FILES=${_RELEASE_FILES:%=${GEN}/%} 660bbfda8aSnia 670bbfda8aSnia# Build those, the .html versions of the above docs, and the HTML/man 680bbfda8aSnia# versions of the manual 690bbfda8aSniarelease_files: ${GEN} build/MKTAR_GENFILES ${RELEASE_FILES} ${DOC_FILES} 700bbfda8aSniarelease_clean: doc_clean adoc_clean 710bbfda8aSnia rm -rf ${GEN} 720bbfda8aSnia 730bbfda8aSnia# Stuff for thunking to cmake 740bbfda8aSniabuild/MKTAR_GENFILES: build/Makefile 750bbfda8aSnia (cd build ; make mktar_genfiles) 760bbfda8aSnia 770bbfda8aSnia# The config grammar 780bbfda8aSnia${GEN}/gram.tab.c: ${GEN}/gram.tab.h 790bbfda8aSnia${GEN}/gram.tab.h: ${GEN} gram.y build/MKTAR_GENFILES 800bbfda8aSnia cp build/gram.tab.[ch] ${GEN}/ 810bbfda8aSnia 820bbfda8aSnia${GEN}/lex.c: ${GEN} lex.l build/MKTAR_GENFILES 830bbfda8aSnia cp build/lex.c ${GEN}/ 840bbfda8aSnia 850bbfda8aSnia# Setup version file 860bbfda8aSnia${GEN}/version.c.in: ${GEN} version.c.in .bzr/checkout/dirstate 87b18c2d1eSnia env BZR_CMD=brz tools/rewrite_version_bzr.sh < version.c.in \ 88b18c2d1eSnia > ${GEN}/version.c.in 890bbfda8aSnia 900bbfda8aSnia# Generate pregen'd manuals 910bbfda8aSnia${GEN}/ctwm.1: ${UMAN}/ctwm.1 920bbfda8aSnia${GEN}/ctwm.1.html: ${UMAN}/ctwm.1.html 930bbfda8aSnia${GEN}/ctwm.1 ${GEN}/ctwm.1.html: 940bbfda8aSnia cp ${UMAN}/ctwm.1 ${UMAN}/ctwm.1.html ${GEN}/ 950bbfda8aSnia${UMAN}/ctwm.1 ${UMAN}/ctwm.1.html: 960bbfda8aSnia (cd ${UMAN} && make clean all) 970bbfda8aSnia 980bbfda8aSnia 990bbfda8aSnia# Thunk through to gen'ing tarball 1000bbfda8aSniatar: 1010bbfda8aSnia tools/mk_tar.sh 102