1top_builddir = ..
2top_srcdir = @top_srcdir@
3prefix = @prefix@
4sysconfdir = @sysconfdir@
5exec_prefix = @exec_prefix@
6datadir = @datadir@
7bindir = @bindir@
8libdir = @libdir@
9libexecdir = @libexecdir@
10
11CC = @CC@
12LIBTOOL = @LIBTOOL@
13INSTALL = @INSTALL@
14
15BINDIR = $(DESTDIR)$(bindir)
16
17VPATH = $(top_srcdir)/uitoolkit/@GUI@:$(top_srcdir)/uitoolkit
18
19OBJ1 = ui_screen_manager.o ui_display.o ui_window.o ui_screen.o \
20	ui_xic.o ui_color_manager.o ui_font_manager.o ui_picture.o ui_font.o \
21	ui_color.o ui_selection.o ui_font_config.o ui_main_config.o \
22	ui_shortcut.o ui_bel_mode.o ui_sb_mode.o ui_mod_meta_mode.o ui_font_cache.o \
23	ui_draw_str.o ui_gc.o ui_color_cache.o ui_dnd.o ui_scrollbar.o ui_layout.o \
24	ui_sb_view_factory.o ui_simple_sb_view.o ui_imagelib.o ui_connect_dialog.o \
25	ui_type_engine.o ui_im.o ui_im_candidate_screen.o ui_brltty.o \
26	ui_selection_encoding.o ui_emoji.o ui_copymode.o test.o
27
28OBJ2_xlib = ui_event_source.o ui_decsp_font.o ui_xim.o ui_im_status_screen.o @TYPE_LOADER_OBJ@
29
30OBJ2_win32 = ui_event_source.o ui_gdiobj_pool.o ui.o ui_im_status_screen.o
31
32OBJ2_fb = ui.o ui_event_source.o ui_decsp_font.o ui_virtual_kbd.o ui_im_status_screen.o
33
34OBJ2_beos = ui.o ui_event_source.o beos.o ui_im_status_screen.o
35
36OBJ2_quartz = ui.o @COCOAOBJ@ ui_event_source-cocoa.o ui_im_status_screen-cocoa.o
37
38OBJ2_console = ui.o ui_event_source.o ui_im_status_screen.o
39
40OBJ2_wayland = ui.o ui_event_source.o ui_decsp_font.o ui_im_status_screen.o \
41						 xdg-shell-unstable-v6-client-protocol.o \
42						 xdg-shell-client-protocol.o gtk-primary-selection.o
43
44OBJ2_sdl2 = ui.o ui_event_source.o ui_decsp_font.o ui_im_status_screen.o syswminfo.o
45
46RSOBJ_win32 = winrs.o
47
48RSOBJ_sdl2_win32 = winrs.o
49RSOBJ_sdl2 = $(RSOBJ_@GUI@_@SDL2GUI@)
50
51OBJ = $(OBJ1) $(OBJ2_@GUI@)
52
53XDISPLAY_DEPENDS_fb = ui_display_freebsd.c ui_display_linux.c ui_display_wscons.c ui_display_x68kgrf.c
54
55LIBNAME = libuitoolkit
56
57# XDATADIR is to avoid conflicting with DATADIR structure in w32api/objidl.h.
58CFLAGS = $(CFLAGS_LOCAL) @POBL_CFLAGS@ @MEF_CFLAGS@ @DEB_CFLAGS@ @MATH_CFLAGS@ \
59	@IMAGELIB_CFLAGS@ @X_CFLAGS@ @GUI_CFLAGS@ @SSH2_CFLAGS@ @XUTF8_CFLAGS@ @DND_CFLAGS@ \
60	@IM_CFLAGS@ @SB_CFLAGS@ @REGEX_CFLAGS@ @CTL_CFLAGS@ @TYPE_CFLAGS@ @FT_CFLAGS@ \
61	@IMAGE_CFLAGS@ @TOOLS_CFLAGS@ @OT_LAYOUT_CFLAGS@ @SIXEL_CFLAGS@ @BRLAPI_CFLAGS@ \
62	@SDL2_CFLAGS@ @CFLAGS@ @CPPFLAGS@ \
63	-DBINDIR=\"$(bindir)\" -DLIBDIR=\"$(libdir)\" -DLIBEXECDIR=\"$(libexecdir)\" \
64	-DXDATADIR=\"$(datadir)\" \
65	-I$(top_srcdir)/vtemu -I$(top_srcdir)/uitoolkit/libotl -I/usr/local/include
66
67LIBTOOL_CC = $(LIBTOOL) --mode=compile $(CC) $(CFLAGS)
68LIBTOOL_LINK = $(LIBTOOL) --mode=link $(CC) @LDFLAGS@
69LIBTOOL_INSTALL = $(LIBTOOL) --mode=install $(INSTALL)
70
71all: $(LIBNAME).a
72
73debug: $(LIBNAME).a
74
75# If winrs.o is archived to libuitoolkit.a, connect dialog is not shown correctly.
76$(LIBNAME).a: $(OBJ) $(RSOBJ_@GUI@)
77	$(LIBTOOL_LINK) -o $(LIBNAME).a $(OBJ:.o=.lo)
78
79.SUFFIXES: .c.o .m.o .cpp.o
80
81.c.o:
82	$(LIBTOOL_CC) -c $<
83
84.m.o:
85	$(LIBTOOL_CC) -c $<
86
87.cpp.o:
88	$(LIBTOOL_CC) -c $<
89
90ui_display.o: ui_display.c $(XDISPLAY_DEPENDS_@GUI@)
91	$(LIBTOOL_CC) -c $<
92
93winrs.o: winrs.rs
94	cp $(top_srcdir)/contrib/icon/mlterm-icon-win32.ico .
95	# windres-2.11.90(included in MSYS-DTK 1.0.1) doesn't accept '-I[DIR]' option.
96	`echo $(CC)|sed -n 's/\([^-]*-[^-]*-[^-]*-\).*/\1/p'`windres `echo "@POBL_CFLAGS@ @MEF_CFLAGS@"|sed 's/-I/--include-dir /'` @GUI_CFLAGS@ @SSH2_CFLAGS@ $< winrs.o
97
98install:
99
100uninstall:
101
102wc:
103	find . -name "*.[ch]" -a \! -name "test_*" | xargs wc -l
104
105clean:
106	rm -rf *.a *.la $(OBJ) $(OBJ:.o=.lo) $(RSOBJ_win32) mlterm-icon-win32.ico .libs
107
108distclean: clean
109	rm -f Makefile
110