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