Makefile.in
author Sam Lantinga <slouken@libsdl.org>
Sat, 08 Dec 2018 11:22:50 -0800
changeset 12469 99d8b18acf8a
parent 12130 24142c5073a4
child 12673 95689b6959db
permissions -rw-r--r--
Fixed bug 4379 - fix parallel build with slibtool

orbea

I am having a parallel build problem with -j3 or higher using the autotools build and slibtool instead of GNU libtool. Basically slibtool is faster than GNU libtool and it will start working before mkdir starts or finishes creating the build/ directory.
     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)/$(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)/.created:
   139 	$(SHELL) $(auxdir)/mkinstalldirs $(objects)
   140 	touch $@
   141 
   142 update-revision:
   143 	$(SHELL) $(auxdir)/updaterev.sh
   144 
   145 .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)
   146 
   147 $(objects)/$(TARGET): $(GEN_HEADERS) $(GEN_OBJECTS) $(OBJECTS) $(VERSION_OBJECTS)
   148 	$(RUN_CMD_LTLINK)$(LIBTOOL) --tag=CC --mode=link $(CC) -o $@ $(OBJECTS) $(GEN_OBJECTS) $(VERSION_OBJECTS) $(LDFLAGS) $(EXTRA_LDFLAGS) $(LT_LDFLAGS)
   149 
   150 $(objects)/$(SDLMAIN_TARGET): $(SDLMAIN_OBJECTS)
   151 	$(RUN_CMD_LTLINK)$(LIBTOOL) --tag=CC --mode=link $(CC) -static -o $@ $(SDLMAIN_OBJECTS) -rpath $(libdir)
   152 
   153 $(objects)/$(SDLTEST_TARGET): $(SDLTEST_OBJECTS)
   154 	$(RUN_CMD_LTLINK)$(LIBTOOL) --tag=CC --mode=link $(CC) -static -o $@ $(SDLTEST_OBJECTS) -rpath $(libdir)
   155 
   156 install: all install-bin install-hdrs install-lib install-data
   157 install-bin:
   158 	$(SHELL) $(auxdir)/mkinstalldirs $(DESTDIR)$(bindir)
   159 	$(INSTALL) -m 755 sdl2-config $(DESTDIR)$(bindir)/sdl2-config
   160 install-hdrs: update-revision
   161 	$(SHELL) $(auxdir)/mkinstalldirs $(DESTDIR)$(includedir)/SDL2
   162 	for file in $(HDRS) $(SDLTEST_HDRS); do \
   163 	    $(INSTALL) -m 644 $(srcdir)/include/$$file $(DESTDIR)$(includedir)/SDL2/$$file; \
   164 	done
   165 	$(INSTALL) -m 644 include/SDL_config.h $(DESTDIR)$(includedir)/SDL2/SDL_config.h
   166 	if test -f include/SDL_revision.h; then \
   167 	    $(INSTALL) -m 644 include/SDL_revision.h $(DESTDIR)$(includedir)/SDL2/SDL_revision.h; \
   168 	else \
   169 	    $(INSTALL) -m 644 $(srcdir)/include/SDL_revision.h $(DESTDIR)$(includedir)/SDL2/SDL_revision.h; \
   170 	fi
   171 
   172 install-lib: $(objects) $(objects)/$(TARGET) $(objects)/$(SDLMAIN_TARGET) $(objects)/$(SDLTEST_TARGET)
   173 	$(SHELL) $(auxdir)/mkinstalldirs $(DESTDIR)$(libdir)
   174 	$(LIBTOOL) --mode=install $(INSTALL) $(objects)/$(TARGET) $(DESTDIR)$(libdir)/$(TARGET)
   175 	$(LIBTOOL) --mode=install $(INSTALL) $(objects)/$(SDLMAIN_TARGET) $(DESTDIR)$(libdir)/$(SDLMAIN_TARGET)
   176 	$(LIBTOOL) --mode=install $(INSTALL) $(objects)/$(SDLTEST_TARGET) $(DESTDIR)$(libdir)/$(SDLTEST_TARGET)
   177 install-data:
   178 	$(SHELL) $(auxdir)/mkinstalldirs $(DESTDIR)$(datadir)/aclocal
   179 	$(INSTALL) -m 644 $(srcdir)/sdl2.m4 $(DESTDIR)$(datadir)/aclocal/sdl2.m4
   180 	$(SHELL) $(auxdir)/mkinstalldirs $(DESTDIR)$(libdir)/pkgconfig
   181 	$(INSTALL) -m 644 sdl2.pc $(DESTDIR)$(libdir)/pkgconfig
   182 	$(SHELL) $(auxdir)/mkinstalldirs $(DESTDIR)$(libdir)/cmake/SDL2
   183 	$(INSTALL) -m 644 sdl2-config.cmake $(DESTDIR)$(libdir)/cmake/SDL2
   184 
   185 uninstall: uninstall-bin uninstall-hdrs uninstall-lib uninstall-data
   186 uninstall-bin:
   187 	rm -f $(DESTDIR)$(bindir)/sdl2-config
   188 uninstall-hdrs:
   189 	for file in $(HDRS) $(SDLTEST_HDRS); do \
   190 	    rm -f $(DESTDIR)$(includedir)/SDL2/$$file; \
   191 	done
   192 	rm -f $(DESTDIR)$(includedir)/SDL2/SDL_config.h
   193 	rm -f $(DESTDIR)$(includedir)/SDL2/SDL_revision.h
   194 	-rmdir $(DESTDIR)$(includedir)/SDL2
   195 uninstall-lib:
   196 	$(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$(TARGET)
   197 	rm -f $(DESTDIR)$(libdir)/$(SDLMAIN_TARGET)
   198 	rm -f $(DESTDIR)$(libdir)/$(SDLTEST_TARGET)
   199 uninstall-data:
   200 	rm -f $(DESTDIR)$(datadir)/aclocal/sdl2.m4
   201 	rm -f $(DESTDIR)$(libdir)/pkgconfig/sdl2.pc
   202 	rm -f $(DESTDIR)$(libdir)/cmake/SDL2/sdl2-config.cmake
   203 
   204 clean:
   205 	rm -rf $(objects)
   206 	rm -rf $(gen)
   207 	if test -f test/Makefile; then (cd test; $(MAKE) $@); fi
   208 
   209 distclean: clean
   210 	rm -f Makefile Makefile.rules sdl2-config
   211 	rm -f config.status config.cache config.log libtool
   212 	rm -rf $(srcdir)/autom4te*
   213 	find $(srcdir) \( \
   214 	    -name '*~' -o \
   215 	    -name '*.bak' -o \
   216 	    -name '*.old' -o \
   217 	    -name '*.rej' -o \
   218 	    -name '*.orig' -o \
   219 	    -name '.#*' \) \
   220 	    -exec rm -f {} \;
   221 	if test -f test/Makefile; then (cd test; $(MAKE) $@); fi
   222 
   223 dist $(distfile):
   224 	$(SHELL) $(auxdir)/mkinstalldirs $(distdir)
   225 	(cd $(srcdir); tar cf - $(SRC_DIST)) | (cd $(distdir); tar xf -)
   226 	tar cf - $(GEN_DIST) | (cd $(distdir); tar xf -)
   227 	find $(distdir) \( \
   228 	    -name '*~' -o \
   229 	    -name '*.bak' -o \
   230 	    -name '*.old' -o \
   231 	    -name '*.rej' -o \
   232 	    -name '*.orig' -o \
   233 	    -name '.#*' \) \
   234 	    -exec rm -f {} \;
   235 	if test -f $(distdir)/test/Makefile; then (cd $(distdir)/test && make distclean); fi
   236 	(cd $(distdir); build-scripts/updaterev.sh)
   237 	tar cvf - $(distdir) | gzip --best >$(distfile)
   238 	rm -rf $(distdir)
   239 
   240 rpm: $(distfile)
   241 	rpmbuild -ta $?