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