Makefile.in
author Ryan C. Gordon <icculus@icculus.org>
Mon, 29 Oct 2018 20:00:03 -0400
changeset 12369 68c87b40b434
parent 12130 24142c5073a4
child 12469 99d8b18acf8a
permissions -rw-r--r--
winmain: Don't use SDL_malloc (or SDL_stack_alloc, which might be malloc).

Otherwise, we are using the allocator before the app can set up its own hooks.

Now we use VirtualAlloc, and WideCharToMultiByte (because SDL_iconv uses
SDL_malloc, too!) to get ready to call into SDL_main.

This also makes console_wmain() call into the same routines as everything
else, so we don't have to deal with those allocations, too. Hopefully we
end up with the same results from GetCommandLine() as we do in wargv.

Fixes Bugzilla #4340.
     1 # Makefile to build and install the SDL library
     2 
     3 top_builddir = .
     4 srcdir  = @srcdir@
     5 objects = build
     6 gen = gen
     7 prefix = @prefix@
     8 exec_prefix = @exec_prefix@
     9 bindir	= @bindir@
    10 libdir  = @libdir@
    11 includedir = @includedir@
    12 datarootdir = @datarootdir@
    13 datadir	= @datadir@
    14 auxdir	= @ac_aux_dir@
    15 distpath = $(srcdir)/..
    16 distdir = SDL2-@SDL_VERSION@
    17 distfile = $(distdir).tar.gz
    18 
    19 @SET_MAKE@
    20 SHELL	= @SHELL@
    21 CC      = @CC@
    22 INCLUDE = @INCLUDE@
    23 CFLAGS  = @BUILD_CFLAGS@
    24 EXTRA_CFLAGS = @EXTRA_CFLAGS@
    25 LDFLAGS = @BUILD_LDFLAGS@
    26 EXTRA_LDFLAGS = @EXTRA_LDFLAGS@
    27 LIBTOOL = @LIBTOOL@
    28 INSTALL = @INSTALL@
    29 AR	= @AR@
    30 RANLIB	= @RANLIB@
    31 WINDRES	= @WINDRES@
    32 
    33 TARGET  = libSDL2.la
    34 OBJECTS = @OBJECTS@
    35 GEN_HEADERS = @GEN_HEADERS@
    36 GEN_OBJECTS = @GEN_OBJECTS@
    37 VERSION_OBJECTS = @VERSION_OBJECTS@
    38 
    39 SDLMAIN_TARGET = libSDL2main.la
    40 SDLMAIN_OBJECTS = @SDLMAIN_OBJECTS@
    41 
    42 SDLTEST_TARGET = libSDL2_test.la
    43 SDLTEST_OBJECTS = @SDLTEST_OBJECTS@
    44 
    45 WAYLAND_SCANNER = @WAYLAND_SCANNER@
    46 
    47 SRC_DIST = *.txt acinclude Android.mk autogen.sh android-project build-scripts cmake cmake_uninstall.cmake.in configure configure.in debian docs include Makefile.* sdl2-config.cmake.in sdl2-config.in sdl2.m4 sdl2.pc.in SDL2.spec.in SDL2Config.cmake src test VisualC.html VisualC VisualC-WinRT Xcode Xcode-iOS wayland-protocols
    48 GEN_DIST = SDL2.spec
    49 
    50 ifneq ($V,1)
    51 RUN_CMD_AR     = @echo "  AR    " $@;
    52 RUN_CMD_CC     = @echo "  CC    " $@;
    53 RUN_CMD_CXX    = @echo "  CXX   " $@;
    54 RUN_CMD_LTLINK = @echo "  LTLINK" $@;
    55 RUN_CMD_RANLIB = @echo "  RANLIB" $@;
    56 RUN_CMD_GEN    = @echo "  GEN   " $@;
    57 LIBTOOL += --quiet
    58 endif
    59 
    60 HDRS = \
    61 	SDL.h \
    62 	SDL_assert.h \
    63 	SDL_atomic.h \
    64 	SDL_audio.h \
    65 	SDL_bits.h \
    66 	SDL_blendmode.h \
    67 	SDL_clipboard.h \
    68 	SDL_cpuinfo.h \
    69 	SDL_egl.h \
    70 	SDL_endian.h \
    71 	SDL_error.h \
    72 	SDL_events.h \
    73 	SDL_filesystem.h \
    74 	SDL_gamecontroller.h \
    75 	SDL_gesture.h \
    76 	SDL_haptic.h \
    77 	SDL_hints.h \
    78 	SDL_joystick.h \
    79 	SDL_keyboard.h \
    80 	SDL_keycode.h \
    81 	SDL_loadso.h \
    82 	SDL_log.h \
    83 	SDL_main.h \
    84 	SDL_messagebox.h \
    85 	SDL_mouse.h \
    86 	SDL_mutex.h \
    87 	SDL_name.h \
    88 	SDL_opengl.h \
    89 	SDL_opengl_glext.h \
    90 	SDL_opengles.h \
    91 	SDL_opengles2_gl2ext.h \
    92 	SDL_opengles2_gl2.h \
    93 	SDL_opengles2_gl2platform.h \
    94 	SDL_opengles2.h \
    95 	SDL_opengles2_khrplatform.h \
    96 	SDL_pixels.h \
    97 	SDL_platform.h \
    98 	SDL_power.h \
    99 	SDL_quit.h \
   100 	SDL_rect.h \
   101 	SDL_render.h \
   102 	SDL_rwops.h \
   103 	SDL_scancode.h \
   104 	SDL_sensor.h \
   105 	SDL_shape.h \
   106 	SDL_stdinc.h \
   107 	SDL_surface.h \
   108 	SDL_system.h \
   109 	SDL_syswm.h \
   110 	SDL_thread.h \
   111 	SDL_timer.h \
   112 	SDL_touch.h \
   113 	SDL_types.h \
   114 	SDL_version.h \
   115 	SDL_video.h \
   116 	SDL_vulkan.h \
   117 	begin_code.h \
   118 	close_code.h
   119 
   120 SDLTEST_HDRS = $(shell ls $(srcdir)/include | fgrep SDL_test)
   121 
   122 LT_AGE      = @LT_AGE@
   123 LT_CURRENT  = @LT_CURRENT@
   124 LT_RELEASE  = @LT_RELEASE@
   125 LT_REVISION = @LT_REVISION@
   126 LT_LDFLAGS  = -no-undefined -rpath $(libdir) -release $(LT_RELEASE) -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE)
   127 
   128 all: $(srcdir)/configure Makefile $(objects) $(objects)/$(TARGET) $(objects)/$(SDLMAIN_TARGET) $(objects)/$(SDLTEST_TARGET)
   129 
   130 $(srcdir)/configure: $(srcdir)/configure.in
   131 	@echo "Warning, configure is out of date, please re-run autogen.sh"
   132 
   133 Makefile: $(srcdir)/Makefile.in
   134 	$(SHELL) config.status $@
   135 
   136 Makefile.in:;
   137 
   138 $(objects):
   139 	$(SHELL) $(auxdir)/mkinstalldirs $@
   140 
   141 update-revision:
   142 	$(SHELL) $(auxdir)/updaterev.sh
   143 
   144 .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)
   145 
   146 $(objects)/$(TARGET): $(GEN_HEADERS) $(GEN_OBJECTS) $(OBJECTS) $(VERSION_OBJECTS)
   147 	$(RUN_CMD_LTLINK)$(LIBTOOL) --tag=CC --mode=link $(CC) -o $@ $(OBJECTS) $(GEN_OBJECTS) $(VERSION_OBJECTS) $(LDFLAGS) $(EXTRA_LDFLAGS) $(LT_LDFLAGS)
   148 
   149 $(objects)/$(SDLMAIN_TARGET): $(SDLMAIN_OBJECTS)
   150 	$(RUN_CMD_LTLINK)$(LIBTOOL) --tag=CC --mode=link $(CC) -static -o $@ $(SDLMAIN_OBJECTS) -rpath $(libdir)
   151 
   152 $(objects)/$(SDLTEST_TARGET): $(SDLTEST_OBJECTS)
   153 	$(RUN_CMD_LTLINK)$(LIBTOOL) --tag=CC --mode=link $(CC) -static -o $@ $(SDLTEST_OBJECTS) -rpath $(libdir)
   154 
   155 install: all install-bin install-hdrs install-lib install-data
   156 install-bin:
   157 	$(SHELL) $(auxdir)/mkinstalldirs $(DESTDIR)$(bindir)
   158 	$(INSTALL) -m 755 sdl2-config $(DESTDIR)$(bindir)/sdl2-config
   159 install-hdrs: update-revision
   160 	$(SHELL) $(auxdir)/mkinstalldirs $(DESTDIR)$(includedir)/SDL2
   161 	for file in $(HDRS) $(SDLTEST_HDRS); do \
   162 	    $(INSTALL) -m 644 $(srcdir)/include/$$file $(DESTDIR)$(includedir)/SDL2/$$file; \
   163 	done
   164 	$(INSTALL) -m 644 include/SDL_config.h $(DESTDIR)$(includedir)/SDL2/SDL_config.h
   165 	if test -f include/SDL_revision.h; then \
   166 	    $(INSTALL) -m 644 include/SDL_revision.h $(DESTDIR)$(includedir)/SDL2/SDL_revision.h; \
   167 	else \
   168 	    $(INSTALL) -m 644 $(srcdir)/include/SDL_revision.h $(DESTDIR)$(includedir)/SDL2/SDL_revision.h; \
   169 	fi
   170 
   171 install-lib: $(objects) $(objects)/$(TARGET) $(objects)/$(SDLMAIN_TARGET) $(objects)/$(SDLTEST_TARGET)
   172 	$(SHELL) $(auxdir)/mkinstalldirs $(DESTDIR)$(libdir)
   173 	$(LIBTOOL) --mode=install $(INSTALL) $(objects)/$(TARGET) $(DESTDIR)$(libdir)/$(TARGET)
   174 	$(LIBTOOL) --mode=install $(INSTALL) $(objects)/$(SDLMAIN_TARGET) $(DESTDIR)$(libdir)/$(SDLMAIN_TARGET)
   175 	$(LIBTOOL) --mode=install $(INSTALL) $(objects)/$(SDLTEST_TARGET) $(DESTDIR)$(libdir)/$(SDLTEST_TARGET)
   176 install-data:
   177 	$(SHELL) $(auxdir)/mkinstalldirs $(DESTDIR)$(datadir)/aclocal
   178 	$(INSTALL) -m 644 $(srcdir)/sdl2.m4 $(DESTDIR)$(datadir)/aclocal/sdl2.m4
   179 	$(SHELL) $(auxdir)/mkinstalldirs $(DESTDIR)$(libdir)/pkgconfig
   180 	$(INSTALL) -m 644 sdl2.pc $(DESTDIR)$(libdir)/pkgconfig
   181 	$(SHELL) $(auxdir)/mkinstalldirs $(DESTDIR)$(libdir)/cmake/SDL2
   182 	$(INSTALL) -m 644 sdl2-config.cmake $(DESTDIR)$(libdir)/cmake/SDL2
   183 
   184 uninstall: uninstall-bin uninstall-hdrs uninstall-lib uninstall-data
   185 uninstall-bin:
   186 	rm -f $(DESTDIR)$(bindir)/sdl2-config
   187 uninstall-hdrs:
   188 	for file in $(HDRS) $(SDLTEST_HDRS); do \
   189 	    rm -f $(DESTDIR)$(includedir)/SDL2/$$file; \
   190 	done
   191 	rm -f $(DESTDIR)$(includedir)/SDL2/SDL_config.h
   192 	rm -f $(DESTDIR)$(includedir)/SDL2/SDL_revision.h
   193 	-rmdir $(DESTDIR)$(includedir)/SDL2
   194 uninstall-lib:
   195 	$(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$(TARGET)
   196 	rm -f $(DESTDIR)$(libdir)/$(SDLMAIN_TARGET)
   197 	rm -f $(DESTDIR)$(libdir)/$(SDLTEST_TARGET)
   198 uninstall-data:
   199 	rm -f $(DESTDIR)$(datadir)/aclocal/sdl2.m4
   200 	rm -f $(DESTDIR)$(libdir)/pkgconfig/sdl2.pc
   201 	rm -f $(DESTDIR)$(libdir)/cmake/SDL2/sdl2-config.cmake
   202 
   203 clean:
   204 	rm -rf $(objects)
   205 	rm -rf $(gen)
   206 	if test -f test/Makefile; then (cd test; $(MAKE) $@); fi
   207 
   208 distclean: clean
   209 	rm -f Makefile Makefile.rules sdl2-config
   210 	rm -f config.status config.cache config.log libtool
   211 	rm -rf $(srcdir)/autom4te*
   212 	find $(srcdir) \( \
   213 	    -name '*~' -o \
   214 	    -name '*.bak' -o \
   215 	    -name '*.old' -o \
   216 	    -name '*.rej' -o \
   217 	    -name '*.orig' -o \
   218 	    -name '.#*' \) \
   219 	    -exec rm -f {} \;
   220 	if test -f test/Makefile; then (cd test; $(MAKE) $@); fi
   221 
   222 dist $(distfile):
   223 	$(SHELL) $(auxdir)/mkinstalldirs $(distdir)
   224 	(cd $(srcdir); tar cf - $(SRC_DIST)) | (cd $(distdir); tar xf -)
   225 	tar cf - $(GEN_DIST) | (cd $(distdir); tar xf -)
   226 	find $(distdir) \( \
   227 	    -name '*~' -o \
   228 	    -name '*.bak' -o \
   229 	    -name '*.old' -o \
   230 	    -name '*.rej' -o \
   231 	    -name '*.orig' -o \
   232 	    -name '.#*' \) \
   233 	    -exec rm -f {} \;
   234 	if test -f $(distdir)/test/Makefile; then (cd $(distdir)/test && make distclean); fi
   235 	(cd $(distdir); build-scripts/updaterev.sh)
   236 	tar cvf - $(distdir) | gzip --best >$(distfile)
   237 	rm -rf $(distdir)
   238 
   239 rpm: $(distfile)
   240 	rpmbuild -ta $?