2011-11-10 22:17:04 +04:00
# Copyright (C) 2011 Colin Walters <walters@verbum.org>
#
2018-01-30 22:26:26 +03:00
# SPDX-License-Identifier: LGPL-2.0+
#
2011-11-10 22:17:04 +04:00
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
2014-01-03 20:39:27 +04:00
i n c l u d e M a k e f i l e - d e c l s . a m
2015-07-14 01:02:07 +03:00
shortened_sysconfdir = $$ ( echo " $( sysconfdir) " | sed -e 's|^$(prefix)||' -e 's|^/||' )
2017-05-17 04:46:22 +03:00
OSTREE_GITREV = $( shell cd $( srcdir) && if command -v git >/dev/null 2>& 1 && test -d .git; then git describe --abbrev= 42 --tags --always HEAD; fi )
2017-02-17 18:22:43 +03:00
2016-06-27 04:59:12 +03:00
ACLOCAL_AMFLAGS = -I buildutil -I libglnx ${ ACLOCAL_FLAGS }
2014-01-03 20:39:27 +04:00
AM_CPPFLAGS += -DDATADIR= '"$(datadir)"' -DLIBEXECDIR= '"$(libexecdir)"' \
2014-09-08 19:47:58 +04:00
-DLOCALEDIR= \" $( datadir) /locale\" -DSYSCONFDIR= \" $( sysconfdir) \" \
2017-03-27 17:05:46 +03:00
-DTARGET_PREFIX= '"$(prefix)"' -DSHORTENED_SYSCONFDIR= \" $( shortened_sysconfdir) \" \
2013-05-02 03:15:06 +04:00
-DOSTREE_FEATURES= '"$(OSTREE_FEATURES)"' \
2016-05-13 09:08:49 +03:00
-DOSTREE_COMPILATION \
2016-03-26 18:28:20 +03:00
-DG_LOG_DOMAIN= \" OSTree\" \
2017-02-17 18:22:43 +03:00
-DOSTREE_GITREV= '"$(OSTREE_GITREV)"' \
2017-11-06 22:37:24 +03:00
-DGLIB_VERSION_MIN_REQUIRED= GLIB_VERSION_2_40 '-DGLIB_VERSION_MAX_ALLOWED=G_ENCODE_VERSION(2,50)' \
2017-11-06 23:42:05 +03:00
-DSOUP_VERSION_MIN_REQUIRED= SOUP_VERSION_2_40 '-DSOUP_VERSION_MAX_ALLOWED=G_ENCODE_VERSION(2,48)'
2017-12-15 17:20:58 +03:00
# For strict aliasing, see https://bugzilla.gnome.org/show_bug.cgi?id=791622
AM_CFLAGS += -std= gnu99 -fno-strict-aliasing $( WARN_CFLAGS)
2016-09-01 21:26:48 +03:00
AM_DISTCHECK_CONFIGURE_FLAGS += \
--enable-gtk-doc \
--enable-man \
--disable-maintainer-mode \
$( NULL)
2013-08-17 06:54:35 +04:00
2016-03-31 22:08:45 +03:00
GITIGNOREFILES = aclocal.m4 build-aux/ buildutil/*.m4 config.h.in gtk-doc.make
2013-08-17 06:54:35 +04:00
SUBDIRS += .
2013-08-17 07:14:30 +04:00
i f E N A B L E _ G T K _ D O C
2016-01-27 21:29:21 +03:00
SUBDIRS += apidoc
2012-06-08 01:21:55 +04:00
e n d i f
2013-09-12 03:55:24 +04:00
EXTRA_DIST += autogen.sh COPYING README.md
2012-09-26 02:44:08 +04:00
2012-06-08 01:21:55 +04:00
OT_INTERNAL_GIO_UNIX_CFLAGS = $( OT_DEP_GIO_UNIX_CFLAGS)
OT_INTERNAL_GIO_UNIX_LIBS = $( OT_DEP_GIO_UNIX_LIBS)
2012-06-15 00:22:23 +04:00
OT_INTERNAL_SOUP_CFLAGS = $( OT_DEP_SOUP_CFLAGS)
OT_INTERNAL_SOUP_LIBS = $( OT_DEP_SOUP_LIBS)
2012-06-08 01:21:55 +04:00
2015-04-27 01:08:20 +03:00
# This canonicalizes the PKG_CHECK_MODULES or AM_PATH_GPGME results
2016-02-22 23:04:38 +03:00
OT_INTERNAL_GPGME_CFLAGS = $( OT_DEP_GPGME_CFLAGS) $( GPGME_PTHREAD_CFLAGS)
OT_INTERNAL_GPGME_LIBS = $( OT_DEP_GPGME_LIBS) $( GPGME_PTHREAD_LIBS)
2015-04-27 01:08:20 +03:00
2013-07-27 03:25:07 +04:00
i f B U I L D O P T _ I N T R O S P E C T I O N
i n c l u d e $( INTROSPECTION_MAKEFILE )
GIRS =
TYPELIBS = $( GIRS:.gir= .typelib)
e n d i f
oxidation: Add implementation of bupsplit in Rust
This is an initial drop of "oxidation", or adding implementation
of components in Rust. The bupsplit code is a good target - no
dependencies, just computation.
Translation into Rust had a few twists -
- The C code relies a lot on overflowing unsigned ints, and
also on the C promotion rules for e.g. `uint8_t -> int32_t`
- There were some odd loops that I introduced bugs in while
translating...in particular, the function always returns `len`,
but I mistakenly translated to `len+1`, resulting in an OOB
read on the C side, which was hard to debug.
On the plus side, an off-by-one array indexing in the Rust code paniced nicely.
In practice, we'll need a lot more build infrastructure to make this work, such
as using `cargo vendor` when producing build artifacts for example. Also, Cargo
is yet another thing we need to cache.
Where do we go with this? Well, I think we should merge this, it's not a lot of
code. We can just have it be an alternative CI target. Should we do a lot more
right now? Probably not immediately, but I find the medium/long term prospects
pretty exciting!
Closes: #656
Approved by: jlebon
2017-01-25 05:43:53 +03:00
# These bits based on gnome:librsvg/Makefile.am
i f E N A B L E _ R U S T
i f R U S T _ D E B U G
CARGO_RELEASE_ARGS =
e l s e
CARGO_RELEASE_ARGS = --release
e n d i f
check-local :
cd $( srcdir) /rust && CARGO_TARGET_DIR = $( abs_top_builddir) /target cargo test
clean-local :
cd $( srcdir) /rust && CARGO_TARGET_DIR = $( abs_top_builddir) /target cargo clean
2017-02-04 19:29:20 +03:00
dist-hook :
( cd $( distdir) /rust && \
cp $( abs_top_srcdir) /rust/Cargo.lock . && \
cargo vendor -q && \
mkdir .cargo && \
cp cargo-vendor-config .cargo/config)
EXTRA_DIST += $( srcdir) /rust/Cargo.toml $( srcdir) /rust/cargo-vendor-config
oxidation: Add implementation of bupsplit in Rust
This is an initial drop of "oxidation", or adding implementation
of components in Rust. The bupsplit code is a good target - no
dependencies, just computation.
Translation into Rust had a few twists -
- The C code relies a lot on overflowing unsigned ints, and
also on the C promotion rules for e.g. `uint8_t -> int32_t`
- There were some odd loops that I introduced bugs in while
translating...in particular, the function always returns `len`,
but I mistakenly translated to `len+1`, resulting in an OOB
read on the C side, which was hard to debug.
On the plus side, an off-by-one array indexing in the Rust code paniced nicely.
In practice, we'll need a lot more build infrastructure to make this work, such
as using `cargo vendor` when producing build artifacts for example. Also, Cargo
is yet another thing we need to cache.
Where do we go with this? Well, I think we should merge this, it's not a lot of
code. We can just have it be an alternative CI target. Should we do a lot more
right now? Probably not immediately, but I find the medium/long term prospects
pretty exciting!
Closes: #656
Approved by: jlebon
2017-01-25 05:43:53 +03:00
e n d i f # end ENABLE_RUST
2015-02-18 01:38:36 +03:00
libglnx_srcpath := $( srcdir) /libglnx
libglnx_cflags := $( OT_DEP_GIO_UNIX_CFLAGS) " -I $( libglnx_srcpath) "
libglnx_libs := $( OT_DEP_GIO_UNIX_LIBS)
2017-10-03 23:26:50 +03:00
# See also autogen.sh and https://github.com/ostreedev/ostree/pull/1274/
#
# v2017.12 didn't include test-libglnx-shutil.c, but if you re-run
# autogen.sh (as we do in Debian, to update the Autotools build system)
# it will try to build it.
$(srcdir)/libglnx/Makefile-libglnx.am.inc : $( srcdir ) /libglnx /Makefile -libglnx .am
2017-10-18 19:17:19 +03:00
sed -e 's,$$(libglnx_srcpath),libglnx,g' < $< > $@
2015-02-18 01:38:36 +03:00
i n c l u d e l i b g l n x / M a k e f i l e - l i b g l n x . a m . i n c
2016-05-13 21:01:29 +03:00
EXTRA_DIST += libglnx/Makefile-libglnx.am
2015-02-18 01:38:36 +03:00
noinst_LTLIBRARIES += libglnx.la
2015-02-12 18:24:50 +03:00
libbsdiff_srcpath := $( srcdir) /bsdiff
2017-10-03 23:26:50 +03:00
2015-02-12 18:24:50 +03:00
libbsdiff_cflags := $( OT_DEP_GIO_UNIX_CFLAGS) " -I $( bsdiff_srcpath) "
libbsdiff_libs := $( OT_DEP_GIO_UNIX_LIBS)
2017-10-03 23:26:50 +03:00
# See the comment for the similar libglnx bit above
2017-10-16 19:24:16 +03:00
$(srcdir)/bsdiff/Makefile-bsdiff.am.inc : $( srcdir ) /bsdiff /Makefile -bsdiff .am
2017-10-18 19:17:19 +03:00
sed -e 's,$$(libbsdiff_srcpath),bsdiff,g' < $< > $@
2015-02-12 18:24:50 +03:00
i n c l u d e b s d i f f / M a k e f i l e - b s d i f f . a m . i n c
2016-05-13 21:01:29 +03:00
EXTRA_DIST += bsdiff/Makefile-bsdiff.am
2015-02-12 18:24:50 +03:00
noinst_LTLIBRARIES += libbsdiff.la
2011-11-02 23:45:32 +04:00
i n c l u d e M a k e f i l e - o t u t i l . a m
i n c l u d e M a k e f i l e - l i b o s t r e e . a m
i n c l u d e M a k e f i l e - o s t r e e . a m
2012-02-06 01:02:44 +04:00
i n c l u d e M a k e f i l e - s w i t c h r o o t . a m
2016-04-25 14:57:03 +03:00
i f B U I L D O P T _ F U S E
2016-02-10 14:42:54 +03:00
i n c l u d e s r c / r o f i l e s - f u s e / M a k e f i l e - i n c . a m
2016-04-25 14:57:03 +03:00
e n d i f
2013-05-01 23:26:21 +04:00
i n c l u d e M a k e f i l e - t e s t s . a m
2013-10-23 00:04:32 +04:00
i n c l u d e M a k e f i l e - b o o t . a m
2016-01-27 20:51:07 +03:00
i n c l u d e M a k e f i l e - m a n . a m
2017-08-12 04:17:23 +03:00
i n c l u d e M a k e f i l e - b a s h . a m
2013-05-01 23:26:21 +04:00
2012-03-31 20:34:11 +04:00
release-tag :
2017-05-17 04:46:22 +03:00
cd $( srcdir) && git $( srcdir) tag -m " Release $( VERSION) " v$( VERSION)
2012-06-08 01:21:55 +04:00
2012-08-18 04:51:36 +04:00
embed_dependency = tar -C $( srcdir) --append --exclude= '.git/*' --transform= " s,^embedded-dependencies/,ostree-embeddeps- $$ {GITVERSION}/embedded-dependencies/, " --file= $$ { TARFILE_TMP}
2017-05-17 04:46:22 +03:00
git_version_rpm = $$ ( cd $( srcdir) && git describe | sed -e 's,-,\.,g' -e 's,^v,,' )
2012-06-15 00:22:23 +04:00
2012-06-08 01:21:55 +04:00
release-tarball-embedded :
2012-08-18 04:51:36 +04:00
set -x; \
GITVERSION = $( git_version_rpm) ; export GITVERSION; \
TARFILE_TMP = ostree-embeddeps-$$ { GITVERSION} .tar.tmp; \
REV = $$ ( git rev-parse HEAD) ; \
echo " Archiving ostree at $$ {REV} " ; \
( cd $( srcdir) ; git archive --format= tar --prefix= ostree-embeddeps-$$ { GITVERSION} / $$ { REV} ) > $$ { TARFILE_TMP} ; \
( cd $$ ( git rev-parse --show-toplevel) ; git submodule status) | while read line; do \
rev = $$ ( echo $$ line | cut -f 1 -d ' ' ) ; path = $$ ( echo $$ line | cut -f 2 -d ' ' ) ; \
echo " Archiving $$ {path} at $$ {rev} " ; \
( cd $( srcdir) /$$ path; git archive --format= tar --prefix= ostree-embeddeps-$$ { GITVERSION} /$$ path/ $$ { rev} ) > submodule.tar; \
tar -A -f $$ { TARFILE_TMP} submodule.tar; \
rm submodule.tar; \
done ; \
echo "Archiving glib" ; \
$( embed_dependency) embedded-dependencies/glib; \
echo "Archiving libsoup" ; \
$( embed_dependency) embedded-dependencies/libsoup; \
mv ostree-embeddeps-$$ { GITVERSION} .tar{ .tmp,} ; \
gzip -f ostree-embeddeps-$$ { GITVERSION} .tar
2016-03-31 22:08:45 +03:00
2018-10-25 18:15:51 +03:00
# `make dist` + `make`; explicitly not the other
# parts of distcheck like `make uninstall` since
# we don't care about that.
dist-then-build : dist
rm $( distdir) -rf && tar -xf $( distdir) .tar.xz
cd $( distdir) && mkdir _build && cd _build && \
../configure --prefix= /usr --libdir= /usr/lib --sysconfdir= /etc && \
$( MAKE) && make install DESTDIR = $$ ( pwd ) /_install && \
rm -rf $( distdir)
2016-03-31 22:08:45 +03:00
- i n c l u d e $( top_srcdir ) / g i t . m k