Makefile.in
author Sam Lantinga <slouken@libsdl.org>
Wed, 03 Oct 2012 20:49:16 -0700
changeset 6555 f2c03c06d987
parent 6345 b4bbb23d1b4b
child 6607 a7e743825ede
permissions -rw-r--r--
Fixed bug 1614 - SDL for Android does not implement TextInput API

Andrey Isakov 2012-10-03 08:30:25 PDT

I've found out in the process of porting one OS project to Android/SDL2 that
there is no support for TextInput events/APIs on Android.
So I implemented some kind of initial support of that feature, and at the very
least it seems to work fine with latin chars input with soft and hardware
keyboards on my Moto Milestone2. I've also tried playing around with more
complex IMEs, like japanese, logging the process and it seemed to work too. I'm
not sure since the app itself I am working on does not have support for
non-latin input.

The main point of the patch is to place a fake input view in the region
specified by SDL_SetTextInputRect and create a custom InputConnection for it.
The reason to make it a separate view is to support Android's pan&scan on input
feature properly. For details please refer to
http://android-developers.blogspot.com/2009/04/updating-applications-for-on-screen.html
Even though the manual states that SetTextInputRect is used to determine the
IME variants position, I thought this would be a proper use for this too.
     1 # Makefile to build and install the SDL library
     2 
     3 top_builddir = .
     4 srcdir  = @srcdir@
     5 objects = build
     6 prefix = @prefix@
     7 exec_prefix = @exec_prefix@
     8 bindir	= @bindir@
     9 libdir  = @libdir@
    10 includedir = @includedir@
    11 datarootdir = @datarootdir@
    12 datadir	= @datadir@
    13 auxdir	= @ac_aux_dir@
    14 distpath = $(srcdir)/..
    15 distdir = SDL2-@SDL_VERSION@
    16 distfile = $(distdir).tar.gz
    17 
    18 @SET_MAKE@
    19 SHELL	= @SHELL@
    20 CC      = @CC@
    21 INCLUDE = @INCLUDE@
    22 CFLAGS  = @BUILD_CFLAGS@
    23 EXTRA_CFLAGS = @EXTRA_CFLAGS@
    24 LDFLAGS = @BUILD_LDFLAGS@
    25 EXTRA_LDFLAGS = @EXTRA_LDFLAGS@
    26 LIBTOOL = @LIBTOOL@
    27 INSTALL = @INSTALL@
    28 AR	= @AR@
    29 RANLIB	= @RANLIB@
    30 WINDRES	= @WINDRES@
    31 
    32 TARGET  = libSDL2.la
    33 OBJECTS = @OBJECTS@
    34 VERSION_OBJECTS = @VERSION_OBJECTS@
    35 
    36 SDLMAIN_TARGET = libSDL2main.a
    37 SDLMAIN_OBJECTS = @SDLMAIN_OBJECTS@
    38 
    39 SRC_DIST = acinclude Android.mk autogen.sh BUGS build-scripts configure configure.in COPYING CREDITS include INSTALL Makefile.minimal Makefile.in README* sdl2-config.in sdl2.m4 sdl2.pc.in SDL2.spec.in src test TODO VisualC.html VisualC VisualCE WhatsNew Xcode Xcode-iOS
    40 GEN_DIST = SDL2.spec
    41 
    42 HDRS = \
    43 	SDL.h \
    44 	SDL_assert.h \
    45 	SDL_atomic.h \
    46 	SDL_audio.h \
    47 	SDL_blendmode.h \
    48 	SDL_clipboard.h \
    49 	SDL_cpuinfo.h \
    50 	SDL_endian.h \
    51 	SDL_error.h \
    52 	SDL_events.h \
    53 	SDL_gesture.h \
    54 	SDL_haptic.h \
    55 	SDL_hints.h \
    56 	SDL_input.h \
    57 	SDL_joystick.h \
    58 	SDL_keyboard.h \
    59 	SDL_keycode.h \
    60 	SDL_loadso.h \
    61 	SDL_log.h \
    62 	SDL_main.h \
    63 	SDL_mouse.h \
    64 	SDL_mutex.h \
    65 	SDL_name.h \
    66 	SDL_opengl.h \
    67 	SDL_opengles.h \
    68 	SDL_opengles2.h \
    69 	SDL_pixels.h \
    70 	SDL_platform.h \
    71 	SDL_power.h \
    72 	SDL_quit.h \
    73 	SDL_rect.h \
    74 	SDL_render.h \
    75 	SDL_rwops.h \
    76 	SDL_scancode.h \
    77 	SDL_shape.h \
    78 	SDL_stdinc.h \
    79 	SDL_surface.h \
    80 	SDL_system.h \
    81 	SDL_syswm.h \
    82 	SDL_thread.h \
    83 	SDL_timer.h \
    84 	SDL_touch.h \
    85 	SDL_types.h \
    86 	SDL_version.h \
    87 	SDL_video.h \
    88 	begin_code.h \
    89 	close_code.h
    90 
    91 LT_AGE      = @LT_AGE@
    92 LT_CURRENT  = @LT_CURRENT@
    93 LT_RELEASE  = @LT_RELEASE@
    94 LT_REVISION = @LT_REVISION@
    95 LT_LDFLAGS  = -no-undefined -rpath $(DESTDIR)$(libdir) -release $(LT_RELEASE) -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE)
    96 
    97 all: $(srcdir)/configure Makefile $(objects) $(objects)/$(TARGET) $(objects)/$(SDLMAIN_TARGET)
    98 
    99 $(srcdir)/configure: $(srcdir)/configure.in
   100 	@echo "Warning, configure.in is out of date"
   101 	#(cd $(srcdir) && sh autogen.sh && sh configure)
   102 	@sleep 3
   103 
   104 Makefile: $(srcdir)/Makefile.in
   105 	$(SHELL) config.status $@
   106 
   107 Makefile.in:;
   108 
   109 $(objects):
   110 	$(SHELL) $(auxdir)/mkinstalldirs $@
   111 
   112 update-revision:
   113 	$(SHELL) $(auxdir)/updaterev.sh
   114 
   115 .PHONY: all update-revision install install-bin install-hdrs install-lib install-data uninstall uninstall-bin uninstall-hdrs uninstall-lib uninstall-data clean distclean dist $(OBJECTS:.lo=.d)
   116 
   117 $(objects)/$(TARGET): $(OBJECTS) $(VERSION_OBJECTS)
   118 	$(LIBTOOL) --mode=link $(CC) -o $@ $(OBJECTS) $(VERSION_OBJECTS) $(LDFLAGS) $(EXTRA_LDFLAGS) $(LT_LDFLAGS)
   119 
   120 $(objects)/$(SDLMAIN_TARGET): $(SDLMAIN_OBJECTS)
   121 	$(AR) cru $@ $(SDLMAIN_OBJECTS)
   122 	$(RANLIB) $@
   123 
   124 install: all install-bin install-hdrs install-lib install-data
   125 install-bin:
   126 	$(SHELL) $(auxdir)/mkinstalldirs $(DESTDIR)$(bindir)
   127 	$(INSTALL) -m 755 sdl2-config $(DESTDIR)$(bindir)/sdl2-config
   128 install-hdrs: update-revision
   129 	$(SHELL) $(auxdir)/mkinstalldirs $(DESTDIR)$(includedir)/SDL2
   130 	for file in $(HDRS); do \
   131 	    $(INSTALL) -m 644 $(srcdir)/include/$$file $(DESTDIR)$(includedir)/SDL2/$$file; \
   132 	done
   133 	$(INSTALL) -m 644 include/SDL_config.h $(DESTDIR)$(includedir)/SDL2/SDL_config.h
   134 	if test -f include/SDL_revision.h; then \
   135 	    $(INSTALL) -m 644 include/SDL_revision.h $(DESTDIR)$(includedir)/SDL2/SDL_revision.h; \
   136 	else \
   137 	    $(INSTALL) -m 644 $(srcdir)/include/SDL_revision.h $(DESTDIR)$(includedir)/SDL2/SDL_revision.h; \
   138 	fi
   139 
   140 install-lib: $(objects) $(objects)/$(TARGET) $(objects)/$(SDLMAIN_TARGET)
   141 	$(SHELL) $(auxdir)/mkinstalldirs $(DESTDIR)$(libdir)
   142 	$(LIBTOOL) --mode=install $(INSTALL) $(objects)/$(TARGET) $(DESTDIR)$(libdir)/$(TARGET)
   143 	$(INSTALL) -m 644 $(objects)/$(SDLMAIN_TARGET) $(DESTDIR)$(libdir)/$(SDLMAIN_TARGET)
   144 	$(RANLIB) $(DESTDIR)$(libdir)/$(SDLMAIN_TARGET)
   145 install-data:
   146 	$(SHELL) $(auxdir)/mkinstalldirs $(DESTDIR)$(datadir)/aclocal
   147 	$(INSTALL) -m 644 $(srcdir)/sdl2.m4 $(DESTDIR)$(datadir)/aclocal/sdl2.m4
   148 	$(SHELL) $(auxdir)/mkinstalldirs $(DESTDIR)$(libdir)/pkgconfig
   149 	$(INSTALL) -m 644 sdl2.pc $(DESTDIR)$(libdir)/pkgconfig
   150 
   151 uninstall: uninstall-bin uninstall-hdrs uninstall-lib uninstall-data
   152 uninstall-bin:
   153 	rm -f $(DESTDIR)$(bindir)/sdl2-config
   154 uninstall-hdrs:
   155 	for file in $(HDRS); do \
   156 	    rm -f $(DESTDIR)$(includedir)/SDL2/$$file; \
   157 	done
   158 	rm -f $(DESTDIR)$(includedir)/SDL2/SDL_config.h
   159 	rm -f $(DESTDIR)$(includedir)/SDL2/SDL_revision.h
   160 	-rmdir $(DESTDIR)$(includedir)/SDL2
   161 uninstall-lib:
   162 	$(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$(TARGET)
   163 	rm -f $(DESTDIR)$(libdir)/$(SDLMAIN_TARGET)
   164 uninstall-data:
   165 	rm -f $(DESTDIR)$(datadir)/aclocal/sdl2.m4
   166 	rm -f $(DESTDIR)$(libdir)/pkgconfig/sdl2.pc
   167 
   168 clean:
   169 	rm -rf $(objects)
   170 	if test -f test/Makefile; then (cd test; $(MAKE) $@); fi
   171 
   172 distclean: clean
   173 	rm -f Makefile Makefile.rules sdl2-config
   174 	rm -f config.status config.cache config.log libtool
   175 	rm -rf $(srcdir)/autom4te*
   176 	find $(srcdir) \( \
   177 	    -name '*~' -o \
   178 	    -name '*.bak' -o \
   179 	    -name '*.old' -o \
   180 	    -name '*.rej' -o \
   181 	    -name '*.orig' -o \
   182 	    -name '.#*' \) \
   183 	    -exec rm -f {} \;
   184 	if test -f test/Makefile; then (cd test; $(MAKE) $@); fi
   185 
   186 dist $(distfile):
   187 	$(SHELL) $(auxdir)/mkinstalldirs $(distdir)
   188 	(cd $(srcdir); tar cf - $(SRC_DIST)) | (cd $(distdir); tar xf -)
   189 	tar cf - $(GEN_DIST) | (cd $(distdir); tar xf -)
   190 	find $(distdir) \( \
   191 	    -name '*~' -o \
   192 	    -name '*.bak' -o \
   193 	    -name '*.old' -o \
   194 	    -name '*.rej' -o \
   195 	    -name '*.orig' -o \
   196 	    -name '.#*' \) \
   197 	    -exec rm -f {} \;
   198 	if test -f $(distdir)/test/Makefile; then (cd $(distdir)/test && make distclean); fi
   199 	tar cvf - $(distdir) | gzip --best >$(distfile)
   200 	rm -rf $(distdir)
   201 
   202 rpm: $(distfile)
   203 	rpmbuild -ta $?
   204 
   205 # Run indent on the source to standardize coding style
   206 indent:
   207 	@echo "Running indent... modified files:"
   208 	@cd $(srcdir) && \
   209 	find . \( \
   210 	    -name '*.h' -o \
   211 	    -name '*.c' -o \
   212 	    -name '*.cc' \) \
   213 	    -print | fgrep -v ./Xcode | \
   214 	while read file; do \
   215 	    indent "$$file" -o "$$file.indent"; \
   216 	    if cmp "$$file" "$$file.indent" >/dev/null; then \
   217 	        rm -f "$$file.indent"; \
   218 	    else \
   219 	        echo "$$file"; \
   220 	        mv -f "$$file.indent" "$$file"; \
   221 	    fi; \
   222 	done
   223 
   224 # Run indent and then commit modified files
   225 commit: indent
   226 	hg commit