1# Include makefile config 2include config.mk 3 4# Token lib generation 5TLIST = common/tokenize.list 6THEAD = common/tokenize.h 7TSRC = common/tokenize.c 8 9SRCS = $(filter-out $(TSRC),$(wildcard *.c) $(wildcard common/*.c) $(wildcard common/clib/*.c) $(wildcard clib/*.c) $(wildcard clib/soup/*.c) $(wildcard widgets/*.c)) $(TSRC) 10HEADS = $(wildcard *.h) $(wildcard common/*.h) $(wildcard common/clib/*.h) $(wildcard widgets/*.h) $(wildcard clib/*.h) $(wildcard clib/soup/*.h) $(THEAD) buildopts.h 11OBJS = $(foreach obj,$(SRCS:.c=.o),$(obj)) 12 13EXT_SRCS = $(filter-out $(TSRC),$(wildcard extension/*.c) $(wildcard extension/clib/*.c) $(wildcard common/*.c)) $(wildcard common/clib/*.c) $(TSRC) 14EXT_OBJS = $(foreach obj,$(EXT_SRCS:.c=.o),$(obj)) 15 16# List of sources used to generate Lua API documentation 17# Must be kept in sync with doc/docgen.ld 18DOC_SRCS = $(filter-out lib/markdown.lua lib/lousy/init.lua,$(shell for d in doc/luadoc lib common/clib; do find $$d -type f; done)) tests/lib.lua 19 20all: options newline luakit luakit.1.gz luakit.so apidoc 21 22options: 23 @echo luakit build options: 24 @echo "CC = $(CC)" 25 @echo "LUA_PKG_NAME = $(LUA_PKG_NAME)" 26 @echo "LUA_BIN_NAME = $(LUA_BIN_NAME)" 27 @echo "CFLAGS = $(CFLAGS)" 28 @echo "CPPFLAGS = $(CPPFLAGS)" 29 @echo "LDFLAGS = $(LDFLAGS)" 30 @echo "MANPREFIX = $(MANPREFIX)" 31 @echo "DOCDIR = $(DOCDIR)" 32 @echo "XDGPREFIX = $(XDGPREFIX)" 33 @echo "PIXMAPDIR = $(PIXMAPDIR)" 34 @echo "APPDIR = $(APPDIR)" 35 @echo 36 @echo build targets: 37 @echo "SRCS = $(SRCS)" 38 @echo "HEADS = $(HEADS)" 39 @echo "OBJS = $(OBJS)" 40 @echo "EXT_SRCS = $(EXT_SRCS)" 41 @echo "EXT_OBJS = $(EXT_OBJS)" 42 43$(THEAD) $(TSRC): $(TLIST) 44 $(LUA_BIN_NAME) ./build-utils/gentokens.lua $(TLIST) $@ 45 46buildopts.h: buildopts.h.in 47 sed -e 's#LUAKIT_INSTALL_PATH .*#LUAKIT_INSTALL_PATH "$(PREFIX)/share/luakit"#' \ 48 -e 's#LUAKIT_CONFIG_PATH .*#LUAKIT_CONFIG_PATH "$(XDGPREFIX)"#' \ 49 -e 's#LUAKIT_DOC_PATH .*#LUAKIT_DOC_PATH "$(DOCDIR)"#' \ 50 -e 's#LUAKIT_MAN_PATH .*#LUAKIT_MAN_PATH "$(MANPREFIX)"#' \ 51 -e 's#LUAKIT_PIXMAP_PATH .*#LUAKIT_PIXMAP_PATH "$(PIXMAPDIR)"#' \ 52 -e 's#LUAKIT_APP_PATH .*#LUAKIT_APP_PATH "$(APPDIR)"#' \ 53 -e 's#LUAKIT_LIB_PATH .*#LUAKIT_LIB_PATH "$(LIBDIR)"#' \ 54 buildopts.h.in > buildopts.h 55 56$(filter-out $(EXT_OBJS),$(OBJS)) $(EXT_OBJS): $(HEADS) config.mk 57 58$(filter-out $(EXT_OBJS),$(OBJS)) : %.o : %.c 59 @echo $(CC) -c $< -o $@ 60 @$(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@ 61 62$(EXT_OBJS) : %.o : %.c 63 @echo $(CC) -c $< -o $@ 64 @$(CC) -c $(CFLAGS) -DLUAKIT_WEB_EXTENSION -fpic $(CPPFLAGS) $< -o $@ 65 66widgets/webview.o: $(wildcard widgets/webview/*.c) 67 68luakit: $(OBJS) 69 @echo $(CC) -o $@ $(OBJS) 70 @$(CC) -o $@ $(OBJS) $(LDFLAGS) 71 72luakit.so: $(EXT_OBJS) 73 @echo $(CC) -o $@ $(EXT_OBJS) 74 @$(CC) -o $@ $(EXT_OBJS) -shared $(LDFLAGS) 75 76luakit.1: luakit.1.in 77 @sed "s|LUAKITVERSION|$(VERSION)|" $< > $@ 78 79luakit.1.gz: luakit.1 80 @gzip -c $< > $@ 81 82doc/apidocs/index.html: $(DOC_SRCS) $(wildcard build-utils/docgen/*) 83 rm -rf doc/apidocs 84 mkdir doc/apidocs 85 $(LUA_BIN_NAME) ./build-utils/docgen/makedoc.lua 86 87apidoc: doc/apidocs/index.html 88 89doc: buildopts.h $(THEAD) $(TSRC) 90 doxygen -s doc/luakit.doxygen 91 92clean: 93 rm -rf doc/apidocs doc/html luakit $(OBJS) $(EXT_OBJS) $(TSRC) $(THEAD) buildopts.h luakit.1 luakit.1.gz luakit.so 94 95install: all 96 install -d $(DESTDIR)$(PREFIX)/share/luakit/ 97 install -d $(DESTDIR)$(DOCDIR) $(DESTDIR)$(DOCDIR)/classes $(DESTDIR)$(DOCDIR)/modules $(DESTDIR)$(DOCDIR)/pages 98 install -m644 README.md AUTHORS COPYING.GPLv3 $(DESTDIR)$(DOCDIR) 99 install -m644 doc/apidocs/classes/* $(DESTDIR)$(DOCDIR)/classes 100 install -m644 doc/apidocs/modules/* $(DESTDIR)$(DOCDIR)/modules 101 install -m644 doc/apidocs/pages/* $(DESTDIR)$(DOCDIR)/pages 102 install -m644 doc/apidocs/*.html $(DESTDIR)$(DOCDIR) 103 install -d $(DESTDIR)$(PREFIX)/share/luakit/lib $(DESTDIR)$(PREFIX)/share/luakit/lib/lousy $(DESTDIR)$(PREFIX)/share/luakit/lib/lousy/widget 104 install -m644 lib/*.* $(DESTDIR)$(PREFIX)/share/luakit/lib 105 install -m644 lib/lousy/*.* $(DESTDIR)$(PREFIX)/share/luakit/lib/lousy 106 install -m644 lib/lousy/widget/*.* $(DESTDIR)$(PREFIX)/share/luakit/lib/lousy/widget 107 install -d $(DESTDIR)$(PREFIX)/lib/luakit 108 install -m644 luakit.so $(DESTDIR)$(PREFIX)/lib/luakit/luakit.so 109 install -d $(DESTDIR)$(PREFIX)/bin 110 install luakit $(DESTDIR)$(PREFIX)/bin/luakit 111 install -d $(DESTDIR)$(XDGPREFIX)/luakit/ 112 install -m644 config/*.lua $(DESTDIR)$(XDGPREFIX)/luakit/ 113 install -d $(DESTDIR)$(PIXMAPDIR) 114 install -m644 extras/luakit.png $(DESTDIR)$(PIXMAPDIR) 115 install -d $(DESTDIR)$(APPDIR) 116 install -m644 extras/luakit.desktop $(DESTDIR)$(APPDIR) 117 install -d $(DESTDIR)$(MANPREFIX)/man1/ 118 install -m644 luakit.1.gz $(DESTDIR)$(MANPREFIX)/man1/ 119 mkdir -p resources 120 find resources -type d -exec install -d $(DESTDIR)$(PREFIX)/share/luakit/'{}' \; 121 find resources -type f -exec sh -c 'f="{}"; install -m644 "$$f" "$(DESTDIR)$(PREFIX)/share/luakit/$$(dirname $$f)"' \; 122 123uninstall: 124 rm -rf $(DESTDIR)$(PREFIX)/bin/luakit $(DESTDIR)$(PREFIX)/share/luakit $(DESTDIR)$(PREFIX)/lib/luakit 125 rm -rf $(DESTDIR)$(MANPREFIX)/man1/luakit.1.gz $(DESTDIR)$(XDGPREFIX)/luakit 126 rm -rf $(DESTDIR)$(APPDIR)/luakit.desktop $(DESTDIR)$(PIXMAPDIR)/luakit.png 127 128tests/util.so: tests/util.c Makefile 129 $(CC) -fpic $(CFLAGS) $(CPPFLAGS) -shared $< $(LDFLAGS) -o $@ 130 131run-tests: luakit luakit.so tests/util.so 132 @$(LUA_BIN_NAME) tests/run_test.lua 133 134newline: options;@echo 135.PHONY: all clean options install newline apidoc doc default 136