README update to modify config.mk when installing submodules
[wmiirc-lua.git] / src / Makefile
blob0ba459babb37c9da5145735be1f68644b60bdf3c
1 TOP = ..
2 CONFIG_MK = ${TOP}/config.mk
4 include ${CONFIG_MK}
5 include ${TOP}/Makefile.rules
7 MAN = wmii.3lua
9 # ------------------------------------------------------------------------
10 # main target
12 .PHONY: all help generate libs luaixp luaeventloop docs man clean distclean install install-user
13 all: generate libs man
15 help:
16 @echo "make [target]"
17 @echo
18 @echo " general targets"
19 @echo " all - build everything"
20 @echo " libs - build libraries"
21 @echo " docs - build documentation"
22 @echo " clean - clean up build"
23 @echo " distclean - clean even more"
24 @echo " install - install in system dir"
25 @echo " install-user - install in user home dir"
26 @echo
27 @echo " development targets"
28 @echo " tags - build ctags index"
29 @echo " cscope - build cscope index"
31 # ------------------------------------------------------------------------
32 # generating files from templates
34 GEN_SRC = core/wmii.lua.in install-wmiirc-lua.in wmii-lua.in wmiirc.lua.in
35 GEN_DST = ${GEN_SRC:%.in=%}
37 generate: ${GEN_DST}
38 ${GEN_DST}: ${CONFIG_MK}
39 ${GEN_DST}: %: %.in
40 ifeq (${LOADED_CONFIG_MK},)
41 ${MAKE} ${CONFIG_MK}
42 ${MAKE} $@
43 else
44 @echo Generating $@
45 ${Q} sed -e 's:%DESTDIR%:${DESTDIR}:' \
46 -e 's:%PREFIX%:${PREFIX}:' \
47 -e 's:%RC_DIR%:${RC_DIR}:' \
48 -e 's:%LUA_BIN%:${LUA_BIN}:' \
49 -e 's:%HOME_WMII%:${HOME_WMII}:' \
50 $< > $@
51 endif
53 # ------------------------------------------------------------------------
54 # building
56 libs: luaeventloop luaixp
57 luaeventloop luaixp:
58 ${Q} ${MAKE} -C $@
60 docs: man
61 man: ${MAN}
62 ${MAN}: core/wmii.lua
63 ${Q} ${POD2MAN} \
64 --name=wmii \
65 --center="WMII Lua Integration" \
66 --section=3lua \
67 --release="wmii 3.6" \
68 $< $@
70 # ------------------------------------------------------------------------
71 # cleaning
73 clean:
74 -${Q} rm -f *~ */*~
75 -${Q} rm -f wmii.3lua
76 -${Q} rm -f cscope.files cscope.out tags
77 -${Q} ${MAKE} -C luaixp clean
78 -${Q} ${MAKE} -C luaeventloop clean
80 distclean: clean
81 -${Q} rm -f ${GEN_DST}
83 # ------------------------------------------------------------------------
84 # installing
87 # install system wide
89 install: ${MAN} ${GEN_DST} install-variable-check
90 # create directories
91 ${Q} ${INSTALL} -d ${ALL_INSTALL_DIRS}
93 # install libraries
94 ${Q} ${MAKE} -C luaixp install
95 ${Q} ${MAKE} -C luaeventloop install
97 # install core and plugin lua scripts
98 ${Q} ${INSTALL} -m 0644 -t ${CORE_LUA_DIR} core/*.lua
99 ${Q} ${INSTALL} -m 0644 -t ${PLUGIN_LUA_DIR} plugins/*.lua
101 # install new config file
102 ${Q} ${INSTALL} -m 0755 -t ${RC_DIR} wmiirc.lua
103 ${Q} ${INSTALL} -m 0644 -t ${XS_DIR} wmii-lua.desktop
105 # install man page
106 ${Q} ${INSTALL} -m 0644 -t ${MAN_DIR} ${MAN}
108 # install scripts
109 ${Q} ${INSTALL} -m 0755 -t ${BIN_DIR} install-wmiirc-lua
110 ${Q} ${INSTALL} -m 0755 -t ${BIN_DIR} wmii-lua
113 # install in user directory
115 install-user: ${MAN} ${GEN_DST} install-user-variable-check
116 ifeq ($(shell pwd),$(wildcard ${HOME_WMII}))
117 @echo "You're already in the ${HOME_WMII} directory"
118 else
119 ${Q} ${INSTALL} -d ${ALL_HOME_DIRS}
120 ${Q} if test -f ${HOME_WMII}/wmiirc ; then \
121 echo "NOTE: you might want to look at ${HOME_WMII}/wmiirc.dist" ; \
122 ${INSTALL} -T -m 0744 -b wmiirc.lua ${HOME_WMII}/wmiirc.dist ; \
123 else \
124 echo "Installing new ${HOME_WMII}/wmiirc" ; \
125 ${INSTALL} -T -m 0744 -b wmiirc.lua ${HOME_WMII}/wmiirc ; \
127 ${Q} ${INSTALL} -m 0644 -b -t ${HOME_CORE} core/*.lua
128 ${Q} ${INSTALL} -m 0644 -b -t ${HOME_PLUGINS} plugins/*.lua
129 ${Q} ${INSTALL} -m 0644 -b -t ${HOME_WMII} ${MAN}
130 ${Q} ${INSTALL} -m 0744 -t ${HOME_BIN_DIR} wmii-lua
131 ${Q} ${MAKE} -C luaixp install-user
132 ${Q} ${MAKE} -C luaeventloop install-user
134 install-user: ${MAN}
135 endif
138 # ------------------------------------------------------------------------
139 # helpers from ${TOP} dir
141 .PHONY: install-variable-check install-user-variable-check tags cscope
143 ${CONFIG_MK}:
144 ${Q} ${MAKE} -C $(dir ${CONFIG_MK}) $(notdir ${CONFIG_MK})
146 install-variable-check install-user-variable-check tags cscope:
147 ${Q} ${MAKE} -C ${TOP} $@