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 "LIBDIR = $(LIBDIR)" 36 @echo 37 @echo build targets: 38 @echo "SRCS = $(SRCS)" 39 @echo "HEADS = $(HEADS)" 40 @echo "OBJS = $(OBJS)" 41 @echo "EXT_SRCS = $(EXT_SRCS)" 42 @echo "EXT_OBJS = $(EXT_OBJS)" 43 44$(THEAD) $(TSRC): $(TLIST) 45 $(LUA_BIN_NAME) ./build-utils/gentokens.lua $(TLIST) $@ 46 47buildopts.h: buildopts.h.in 48 sed -e 's#LUAKIT_INSTALL_PATH .*#LUAKIT_INSTALL_PATH "$(PREFIX)/share/luakit"#' \ 49 -e 's#LUAKIT_CONFIG_PATH .*#LUAKIT_CONFIG_PATH "$(XDGPREFIX)"#' \ 50 -e 's#LUAKIT_DOC_PATH .*#LUAKIT_DOC_PATH "$(DOCDIR)"#' \ 51 -e 's#LUAKIT_MAN_PATH .*#LUAKIT_MAN_PATH "$(MANPREFIX)"#' \ 52 -e 's#LUAKIT_PIXMAP_PATH .*#LUAKIT_PIXMAP_PATH "$(PIXMAPDIR)"#' \ 53 -e 's#LUAKIT_APP_PATH .*#LUAKIT_APP_PATH "$(APPDIR)"#' \ 54 -e 's#LUAKIT_LIB_PATH .*#LUAKIT_LIB_PATH "$(LIBDIR)"#' \ 55 buildopts.h.in > buildopts.h 56 57$(filter-out $(EXT_OBJS),$(OBJS)) $(EXT_OBJS): $(HEADS) config.mk 58 59$(filter-out $(EXT_OBJS),$(OBJS)) : %.o : %.c 60 @echo $(CC) -c $< -o $@ 61 @$(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@ 62 63$(EXT_OBJS) : %.o : %.c 64 @echo $(CC) -c $< -o $@ 65 @$(CC) -c $(CFLAGS) -DLUAKIT_WEB_EXTENSION -fPIC $(CPPFLAGS) $< -o $@ 66 67widgets/webview.o: $(wildcard widgets/webview/*.c) 68 69luakit: $(OBJS) 70 @echo $(CC) -o $@ $(OBJS) 71 @$(CC) -o $@ $(OBJS) $(LDFLAGS) 72 73luakit.so: $(EXT_OBJS) 74 @echo $(CC) -o $@ $(EXT_OBJS) 75 @$(CC) -o $@ $(EXT_OBJS) -shared $(LDFLAGS) 76 77luakit.1: luakit.1.in 78 @sed "s|LUAKITVERSION|$(VERSION)|" $< > $@ 79 80luakit.1.gz: luakit.1 81 @gzip -c $< > $@ 82 83doc/apidocs/index.html: $(DOC_SRCS) $(wildcard build-utils/docgen/*) 84 rm -rf doc/apidocs 85 mkdir doc/apidocs 86 $(LUA_BIN_NAME) ./build-utils/docgen/makedoc.lua 87 88apidoc: doc/apidocs/index.html 89 90doc: buildopts.h $(THEAD) $(TSRC) 91 doxygen -s doc/luakit.doxygen 92 93clean: 94 rm -rf doc/apidocs doc/html luakit $(OBJS) $(EXT_OBJS) $(TSRC) $(THEAD) buildopts.h luakit.1 luakit.1.gz luakit.so 95 96install: all 97 install -d $(DESTDIR)$(PREFIX)/share/luakit/ 98 install -d $(DESTDIR)$(DOCDIR) $(DESTDIR)$(DOCDIR)/classes $(DESTDIR)$(DOCDIR)/modules $(DESTDIR)$(DOCDIR)/pages 99 install -m644 README.md AUTHORS COPYING.GPLv3 $(DESTDIR)$(DOCDIR) 100 install -m644 doc/apidocs/classes/* $(DESTDIR)$(DOCDIR)/classes 101 install -m644 doc/apidocs/modules/* $(DESTDIR)$(DOCDIR)/modules 102 install -m644 doc/apidocs/pages/* $(DESTDIR)$(DOCDIR)/pages 103 install -m644 doc/apidocs/*.html $(DESTDIR)$(DOCDIR) 104 install -d $(DESTDIR)$(PREFIX)/share/luakit/lib $(DESTDIR)$(PREFIX)/share/luakit/lib/lousy $(DESTDIR)$(PREFIX)/share/luakit/lib/lousy/widget 105 install -m644 lib/*.* $(DESTDIR)$(PREFIX)/share/luakit/lib 106 install -m644 lib/lousy/*.* $(DESTDIR)$(PREFIX)/share/luakit/lib/lousy 107 install -m644 lib/lousy/widget/*.* $(DESTDIR)$(PREFIX)/share/luakit/lib/lousy/widget 108 install -d $(DESTDIR)$(LIBDIR) 109 install -m644 luakit.so $(DESTDIR)$(LIBDIR)/luakit.so 110 install -d $(DESTDIR)$(PREFIX)/bin 111 install luakit $(DESTDIR)$(PREFIX)/bin/luakit 112 install -d $(DESTDIR)$(XDGPREFIX)/luakit/ 113 install -m644 config/*.lua $(DESTDIR)$(XDGPREFIX)/luakit/ 114 install -d $(DESTDIR)$(PIXMAPDIR) 115 install -m644 extras/luakit.png $(DESTDIR)$(PIXMAPDIR) 116 install -m644 extras/luakit.svg $(DESTDIR)$(PIXMAPDIR) 117 install -d $(DESTDIR)$(APPDIR) 118 install -m644 extras/luakit.desktop $(DESTDIR)$(APPDIR) 119 install -d $(DESTDIR)$(MANPREFIX)/man1/ 120 install -m644 luakit.1.gz $(DESTDIR)$(MANPREFIX)/man1/ 121 mkdir -p resources 122 find resources -type d -exec install -d $(DESTDIR)$(PREFIX)/share/luakit/'{}' \; 123 find resources -type f -exec sh -c 'f="{}"; install -m644 "$$f" "$(DESTDIR)$(PREFIX)/share/luakit/$$(dirname $$f)"' \; 124 125uninstall: 126 rm -rf $(DESTDIR)$(PREFIX)/bin/luakit $(DESTDIR)$(PREFIX)/share/luakit $(DESTDIR)$(PREFIX)/lib/luakit 127 rm -rf $(DESTDIR)$(MANPREFIX)/man1/luakit.1.gz $(DESTDIR)$(XDGPREFIX)/luakit 128 rm -rf $(DESTDIR)$(APPDIR)/luakit.desktop $(DESTDIR)$(PIXMAPDIR)/luakit.png 129 130tests/util.so: tests/util.c Makefile 131 $(CC) -fPIC $(CFLAGS) $(CPPFLAGS) -shared $< $(LDFLAGS) -o $@ 132 133run-tests: luakit luakit.so tests/util.so 134 @$(LUA_BIN_NAME) tests/run_test.lua 135 136newline: options;@echo 137.PHONY: all clean options install newline apidoc doc default 138