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

261 lines
7.9 KiB
Makefile

VERSION_MAJOR = @libxmp_VERSION_MAJOR@
VERSION_MINOR = @libxmp_VERSION_MINOR@
VERSION_RELEASE = @libxmp_VERSION_PATCH@
VERSION = @libxmp_VERSION@
# This dylib will support anything linked against COMPAT_VERSION through VERSION
COMPAT_VERSION = $(VERSION_MAJOR)
CC = @CC@
CFLAGS = -c @CFLAGS@ @DEFS@ -D_REENTRANT
#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@
LD_VERSCRIPT = @LD_VERSCRIPT@
SHELL = /bin/sh
DIST = libxmp-$(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.pc.in libxmp-config.cmake \
libxmp-config.cmake.autotools libxmp-config-version.cmake.autotools.in
DDIRS = docs include src loaders prowiz depackers lhasa test cmake m4
V = 0
LIB = libxmp.a
SOLIB = libxmp.so
SHLIB = $(SOLIB).$(VERSION)
SONAME = $(SOLIB).$(VERSION_MAJOR)
DLL = libxmp.dll
IMPLIB = libxmp.dll.a
DYLIB = libxmp.$(VERSION_MAJOR).dylib
GCLIB = libxmp-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/Makefile
include cmake/Makefile
include m4/Makefile
include src/Makefile
include src/loaders/Makefile
include src/loaders/prowizard/Makefile
include src/depackers/Makefile
include src/depackers/lhasa/Makefile
include test/Makefile
include docs/Makefile
ALL_OBJS=$(OBJS) @PROWIZARD_OBJS@ @DEPACKER_OBJS@
LOBJS = $(ALL_OBJS:.o=.lo)
GCOBJS = $(ALL_OBJS:.o=.gco)
CFLAGS += -Iinclude
.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): $(ALL_OBJS)
@mkdir -p lib
@CMD='$(AR) r $@ $(ALL_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.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.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) $@
docs: all-docs
clean:
@rm -f $(ALL_OBJS) $(LOBJS) $(T_OBJS)
@rm -f $(GCOBJS) $(ALL_OBJS:.o=.gcno) $(ALL_OBJS:.o=.gcda)
distclean: clean
@rm -f config.log config.cache config.status libxmp.pc depend Makefile lib/* test/libxmp-test*
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.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/xmp.h $(DESTDIR)$(INCLUDEDIR)
@echo "Installing libxmp.pc..."
@mkdir -p $(DESTDIR)$(LIBDIR)/pkgconfig
@$(INSTALL) -m644 libxmp.pc $(DESTDIR)$(LIBDIR)/pkgconfig/
@echo "Installing libxmp-config.cmake..."
@mkdir -p $(DESTDIR)$(LIBDIR)/cmake/libxmp
@$(INSTALL) -m644 libxmp-config.cmake.autotools $(DESTDIR)$(LIBDIR)/cmake/libxmp/libxmp-config.cmake
@$(INSTALL) -m644 libxmp-config-version.cmake.autotools $(DESTDIR)$(LIBDIR)/cmake/libxmp/libxmp-config-version.cmake
#FIXME: do better?
depend:
@echo Building dependencies...
@echo > $@
@for i in $(ALL_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 all-docs dist-prepare dist-jni dist-subdirs
dist-jni:
mkdir $(DIST)/jni
cp jni/Android.mk jni/Application.mk $(DIST)/jni
dist-prepare: cmake-prepare vc-prepare watcom-prepare
./config.status
rm -Rf $(DIST) $(DIST).tar.gz
mkdir -p $(DIST)
cp -RPp $(DFILES) $(DIST)/
space := $(eval) $(eval)
cmake-prepare:
@echo Generate cmake/libxmp-sources.cmake
@sed -e 's!@SRCS@!\n$(subst $(space), , $(OBJS:.o=.c\n))!' \
-e 's!@PSRCS@!\n$(subst $(space), , $(PROWIZARD_OBJS:.o=.c\n))!' \
-e 's!@DSRCS@!\n$(subst $(space), , $(DEPACKER_OBJS:.o=.c\n))!' \
cmake/libxmp-sources.cmake.in > cmake/libxmp-sources.cmake
vc-prepare:
@echo Generate Makefile.vc
@sed -e 's!@OBJS@!\\\r\n $(subst /,\\,$(OBJS:.o=.obj \\\r\n))!' \
-e 's!@POBJS@!\\\r\n $(subst /,\\,$(PROWIZARD_OBJS:.o=.obj \\\r\n))!' \
-e 's!@DOBJS@!\\\r\n $(subst /,\\,$(DEPACKER_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)!' \
-e 's!@POBJS@! \&\n $(PROWIZARD_OBJS:.o=.obj \&\n)!' \
-e 's!@DOBJS@! \&\n $(DEPACKER_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 $(ALL_OBJS:.o=.gco) $(ALL_OBJS:.o=.gcno) $(ALL_OBJS:.o=.gcda)
$(MAKE) -C test-dev coverclean
$(ALL_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/xmp.h
./config.status
sinclude depend