]> icculus.org git repositories - mikachu/openbox.git/blob - build/Makefile.kernel
install with libtool
[mikachu/openbox.git] / build / Makefile.kernel
1 include build/Makefile.incl
2
3 dir = kernel
4
5 CPPFLAGS += $(GLIB_CFLAGS) $(GMODULE_CFLAGS) $(XFT_CFLAGS) $(X_CFLAGS) \
6             -DG_LOG_DOMAIN=\"Openbox\"
7 LIBS += $(GLIB_LIBS) $(GMODULE_LIBS) $(XFT_LIBS) $(X_LIBS) $(XINERAMA_LIBS) \
8         -lobrender
9 LDFLAGS += -Lrender -export-dynamic
10
11 target = openbox3
12 sources = action.c client.c config.c dispatch.c engine.c event.c group.c \
13           extensions.c focus.c frame.c grab.c menu.c openbox.c \
14           parse.c plugin.c prop.c screen.c stacking.c timer.c xerror.c \
15           parse.lex.c parse.tab.c
16
17 srcdir := $(srcdir)/$(dir)
18 target := $(addprefix $(dir)/,$(target))
19 objects := $(addprefix $(dir)/,$(sources:.c=.o))
20 sources := $(addprefix $(srcdir)/,$(sources))
21 deps := $(addprefix $(depdir)/,$(objects:.o=.d))
22 depdir := $(depdir)/$(dir)
23
24 all: $(target)
25
26 $(target): $(objects) render/libobrender.la
27         $(LINK) -o $@ $^ $(LIBS) $(LDFLAGS)
28
29 # kill the implicit .c.y rule
30 $(srcdir)/%.c: $(srcdir)/%.y
31         @
32
33 $(dir)/%.o: $(srcdir)/%.c $(depdir)/%.d
34         $(COMPILE) -c -o $@ $<
35
36 %.lex.c: %.l
37         $(FLEX) -o$@ $<
38
39 %.tab.c: %.y
40         $(BISON) -d -o $@ $<
41
42 $(depdir)/%.d: $(srcdir)/%.c
43         @echo Building dependancies for $<
44         $(INSTALL) -d $(depdir)
45         @$(CC) $(CPPFLAGS) $(CFLAGS) -w -MM -MF $@ -MQ $(<:.c=.o) $<
46
47 install:
48         $(INSTALL) -d $(DESTDIR)$(bindir)/
49         $(LIBTOOL) --mode=install $(INSTALL) $(target) \
50                 $(DESTDIR)$(bindir)/$(notdir $(target))
51
52 uninstall:
53         -$(RM) $(DESTDIR)$(bindir)/$(notdir $(target))
54         -rmdir $(DESTDIR)$(bindir)/
55
56 clean:
57         $(LTCLEAN) $(target)
58         $(RM) $(objects) $(srcdir)/*\~
59         $(RM) $(filter %.lex.c, $(sources))
60         $(RM) $(filter %.tab.c, $(sources))
61         $(RM) $(patsubst %.c,%.h, $(filter %.tab.c, $(sources)))
62
63 distclean:
64
65 -include $(deps)
66
67 .PHONY: all install uninstall clean distclean