singe/thirdparty/SDL2_mixer/external/libxmp/lite/Makefile.in
2023-10-23 19:38:18 -05:00

240 lines
7.2 KiB
Makefile

VERSION_MAJOR = @libxmplite_VERSION_MAJOR@
VERSION_MINOR = @libxmplite_VERSION_MINOR@
VERSION_RELEASE = @libxmplite_VERSION_PATCH@
VERSION = @libxmplite_VERSION@
# This dylib will support anything linked against COMPAT_VERSION through VERSION
COMPAT_VERSION = $(VERSION_MAJOR)
CC = @CC@
CFLAGS = -c @CFLAGS@ @DEFS@ -D_REENTRANT -DLIBXMP_CORE_PLAYER
#CFLAGS += -DDEBUG
CFLAGS_SHARED = @CFLAGS_SHARED@
CFLAGS_STATIC = -DLIBXMP_STATIC
LD = @CC@
LDFLAGS = @LDFLAGS@
LIBS = @LIBS@
AR = @AR@
RANLIB = @RANLIB@
INSTALL = @INSTALL@
DESTDIR =
prefix = @prefix@
exec_prefix = @prefix@
datarootdir = @datarootdir@
BINDIR = @bindir@
LIBDIR = @libdir@
MANDIR = @mandir@/man3
INCLUDEDIR = @includedir@/libxmp-lite
LD_VERSCRIPT = @LD_VERSCRIPT@
SHELL = /bin/sh
DIST = libxmp-lite-$(VERSION)
DFILES = README INSTALL install-sh configure configure.ac config.sub config.guess \
Makefile.in Makefile.vc Makefile.dos Makefile.os2 Makefile.w32 watcom.mif \
CMakeLists.txt aclocal.m4 autogen.sh libxmp.map libxmp-lite.pc.in Changelog \
libxmp-lite-config.cmake libxmp-lite-config.cmake.autotools \
libxmp-lite-config-version.cmake.autotools.in
DDIRS = include src loaders test cmake m4
V = 0
LIB = libxmp-lite.a
SOLIB = libxmp-lite.so
SHLIB = $(SOLIB).$(VERSION)
SONAME = $(SOLIB).$(VERSION_MAJOR)
DLL = libxmp-lite.dll
IMPLIB = libxmp-lite.dll.a
DYLIB = libxmp-lite.$(VERSION_MAJOR).dylib
GCLIB = libxmp-lite-gc.a
DYLIB_COMPAT = -compatibility_version,$(COMPAT_VERSION),
DARWIN_VERSION = @DARWIN_VERSION@
# https://github.com/cmatsuoka/libxmp/issues/1
ifneq ($(DARWIN_VERSION),)
ifeq ($(shell test $(DARWIN_VERSION) -lt 9 && echo true), true)
DYLIB_COMPAT=
endif
endif
all: @STATIC@ @SHARED@
include include/libxmp-lite/Makefile
include cmake/Makefile
include m4/Makefile
include src/Makefile
include src/loaders/Makefile
include test/Makefile
LOBJS = $(OBJS:.o=.lo)
GCOBJS = $(OBJS:.o=.gco)
CFLAGS += -Iinclude/libxmp-lite
.SUFFIXES: .c .o .lo .a .so .dll .in .gco .gcda .gcno
.c.o:
@CMD='$(CC) $(CPPFLAGS) $(CFLAGS_STATIC) $(CFLAGS) -o $*.o $<'; \
if [ "$(V)" -gt 0 ]; then echo $$CMD; else echo CC $*.o ; fi; \
eval $$CMD
.c.lo:
@CMD='$(CC) $(CPPFLAGS) $(CFLAGS_SHARED) $(CFLAGS) -o $*.lo $<'; \
if [ "$(V)" -gt 0 ]; then echo $$CMD; else echo CC $*.lo ; fi; \
eval $$CMD
.c.gco:
@CMD='$(CC) $(CPPFLAGS) $(CFLAGS_STATIC) $(CFLAGS) -O0 -fno-inline -fprofile-arcs -ftest-coverage -o $*.gco $<'; \
if [ "$(V)" -gt 0 ]; then echo $$CMD; else echo CC $*.gco ; fi; \
eval $$CMD
static: lib/$(LIB)
shared: lib/$(SHLIB)
coverage: lib/$(GCLIB)
dll: lib/$(DLL)
dylib: lib/$(DYLIB)
lib/$(LIB): $(OBJS)
@mkdir -p lib
@CMD='$(AR) r $@ $(OBJS)'; \
if [ "$(V)" -gt 0 ]; then echo $$CMD; else echo AR $@ ; fi; \
eval $$CMD
$(RANLIB) $@
lib/$(SHLIB): $(LOBJS)
@mkdir -p lib
@CMD='$(LD) $(LDFLAGS) -shared -Wl,-soname,$(SONAME) $(LD_VERSCRIPT) -o $@ $(LOBJS) $(LIBS)'; \
if [ "$(V)" -gt 0 ]; then echo $$CMD; else echo LD $@ ; fi; \
eval $$CMD
ln -sf $(SHLIB) lib/$(SONAME)
ln -sf $(SONAME) lib/$(SOLIB)
lib/$(DLL): $(LOBJS)
@mkdir -p lib
@CMD='$(LD) $(LDFLAGS) -shared -Wl,--output-def,lib/libxmp-lite.def,--out-implib,lib/$(IMPLIB) -o $@ $(LOBJS) $(LIBS)'; \
if [ "$(V)" -gt 0 ]; then echo $$CMD; else echo LD $@ ; fi; \
eval $$CMD
# From http://stackoverflow.com/questions/15905310:
# The version number checks that dyld performs are limited to ensuring that
# the compatibility version of the library being loaded is higher than the
# compatibility version of the library that was used at build time.
#
lib/$(DYLIB): $(LOBJS)
@mkdir -p lib
@CMD='$(LD) $(LDFLAGS) -dynamiclib -Wl,-headerpad_max_install_names,$(DYLIB_COMPAT)-current_version,$(VERSION),-install_name,$(prefix)/lib/$(DYLIB) -o $@ $(LOBJS) $(LIBS)'; \
if [ "$(V)" -gt 0 ]; then echo $$CMD; else echo LD $@ ; fi; \
eval $$CMD
ln -sf $(DYLIB) lib/libxmp-lite.dylib
lib/$(GCLIB): $(GCOBJS)
@mkdir -p lib
@CMD='$(AR) r $@ $(GCOBJS)'; \
if [ "$(V)" -gt 0 ]; then echo $$CMD; else echo AR $@ ; fi; \
eval $$CMD
$(RANLIB) $@
clean:
@rm -f $(OBJS) $(LOBJS)
@rm -f $(GCOBJS) $(OBJS:.o=.gcno) $(OBJS:.o=.gcda)
distclean: clean
@rm -f config.log config.cache config.status libxmp-lite.pc depend Makefile lib/*
install: all
@mkdir -p $(DESTDIR)$(BINDIR) $(DESTDIR)$(LIBDIR) $(DESTDIR)$(INCLUDEDIR)
@if [ -f lib/$(LIB) ]; then \
echo "Installing $(LIB)..."; \
$(INSTALL) -m644 lib/$(LIB) $(DESTDIR)$(LIBDIR); \
fi
@if [ -f lib/$(DYLIB) ]; then \
echo "Installing $(DYLIB)..."; \
$(INSTALL) -m755 lib/$(DYLIB) $(DESTDIR)$(LIBDIR); \
ln -sf $(DYLIB) $(DESTDIR)$(LIBDIR)/libxmp-lite.dylib; \
fi
@if [ -f lib/$(DLL) ]; then \
echo "Installing $(DLL)..."; \
$(INSTALL) -m644 lib/$(DLL) $(DESTDIR)$(BINDIR); \
$(INSTALL) -m644 lib/$(IMPLIB) $(DESTDIR)$(LIBDIR); \
fi
@if [ -f lib/$(SHLIB) ]; then \
echo "Installing $(SHLIB)..."; \
$(INSTALL) -m644 lib/$(SHLIB) $(DESTDIR)$(LIBDIR); \
ln -sf $(SHLIB) $(DESTDIR)$(LIBDIR)/$(SONAME); \
ln -sf $(SONAME) $(DESTDIR)$(LIBDIR)/$(SOLIB); \
fi
@echo "Installing xmp.h..."
@$(INSTALL) -m644 include/libxmp-lite/xmp.h $(DESTDIR)$(INCLUDEDIR)
@echo "Installing libxmp-lite.pc..."
@mkdir -p $(DESTDIR)$(LIBDIR)/pkgconfig
@$(INSTALL) -m644 libxmp-lite.pc $(DESTDIR)$(LIBDIR)/pkgconfig/
@echo "Installing libxmp-lite-config.cmake..."
@mkdir -p $(DESTDIR)$(LIBDIR)/cmake/libxmp-lite
@$(INSTALL) -m644 libxmp-lite-config.cmake.autotools $(DESTDIR)$(LIBDIR)/cmake/libxmp-lite/libxmp-lite-config.cmake
@$(INSTALL) -m644 libxmp-lite-config-version.cmake.autotools $(DESTDIR)$(LIBDIR)/cmake/libxmp-lite/libxmp-lite-config-version.cmake
#FIXME: do better?
depend:
@echo Building dependencies...
@echo > $@
@for i in $(OBJS) $(T_OBJS); do \
c="$${i%.o}.c"; l="$${i%.o}.lo"; \
$(CC) $(CFLAGS) -MM $$c | \
sed "s!^.*\.o:!$$i $$l:!" >> $@ ; \
done
dist: version-prepare dist-prepare dist-jni dist-subdirs
dist-jni:
mkdir $(DIST)/jni
cp jni/Android.mk jni/Application.mk $(DIST)/jni
dist-prepare: vc-prepare watcom-prepare
./config.status
rm -Rf $(DIST) $(DIST).tar.gz
mkdir -p $(DIST)
cp -RPp $(DFILES) $(DIST)/
vc-prepare:
@echo Generate Makefile.vc
@sed -e 's!@OBJS@!\\\r\n $(subst /,\\,$(OBJS:.o=.obj \\\r\n))!' Makefile.vc.in > Makefile.vc
watcom-prepare:
@echo Generate watcom.mif
@sed -e 's!@OBJS@! \&\n $(OBJS:.o=.obj \&\n)!' watcom.mif.in > watcom.mif
dist-subdirs: $(addprefix dist-,$(DDIRS))
chmod -R u+w $(DIST)/*
tar cvf - $(DIST) | gzip -9c > $(DIST).tar.gz
rm -Rf $(DIST)
ls -l $(DIST).tar.gz
distcheck:
rm -Rf $(DIST)
tar xf $(DIST).tar.gz
(cd $(DIST); ./configure --enable-static --prefix=`pwd`/test-install; make; make check; make install; find test-install)
devcheck:
$(MAKE) -C test-dev
covercheck: coverage
$(MAKE) -C test-dev covercheck
coverclean:
rm -f $(OBJS:.o=.gco) $(OBJS:.o=.gcno) $(OBJS:.o=.gcda)
$(MAKE) -C test-dev coverclean
$(OBJS): Makefile
$(LOBJS): Makefile
version-prepare:
vercode=`printf "0x%02x%02x%02x" $(VERSION_MAJOR) $(VERSION_MINOR) $(VERSION_RELEASE)`; \
sed -i -e "s/\(^#define XMP_VERSION\).*/\1 \"$(VERSION)\"/;s/\(^#define XMP_VERCODE\).*/\1 $$vercode/;s/\(^#define XMP_VER_MAJOR\).*/\1 $(VERSION_MAJOR)/;s/\(^#define XMP_VER_MINOR\).*/\1 $(VERSION_MINOR)/;s/\(^#define XMP_VER_RELEASE\).*/\1 $(VERSION_RELEASE)/" include/libxmp-lite/xmp.h
./config.status
sinclude depend