Makefile.in
author Sam Lantinga <slouken@libsdl.org>
Fri, 30 Dec 2011 14:14:45 -0500
branchSDL-1.2
changeset 6130 987c365cc7bf
parent 6117 6e6e9d549083
permissions -rw-r--r--
Fixed bug 938 - SDL fails to link in mingw+msys+libtool

Carlo Bramini 2010-01-27 10:06:17 PST
When building third party software powered by libtool (like xine-lib and
several others) under Mingw+MSys, libSDL fails to link.
I got this message when building SDL video out component of xine-lib:

*** Warning: linker path does not have real file for library -lmingw32.
*** I have the capability to make that library automatically link in when
*** you link to this library. But I can only do this if you have a
*** shared version of the library, which you do not appear to have
*** because I did check the linker path looking for a file starting
*** with libmingw32 and none of the candidates passed a file format test
*** using a file magic. Last file checked: /mingw/lib/libmingw32.a

Apparently there is no need to manually add -lmingw32 for making libSDL
working.
If this flag is removed, everything is built without troubles.
If it has been added for fixing a cross-compiler, perhaps if would be a better
idea to adjust its SPECS file in the same manner it has been done in the true
one used by mingw on Windows (I'm just guessing why it exists here).

There is also another message received on the console:

*** Warning: linker path does not have real file for library -lSDLmain.
*** I have the capability to make that library automatically link in when
*** you link to this library. But I can only do this if you have a
*** shared version of the library, which you do not appear to have
*** because I did check the linker path looking for a file starting
*** with libSDLmain and none of the candidates passed a file format test
*** using a file magic. Last file checked: /mingw/lib/libSDLmain.a

This message, like previous one, is caused by -no-undefined flag sent to
libtool when building shared libraries.
Actually adding an .la file with its dependencies solves the troubles, so I
believe it would be better to create it too in the build process of libSDL.
slouken@1362
     1
# Makefile to build and install the SDL library
slouken@1362
     2
slouken@1362
     3
top_builddir = .
slouken@1362
     4
srcdir  = @srcdir@
slouken@1362
     5
objects = build
slouken@1362
     6
depend	= build-deps
slouken@1362
     7
prefix = @prefix@
slouken@1362
     8
exec_prefix = @exec_prefix@
slouken@4019
     9
bindir	= @bindir@
slouken@4019
    10
libdir  = @libdir@
slouken@4019
    11
includedir = @includedir@
slouken@4019
    12
datarootdir = @datarootdir@
slouken@4019
    13
datadir	= @datadir@
slouken@4019
    14
mandir	= @mandir@
slouken@1391
    15
auxdir	= @ac_aux_dir@
slouken@1362
    16
distpath = $(srcdir)/..
slouken@1362
    17
distdir = SDL-@SDL_VERSION@
slouken@1362
    18
distfile = $(distdir).tar.gz
slouken@1362
    19
slouken@1380
    20
@SET_MAKE@
slouken@1362
    21
SHELL	= @SHELL@
slouken@1362
    22
CC      = @CC@
slouken@1362
    23
INCLUDE = @INCLUDE@
slouken@1362
    24
CFLAGS  = @BUILD_CFLAGS@
slouken@1521
    25
EXTRA_CFLAGS = @EXTRA_CFLAGS@
slouken@1393
    26
LDFLAGS = @BUILD_LDFLAGS@
slouken@1521
    27
EXTRA_LDFLAGS = @EXTRA_LDFLAGS@
slouken@1362
    28
LIBTOOL = @LIBTOOL@
slouken@1362
    29
INSTALL = @INSTALL@
slouken@1362
    30
NASM	= @NASM@ @NASMFLAGS@
slouken@1419
    31
AR	= @AR@
slouken@1419
    32
RANLIB	= @RANLIB@
slouken@4078
    33
WINDRES	= @WINDRES@
slouken@1362
    34
slouken@1362
    35
TARGET  = libSDL.la
slouken@1362
    36
SOURCES = @SOURCES@
slouken@1362
    37
OBJECTS = @OBJECTS@
slouken@1362
    38
slouken@6130
    39
SDLMAIN_TARGET = libSDLmain.la
slouken@1397
    40
SDLMAIN_SOURCES = @SDLMAIN_SOURCES@
slouken@1397
    41
SDLMAIN_OBJECTS = @SDLMAIN_OBJECTS@
slouken@6130
    42
SDLMAIN_LDFLAGS = @SDLMAIN_LDFLAGS@
slouken@1397
    43
slouken@6117
    44
DIST = acinclude autogen.sh Borland.html Borland.zip BUGS build-scripts configure configure.in COPYING CREDITS CWprojects.sea.bin docs docs.html include INSTALL Makefile.dc Makefile.minimal Makefile.in MPWmake.sea.bin README* sdl-config.in sdl.m4 sdl.pc.in SDL.qpg.in SDL.spec SDL.spec.in src test TODO VisualCE VisualC.html VisualC Watcom-OS2.zip Watcom-Win32.zip symbian.zip WhatsNew Xcode
slouken@1362
    45
slouken@3961
    46
HDRS = SDL.h SDL_active.h SDL_audio.h SDL_byteorder.h SDL_cdrom.h SDL_cpuinfo.h SDL_endian.h SDL_error.h SDL_events.h SDL_getenv.h SDL_joystick.h SDL_keyboard.h SDL_keysym.h SDL_loadso.h SDL_main.h SDL_mouse.h SDL_mutex.h SDL_name.h SDL_opengl.h SDL_platform.h SDL_quit.h SDL_rwops.h SDL_stdinc.h SDL_syswm.h SDL_thread.h SDL_timer.h SDL_types.h SDL_version.h SDL_video.h begin_code.h close_code.h
slouken@3961
    47
slouken@1362
    48
LT_AGE      = @LT_AGE@
slouken@1362
    49
LT_CURRENT  = @LT_CURRENT@
slouken@1362
    50
LT_RELEASE  = @LT_RELEASE@
slouken@1362
    51
LT_REVISION = @LT_REVISION@
slouken@4263
    52
LT_LDFLAGS  = -no-undefined -rpath $(DESTDIR)$(libdir) -release $(LT_RELEASE) -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE)
slouken@1362
    53
slouken@1622
    54
all: $(srcdir)/configure Makefile $(objects) $(objects)/$(TARGET) $(objects)/$(SDLMAIN_TARGET)
slouken@1622
    55
slouken@1622
    56
$(srcdir)/configure: $(srcdir)/configure.in
slouken@1622
    57
	@echo "Warning, configure.in is out of date"
slouken@1622
    58
	#(cd $(srcdir) && sh autogen.sh && sh configure)
slouken@1623
    59
	@sleep 3
slouken@1362
    60
slouken@1362
    61
Makefile: $(srcdir)/Makefile.in
slouken@1362
    62
	$(SHELL) config.status $@
slouken@1362
    63
slouken@1362
    64
$(objects):
slouken@1391
    65
	$(SHELL) $(auxdir)/mkinstalldirs $@
slouken@1362
    66
slouken@1362
    67
.PHONY: all depend install install-bin install-hdrs install-lib install-data install-man uninstall uninstall-bin uninstall-hdrs uninstall-lib uninstall-data uninstall-man clean distclean dist
slouken@1362
    68
depend:
slouken@6130
    69
	@SOURCES="$(SOURCES) $(SDLMAIN_SOURCES)" INCLUDE="$(INCLUDE)" output="$(depend)" \
slouken@1391
    70
	$(SHELL) $(auxdir)/makedep.sh
slouken@1362
    71
slouken@1362
    72
include $(depend)
slouken@1362
    73
slouken@1362
    74
$(objects)/$(TARGET): $(OBJECTS)
slouken@6130
    75
	$(LIBTOOL) --mode=link $(CC) -o $@ $^ $(LDFLAGS) $(EXTRA_LDFLAGS) $(LT_LDFLAGS)
slouken@1362
    76
slouken@1397
    77
$(objects)/$(SDLMAIN_TARGET): $(SDLMAIN_OBJECTS)
slouken@6130
    78
	$(LIBTOOL) --mode=link $(CC) -o $@ $^ $(LDFLAGS) $(EXTRA_LDFLAGS) $(LT_LDFLAGS) $(SDLMAIN_LDFLAGS)
slouken@6130
    79
slouken@1397
    80
slouken@1764
    81
install: all install-bin install-hdrs install-lib install-data install-man
slouken@1362
    82
install-bin:
slouken@4019
    83
	$(SHELL) $(auxdir)/mkinstalldirs $(DESTDIR)$(bindir)
slouken@4019
    84
	$(INSTALL) -m 755 sdl-config $(DESTDIR)$(bindir)/sdl-config
slouken@1362
    85
install-hdrs:
slouken@4019
    86
	$(SHELL) $(auxdir)/mkinstalldirs $(DESTDIR)$(includedir)/SDL
slouken@3961
    87
	for file in $(HDRS); do \
slouken@4019
    88
	    $(INSTALL) -m 644 $(srcdir)/include/$$file $(DESTDIR)$(includedir)/SDL/$$file; \
slouken@1362
    89
	done
slouken@4019
    90
	$(INSTALL) -m 644 include/SDL_config.h $(DESTDIR)$(includedir)/SDL/SDL_config.h
slouken@4006
    91
install-lib: $(objects) $(objects)/$(TARGET) $(objects)/$(SDLMAIN_TARGET)
slouken@4019
    92
	$(SHELL) $(auxdir)/mkinstalldirs $(DESTDIR)$(libdir)
slouken@4019
    93
	$(LIBTOOL) --mode=install $(INSTALL) $(objects)/$(TARGET) $(DESTDIR)$(libdir)/$(TARGET)
slouken@6130
    94
	$(LIBTOOL) --mode=install $(INSTALL) $(objects)/$(SDLMAIN_TARGET) $(DESTDIR)$(libdir)/$(SDLMAIN_TARGET)
slouken@1362
    95
install-data:
slouken@4019
    96
	$(SHELL) $(auxdir)/mkinstalldirs $(DESTDIR)$(datadir)/aclocal
slouken@4019
    97
	$(INSTALL) -m 644 $(srcdir)/sdl.m4 $(DESTDIR)$(datadir)/aclocal/sdl.m4
slouken@4019
    98
	$(SHELL) $(auxdir)/mkinstalldirs $(DESTDIR)$(libdir)/pkgconfig
slouken@4019
    99
	$(INSTALL) -m 644 sdl.pc $(DESTDIR)$(libdir)/pkgconfig
slouken@1362
   100
install-man:
slouken@4019
   101
	$(SHELL) $(auxdir)/mkinstalldirs $(DESTDIR)$(mandir)/man3
slouken@1362
   102
	for src in $(srcdir)/docs/man3/*.3; do \
slouken@1362
   103
	    file=`echo $$src | sed -e 's|^.*/||'`; \
slouken@4019
   104
	    $(INSTALL) -m 644 $$src $(DESTDIR)$(mandir)/man3/$$file; \
slouken@1362
   105
	done
slouken@1362
   106
slouken@1603
   107
uninstall: uninstall-bin uninstall-hdrs uninstall-lib uninstall-data uninstall-man
slouken@1362
   108
uninstall-bin:
slouken@4019
   109
	rm -f $(DESTDIR)$(bindir)/sdl-config
slouken@1362
   110
uninstall-hdrs:
slouken@3961
   111
	for file in $(HDRS); do \
slouken@4019
   112
	    rm -f $(DESTDIR)$(includedir)/SDL/$$file; \
slouken@1362
   113
	done
slouken@4019
   114
	rm -f $(DESTDIR)$(includedir)/SDL/SDL_config.h
slouken@4019
   115
	-rmdir $(DESTDIR)$(includedir)/SDL
slouken@1362
   116
uninstall-lib:
slouken@4019
   117
	$(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$(TARGET)
slouken@6130
   118
	$(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$(SDLMAIN_TARGET)
slouken@1362
   119
uninstall-data:
slouken@4019
   120
	rm -f $(DESTDIR)$(datadir)/aclocal/sdl.m4
icculus@4285
   121
	rm -f $(DESTDIR)$(libdir)/pkgconfig/sdl.pc
slouken@1362
   122
uninstall-man:
slouken@1362
   123
	for src in $(srcdir)/docs/man3/*.3; do \
slouken@1362
   124
	    file=`echo $$src | sed -e 's|^.*/||'`; \
slouken@4019
   125
	    rm -f $(DESTDIR)$(mandir)/man3/$$file; \
slouken@1362
   126
	done
slouken@1362
   127
slouken@1362
   128
clean:
slouken@1362
   129
	rm -rf $(objects)
slouken@1380
   130
	if test -f test/Makefile; then (cd test; $(MAKE) $@); fi
slouken@1362
   131
slouken@1362
   132
distclean: clean
slouken@1362
   133
	rm -f Makefile include/SDL_config.h sdl-config
slouken@1362
   134
	rm -f SDL.qpg
slouken@1362
   135
	rm -f config.status config.cache config.log libtool $(depend)
slouken@1362
   136
	rm -rf $(srcdir)/autom4te*
slouken@4131
   137
	rm -rf $(srcdir)/test/autom4te*
slouken@1603
   138
	find $(srcdir) \( \
slouken@1603
   139
	    -name '*~' -o \
slouken@1603
   140
	    -name '*.bak' -o \
slouken@1603
   141
	    -name '*.old' -o \
slouken@1603
   142
	    -name '*.rej' -o \
slouken@1603
   143
	    -name '*.orig' -o \
slouken@1603
   144
	    -name '.#*' \) \
slouken@1362
   145
	    -exec rm -f {} \;
slouken@1603
   146
	cp $(srcdir)/include/SDL_config.h.default $(srcdir)/include/SDL_config.h
slouken@1380
   147
	if test -f test/Makefile; then (cd test; $(MAKE) $@); fi
slouken@1362
   148
slouken@1362
   149
dist $(distfile):
slouken@1391
   150
	$(SHELL) $(auxdir)/mkinstalldirs $(distdir)
slouken@1362
   151
	tar cf - $(DIST) | (cd $(distdir); tar xf -)
slouken@1603
   152
	cp $(distdir)/include/SDL_config.h.default $(distdir)/include/SDL_config.h
slouken@1651
   153
	rm -rf `find $(distdir) -name .svn`
slouken@4131
   154
	rm -rf $(distdir)/test/autom4te*
slouken@1846
   155
	find $(distdir) \( \
slouken@1845
   156
	    -name '*~' -o \
slouken@1845
   157
	    -name '*.bak' -o \
slouken@1845
   158
	    -name '*.old' -o \
slouken@1845
   159
	    -name '*.rej' -o \
slouken@1845
   160
	    -name '*.orig' -o \
slouken@1845
   161
	    -name '.#*' \) \
slouken@1845
   162
	    -exec rm -f {} \;
slouken@1848
   163
	if test -f $(distdir)/test/Makefile; then (cd $(distdir)/test && make distclean); fi
slouken@1362
   164
	tar cvf - $(distdir) | gzip --best >$(distfile)
slouken@1362
   165
	rm -rf $(distdir)
slouken@1362
   166
slouken@1362
   167
rpm: $(distfile)
slouken@1362
   168
	rpmbuild -ta $?
slouken@1424
   169
slouken@1651
   170
# Create a SVN snapshot that people can run update on
slouken@1424
   171
snapshot:
slouken@3906
   172
	svn co http://svn.libsdl.org/branches/SDL-1.2
slouken@3848
   173
	(cd SDL-1.2 && ./autogen.sh && rm -rf autom4te.cache)
slouken@3848
   174
	cp SDL-1.2/include/SDL_config.h.default SDL-1.2/include/SDL_config.h
slouken@1448
   175
	tar zcf $(HOME)/SDL-1.2.tar.gz SDL-1.2
slouken@1451
   176
	rm -f $(HOME)/SDL-1.2.zip
slouken@1448
   177
	zip -r $(HOME)/SDL-1.2.zip SDL-1.2
slouken@1424
   178
	rm -rf SDL-1.2