Makefile.in
author Ryan C. Gordon <icculus@icculus.org>
Mon, 25 Jun 2018 09:37:25 -0700
changeset 12035 1a7dec71e8e0
parent 11365 a9bd2625fa01
child 12130 24142c5073a4
permissions -rw-r--r--
wayland: Keep protocol XML files in-tree.

Now you don't need the latest Wayland installed to build with
newer protocols supported, as they'll build correctly; even if
your system can't use them, we can make intelligent decisions
at runtime about what's available on the current machine anyhow.

This also simplifies some logic and possible failure cases in
the configure and CMake scripts.

Fixes Bugzilla #4207.
     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_shape.h \
   105 	SDL_stdinc.h \
   106 	SDL_surface.h \
   107 	SDL_system.h \
   108 	SDL_syswm.h \
   109 	SDL_thread.h \
   110 	SDL_timer.h \
   111 	SDL_touch.h \
   112 	SDL_types.h \
   113 	SDL_version.h \
   114 	SDL_video.h \
   115 	SDL_vulkan.h \
   116 	begin_code.h \
   117 	close_code.h
   118 
   119 SDLTEST_HDRS = $(shell ls $(srcdir)/include | fgrep SDL_test)
   120 
   121 LT_AGE      = @LT_AGE@
   122 LT_CURRENT  = @LT_CURRENT@
   123 LT_RELEASE  = @LT_RELEASE@
   124 LT_REVISION = @LT_REVISION@
   125 LT_LDFLAGS  = -no-undefined -rpath $(libdir) -release $(LT_RELEASE) -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE)
   126 
   127 all: $(srcdir)/configure Makefile $(objects) $(objects)/$(TARGET) $(objects)/$(SDLMAIN_TARGET) $(objects)/$(SDLTEST_TARGET)
   128 
   129 $(srcdir)/configure: $(srcdir)/configure.in
   130 	@echo "Warning, configure is out of date, please re-run autogen.sh"
   131 
   132 Makefile: $(srcdir)/Makefile.in
   133 	$(SHELL) config.status $@
   134 
   135 Makefile.in:;
   136 
   137 $(objects):
   138 	$(SHELL) $(auxdir)/mkinstalldirs $@
   139 
   140 update-revision:
   141 	$(SHELL) $(auxdir)/updaterev.sh
   142 
   143 .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)
   144 
   145 $(objects)/$(TARGET): $(GEN_HEADERS) $(GEN_OBJECTS) $(OBJECTS) $(VERSION_OBJECTS)
   146 	$(RUN_CMD_LTLINK)$(LIBTOOL) --tag=CC --mode=link $(CC) -o $@ $(OBJECTS) $(GEN_OBJECTS) $(VERSION_OBJECTS) $(LDFLAGS) $(EXTRA_LDFLAGS) $(LT_LDFLAGS)
   147 
   148 $(objects)/$(SDLMAIN_TARGET): $(SDLMAIN_OBJECTS)
   149 	$(RUN_CMD_LTLINK)$(LIBTOOL) --tag=CC --mode=link $(CC) -static -o $@ $(SDLMAIN_OBJECTS) -rpath $(libdir)
   150 
   151 $(objects)/$(SDLTEST_TARGET): $(SDLTEST_OBJECTS)
   152 	$(RUN_CMD_LTLINK)$(LIBTOOL) --tag=CC --mode=link $(CC) -static -o $@ $(SDLTEST_OBJECTS) -rpath $(libdir)
   153 
   154 install: all install-bin install-hdrs install-lib install-data
   155 install-bin:
   156 	$(SHELL) $(auxdir)/mkinstalldirs $(DESTDIR)$(bindir)
   157 	$(INSTALL) -m 755 sdl2-config $(DESTDIR)$(bindir)/sdl2-config
   158 install-hdrs: update-revision
   159 	$(SHELL) $(auxdir)/mkinstalldirs $(DESTDIR)$(includedir)/SDL2
   160 	for file in $(HDRS) $(SDLTEST_HDRS); do \
   161 	    $(INSTALL) -m 644 $(srcdir)/include/$$file $(DESTDIR)$(includedir)/SDL2/$$file; \
   162 	done
   163 	$(INSTALL) -m 644 include/SDL_config.h $(DESTDIR)$(includedir)/SDL2/SDL_config.h
   164 	if test -f include/SDL_revision.h; then \
   165 	    $(INSTALL) -m 644 include/SDL_revision.h $(DESTDIR)$(includedir)/SDL2/SDL_revision.h; \
   166 	else \
   167 	    $(INSTALL) -m 644 $(srcdir)/include/SDL_revision.h $(DESTDIR)$(includedir)/SDL2/SDL_revision.h; \
   168 	fi
   169 
   170 install-lib: $(objects) $(objects)/$(TARGET) $(objects)/$(SDLMAIN_TARGET) $(objects)/$(SDLTEST_TARGET)
   171 	$(SHELL) $(auxdir)/mkinstalldirs $(DESTDIR)$(libdir)
   172 	$(LIBTOOL) --mode=install $(INSTALL) $(objects)/$(TARGET) $(DESTDIR)$(libdir)/$(TARGET)
   173 	$(LIBTOOL) --mode=install $(INSTALL) $(objects)/$(SDLMAIN_TARGET) $(DESTDIR)$(libdir)/$(SDLMAIN_TARGET)
   174 	$(LIBTOOL) --mode=install $(INSTALL) $(objects)/$(SDLTEST_TARGET) $(DESTDIR)$(libdir)/$(SDLTEST_TARGET)
   175 install-data:
   176 	$(SHELL) $(auxdir)/mkinstalldirs $(DESTDIR)$(datadir)/aclocal
   177 	$(INSTALL) -m 644 $(srcdir)/sdl2.m4 $(DESTDIR)$(datadir)/aclocal/sdl2.m4
   178 	$(SHELL) $(auxdir)/mkinstalldirs $(DESTDIR)$(libdir)/pkgconfig
   179 	$(INSTALL) -m 644 sdl2.pc $(DESTDIR)$(libdir)/pkgconfig
   180 	$(SHELL) $(auxdir)/mkinstalldirs $(DESTDIR)$(libdir)/cmake/SDL2
   181 	$(INSTALL) -m 644 sdl2-config.cmake $(DESTDIR)$(libdir)/cmake/SDL2
   182 
   183 uninstall: uninstall-bin uninstall-hdrs uninstall-lib uninstall-data
   184 uninstall-bin:
   185 	rm -f $(DESTDIR)$(bindir)/sdl2-config
   186 uninstall-hdrs:
   187 	for file in $(HDRS) $(SDLTEST_HDRS); do \
   188 	    rm -f $(DESTDIR)$(includedir)/SDL2/$$file; \
   189 	done
   190 	rm -f $(DESTDIR)$(includedir)/SDL2/SDL_config.h
   191 	rm -f $(DESTDIR)$(includedir)/SDL2/SDL_revision.h
   192 	-rmdir $(DESTDIR)$(includedir)/SDL2
   193 uninstall-lib:
   194 	$(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$(TARGET)
   195 	rm -f $(DESTDIR)$(libdir)/$(SDLMAIN_TARGET)
   196 	rm -f $(DESTDIR)$(libdir)/$(SDLTEST_TARGET)
   197 uninstall-data:
   198 	rm -f $(DESTDIR)$(datadir)/aclocal/sdl2.m4
   199 	rm -f $(DESTDIR)$(libdir)/pkgconfig/sdl2.pc
   200 	rm -f $(DESTDIR)$(libdir)/cmake/SDL2/sdl2-config.cmake
   201 
   202 clean:
   203 	rm -rf $(objects)
   204 	rm -rf $(gen)
   205 	if test -f test/Makefile; then (cd test; $(MAKE) $@); fi
   206 
   207 distclean: clean
   208 	rm -f Makefile Makefile.rules sdl2-config
   209 	rm -f config.status config.cache config.log libtool
   210 	rm -rf $(srcdir)/autom4te*
   211 	find $(srcdir) \( \
   212 	    -name '*~' -o \
   213 	    -name '*.bak' -o \
   214 	    -name '*.old' -o \
   215 	    -name '*.rej' -o \
   216 	    -name '*.orig' -o \
   217 	    -name '.#*' \) \
   218 	    -exec rm -f {} \;
   219 	if test -f test/Makefile; then (cd test; $(MAKE) $@); fi
   220 
   221 dist $(distfile):
   222 	$(SHELL) $(auxdir)/mkinstalldirs $(distdir)
   223 	(cd $(srcdir); tar cf - $(SRC_DIST)) | (cd $(distdir); tar xf -)
   224 	tar cf - $(GEN_DIST) | (cd $(distdir); tar xf -)
   225 	find $(distdir) \( \
   226 	    -name '*~' -o \
   227 	    -name '*.bak' -o \
   228 	    -name '*.old' -o \
   229 	    -name '*.rej' -o \
   230 	    -name '*.orig' -o \
   231 	    -name '.#*' \) \
   232 	    -exec rm -f {} \;
   233 	if test -f $(distdir)/test/Makefile; then (cd $(distdir)/test && make distclean); fi
   234 	(cd $(distdir); build-scripts/updaterev.sh)
   235 	tar cvf - $(distdir) | gzip --best >$(distfile)
   236 	rm -rf $(distdir)
   237 
   238 rpm: $(distfile)
   239 	rpmbuild -ta $?