1 1.1 nia # This just shortcuts stuff through to cmake 2 1.1 nia all build ctwm man man-html man-all install clean: build/Makefile 3 1.1 nia ( cd build && ${MAKE} ${@} ) 4 1.1 nia 5 1.1.1.2 nia CMAKE?=cmake 6 1.1 nia build/Makefile cmake: CMakeLists.txt 7 1.1 nia ( mkdir -p build && cd build && \ 8 1.1.1.2 nia ${CMAKE} -DCMAKE_C_FLAGS:STRING="${CFLAGS}" ${CMAKE_EXTRAS} .. ) 9 1.1 nia 10 1.1 nia allclean distclean: 11 1.1 nia rm -rf build/* 12 1.1 nia 13 1.1 nia 14 1.1 nia 15 1.1 nia # 16 1.1 nia # The below targets are mostly only of interest to developers 17 1.1 nia # 18 1.1 nia 19 1.1 nia # Add'l thunks to cmake 20 1.1 nia .PHONY: tags 21 1.1 nia man-pdf doxygen doxyclean tags: build/Makefile 22 1.1 nia ( cd build && ${MAKE} ${@} ) 23 1.1 nia 24 1.1 nia # Make sure everything's build before running tests 25 1.1 nia .PHONY: test 26 1.1.1.2 nia test: build/Makefile 27 1.1 nia ( cd build && ${MAKE} test_bins ) 28 1.1 nia ( cd build && ${MAKE} CTEST_OUTPUT_ON_FAILURE=1 ${@} ) 29 1.1 nia 30 1.1 nia # Reindent files 31 1.1 nia indent: 32 1.1.1.2 nia astyle -n --options=tools/ctwm.astyle *.[ch] tests/*/*.[ch] 33 1.1 nia 34 1.1 nia 35 1.1 nia # Build documentation files 36 1.1 nia DOC_FILES=README.html CHANGES.html 37 1.1 nia docs: ${DOC_FILES} 38 1.1 nia docs_clean doc_clean: 39 1.1 nia rm -f ${DOC_FILES} 40 1.1 nia 41 1.1 nia .SUFFIXES: ${.SUFFIXES} .html .md 42 1.1 nia .md.html: 43 1.1 nia multimarkdown -afo ${@} ${<} 44 1.1 nia 45 1.1 nia 46 1.1 nia # asciidoc files 47 1.1 nia UMAN=doc/manual 48 1.1 nia adocs: 49 1.1 nia (cd ${UMAN} && make all_set_version) 50 1.1 nia adocs_pregen: 51 1.1 nia (cd ${UMAN} && make all) 52 1.1 nia adoc_clean: 53 1.1 nia (cd ${UMAN} && make clean) 54 1.1 nia 55 1.1 nia 56 1.1 nia # 57 1.1 nia # Pre-build some files for tarballs 58 1.1 nia # 59 1.1 nia GEN=gen 60 1.1 nia ${GEN}: 61 1.1 nia mkdir -p ${GEN} 62 1.1 nia 63 1.1 nia # All the generated source files 64 1.1 nia _RELEASE_FILES=gram.tab.c gram.tab.h lex.c version.c.in ctwm.1 ctwm.1.html 65 1.1 nia RELEASE_FILES=${_RELEASE_FILES:%=${GEN}/%} 66 1.1 nia 67 1.1 nia # Build those, the .html versions of the above docs, and the HTML/man 68 1.1 nia # versions of the manual 69 1.1 nia release_files: ${GEN} build/MKTAR_GENFILES ${RELEASE_FILES} ${DOC_FILES} 70 1.1 nia release_clean: doc_clean adoc_clean 71 1.1 nia rm -rf ${GEN} 72 1.1 nia 73 1.1 nia # Stuff for thunking to cmake 74 1.1 nia build/MKTAR_GENFILES: build/Makefile 75 1.1 nia (cd build ; make mktar_genfiles) 76 1.1 nia 77 1.1 nia # The config grammar 78 1.1 nia ${GEN}/gram.tab.c: ${GEN}/gram.tab.h 79 1.1 nia ${GEN}/gram.tab.h: ${GEN} gram.y build/MKTAR_GENFILES 80 1.1 nia cp build/gram.tab.[ch] ${GEN}/ 81 1.1 nia 82 1.1 nia ${GEN}/lex.c: ${GEN} lex.l build/MKTAR_GENFILES 83 1.1 nia cp build/lex.c ${GEN}/ 84 1.1 nia 85 1.1 nia # Setup version file 86 1.1 nia ${GEN}/version.c.in: ${GEN} version.c.in .bzr/checkout/dirstate 87 1.1.1.2 nia env BZR_CMD=brz tools/rewrite_version_bzr.sh < version.c.in \ 88 1.1.1.2 nia > ${GEN}/version.c.in 89 1.1 nia 90 1.1 nia # Generate pregen'd manuals 91 1.1 nia ${GEN}/ctwm.1: ${UMAN}/ctwm.1 92 1.1 nia ${GEN}/ctwm.1.html: ${UMAN}/ctwm.1.html 93 1.1 nia ${GEN}/ctwm.1 ${GEN}/ctwm.1.html: 94 1.1 nia cp ${UMAN}/ctwm.1 ${UMAN}/ctwm.1.html ${GEN}/ 95 1.1 nia ${UMAN}/ctwm.1 ${UMAN}/ctwm.1.html: 96 1.1 nia (cd ${UMAN} && make clean all) 97 1.1 nia 98 1.1 nia 99 1.1 nia # Thunk through to gen'ing tarball 100 1.1 nia tar: 101 1.1 nia tools/mk_tar.sh 102