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