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