Makefile (2230B)
1 TARGET = viking 2 3 # Objectfiles, needed for $(TARGET) 4 OBJ = main.o utilities.o commands.o jsmn.o viking_state.o window.o buffer.o download.o buffer_callback.o 5 # Manpages 6 MAN1 = evi2.1 7 MAN5 = evirc.5 8 # Used libraries to get needed CFLAGS and LDFLAGS form pkg-config 9 LIBS = elementary ewebkit2 10 # Files to removo by clean target 11 CLEAN = $(TARGET) $(OBJ) $(DEPS) javascript.h default.edj 12 # Files to install by install target or remove by uninstall target 13 MANINSTALL = $(addprefix $(MANDIR)/man1/,$(MAN1)) \ 14 $(addprefix $(MANDIR)/man5/,$(MAN5)) 15 INSTALL = $(BINDIR)/$(TARGET) $(MANINSTALL) 16 17 # DEBUG build? Off by default 18 V_DEBUG = 0 19 20 CFLAGS += `pkg-config --cflags $(LIBS)` 21 LDFLAGS += `pkg-config --libs $(LIBS)` 22 # LDFLAGS += `pkg-config --libs $(LIBS) | sed -e "s/-lewebkit //g" -` 23 24 # TA: This is a pretty stringent list of warnings to bail on! 25 ifeq ($(V_DEBUG),1) 26 CFLAGS += -g -ggdb -Wstrict-prototypes 27 CFLAGS += -Wno-long-long -Wall -Wmissing-declarations 28 endif 29 30 PREFIX ?= /usr/local 31 BINDIR ?= $(PREFIX)/bin 32 MANDIR ?= $(PREFIX)/share/man 33 # Mode bits for normal not executable files 34 FMOD ?= 0644 35 # Mode bits for directories 36 DMOD ?= 0755 37 # Mode bits for executables 38 EXECMOD ?= 0755 39 # Destination directory to install files 40 DESTDIR ?= / 41 42 # auto garerated dependancies for object files 43 DEPS = $(OBJ:%.o=%.d) 44 45 all: $(TARGET) 46 47 -include $(DEPS) 48 49 main.o: javascript.h default.edj 50 javascript.h: hinting.js 51 perl ./js-merge-helper.pl 52 53 default.edj: default.edc 54 edje_cc default.edc 55 56 $(TARGET): $(OBJ) 57 $(CC) $^ $(LDFLAGS) -o $@ 58 59 .PHONY: clean install uninstall 60 clean: 61 -rm -f $(CLEAN) 62 install: $(addprefix $(DESTDIR)/,$(INSTALL)) 63 uninstall: 64 rm -f $(addprefix $(DESTDIR)/,$(INSTALL)) 65 66 # pattern rule to inslall executabels 67 $(DESTDIR)/$(BINDIR)/%: ./% 68 -[ -e '$(@D)' ] || mkdir -p '$(@D)' && chmod $(DMOD) '$(@D)' 69 cp -f '$<' '$@' 70 -strip -s '$@' 71 chmod $(EXECMOD) '$@' 72 73 # pattern rules to install manpages 74 $(DESTDIR)/$(MANDIR)/man1/%: ./% 75 -[ -e '$(@D)' ] || mkdir -p '$(@D)' && chmod $(DMOD) '$(@D)' 76 cp -f '$<' '$@' 77 chmod $(FMOD) '$@' 78 79 $(DESTDIR)/$(MANDIR)/man5/%: ./% 80 -[ -e '$(@D)' ] || mkdir -p '$(@D)' && chmod $(DMOD) '$(@D)' 81 cp -f '$<' '$@' 82 chmod $(FMOD) '$@' 83 84 %.o: %.c 85 $(CC) -MMD -D_GNU_SOURCE -c $(CFLAGS) $< -o $@