mirror of
https://git.tukaani.org/xz.git
synced 2025-03-14 04:20:50 +00:00
Previously it was done in configure, but doing that goes against the Autoconf manual. Autoconf requires that it is possible to override e.g. prefix after running configure and that doesn't work correctly if liblzma.pc is created by configure. A potential downside of this change is that now e.g. libdir in liblzma.pc is a standalone string instead of being defined via ${prefix}, so if one overrides prefix when running pkg-config the libdir won't get the new value. I don't know if this matters in practice. Thanks to Vincent Torri.
111 lines
3.1 KiB
Makefile
111 lines
3.1 KiB
Makefile
##
|
|
## Author: Lasse Collin
|
|
##
|
|
## This file has been put into the public domain.
|
|
## You can do whatever you want with this file.
|
|
##
|
|
|
|
SUBDIRS = api
|
|
|
|
EXTRA_DIST =
|
|
CLEANFILES =
|
|
doc_DATA =
|
|
|
|
lib_LTLIBRARIES = liblzma.la
|
|
liblzma_la_SOURCES = $(top_srcdir)/src/common/tuklib_physmem.c
|
|
liblzma_la_CPPFLAGS = \
|
|
-I$(top_srcdir)/src/liblzma/api \
|
|
-I$(top_srcdir)/src/liblzma/common \
|
|
-I$(top_srcdir)/src/liblzma/check \
|
|
-I$(top_srcdir)/src/liblzma/lz \
|
|
-I$(top_srcdir)/src/liblzma/rangecoder \
|
|
-I$(top_srcdir)/src/liblzma/lzma \
|
|
-I$(top_srcdir)/src/liblzma/delta \
|
|
-I$(top_srcdir)/src/liblzma/simple \
|
|
-I$(top_srcdir)/src/common \
|
|
-DTUKLIB_SYMBOL_PREFIX=lzma_
|
|
liblzma_la_LDFLAGS = -no-undefined -version-info 5:5:0
|
|
|
|
include $(srcdir)/common/Makefile.inc
|
|
include $(srcdir)/check/Makefile.inc
|
|
|
|
if COND_FILTER_LZ
|
|
include $(srcdir)/lz/Makefile.inc
|
|
endif
|
|
|
|
if COND_FILTER_LZMA1
|
|
include $(srcdir)/lzma/Makefile.inc
|
|
include $(srcdir)/rangecoder/Makefile.inc
|
|
endif
|
|
|
|
if COND_FILTER_DELTA
|
|
include $(srcdir)/delta/Makefile.inc
|
|
endif
|
|
|
|
if COND_FILTER_SIMPLE
|
|
include $(srcdir)/simple/Makefile.inc
|
|
endif
|
|
|
|
|
|
## Windows-specific stuff
|
|
|
|
# Windows resource compiler support. libtool knows what to do with .rc
|
|
# files, but Automake (<= 1.11 at least) doesn't know.
|
|
#
|
|
# We want the resource file only in shared liblzma. To avoid linking it into
|
|
# static liblzma, we overwrite the static object file with an object file
|
|
# compiled from empty input. Note that GNU-specific features are OK here,
|
|
# because on Windows we are compiled with the GNU toolchain.
|
|
.rc.lo:
|
|
$(LIBTOOL) --mode=compile $(RC) $(DEFS) $(DEFAULT_INCLUDES) \
|
|
$(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(RCFLAGS) \
|
|
-i $< -o $@
|
|
echo > empty.c
|
|
$(COMPILE) -c empty.c -o $(*D)/$(*F).o
|
|
|
|
# Remove ordinals from the generated .def file. People must link by name,
|
|
# not by ordinal, because no one is going to track the ordinal numbers.
|
|
liblzma.def: liblzma.la liblzma.def.in
|
|
sed 's/ \+@ *[0-9]\+//' liblzma.def.in > liblzma.def
|
|
|
|
# Creating liblzma.def.in is a side effect of linking the library.
|
|
liblzma.def.in: liblzma.la
|
|
|
|
if COND_W32
|
|
CLEANFILES += liblzma.def liblzma.def.in empty.c
|
|
liblzma_la_SOURCES += liblzma_w32res.rc
|
|
liblzma_la_LDFLAGS += -Xlinker --output-def -Xlinker liblzma.def.in
|
|
|
|
## liblzma.def.in is created only when building shared liblzma, so don't
|
|
## try to create liblzma.def when not building shared liblzma.
|
|
if COND_SHARED
|
|
doc_DATA += liblzma.def
|
|
endif
|
|
endif
|
|
|
|
|
|
## pkg-config
|
|
pkgconfigdir = $(libdir)/pkgconfig
|
|
pkgconfig_DATA = liblzma.pc
|
|
EXTRA_DIST += liblzma.pc.in
|
|
|
|
pc_verbose = $(pc_verbose_@AM_V@)
|
|
pc_verbose_ = $(pc_verbose_@AM_DEFAULT_V@)
|
|
pc_verbose_0 = @echo " PC " $@;
|
|
|
|
liblzma.pc: $(srcdir)/liblzma.pc.in
|
|
$(AM_V_at)rm -f $@
|
|
$(pc_verbose)sed \
|
|
-e 's,@prefix[@],$(prefix),g' \
|
|
-e 's,@exec_prefix[@],$(exec_prefix),g' \
|
|
-e 's,@libdir[@],$(libdir),g' \
|
|
-e 's,@includedir[@],$(includedir),g' \
|
|
-e 's,@PACKAGE_URL[@],$(PACKAGE_URL),g' \
|
|
-e 's,@PACKAGE_VERSION[@],$(PACKAGE_VERSION),g' \
|
|
-e 's,@PTHREAD_CFLAGS[@],$(PTHREAD_CFLAGS),g' \
|
|
-e 's,@LIBS[@],$(LIBS),g' \
|
|
< $< > $@ || { rm -f $@; exit 1; }
|
|
|
|
clean-local:
|
|
rm -f liblzma.pc
|