2011-11-10 13:17:04 -05:00
# Copyright (C) 2011 Colin Walters <walters@verbum.org>
#
# 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 11:39:27 -05: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-13 18:02:07 -04:00
shortened_sysconfdir = $$ ( echo " $( sysconfdir) " | sed -e 's|^$(prefix)||' -e 's|^/||' )
2017-05-16 21:46:22 -04: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 10:22:43 -05:00
2016-06-26 21:59:12 -04:00
ACLOCAL_AMFLAGS = -I buildutil -I libglnx ${ ACLOCAL_FLAGS }
2014-01-03 11:39:27 -05:00
AM_CPPFLAGS += -DDATADIR= '"$(datadir)"' -DLIBEXECDIR= '"$(libexecdir)"' \
2014-09-08 11:47:58 -04:00
-DLOCALEDIR= \" $( datadir) /locale\" -DSYSCONFDIR= \" $( sysconfdir) \" \
2017-03-27 16:05:46 +02:00
-DTARGET_PREFIX= '"$(prefix)"' -DSHORTENED_SYSCONFDIR= \" $( shortened_sysconfdir) \" \
2013-05-01 19:15:06 -04:00
-DOSTREE_FEATURES= '"$(OSTREE_FEATURES)"' \
2016-05-13 08:08:49 +02:00
-DOSTREE_COMPILATION \
2016-03-26 08:28:20 -07:00
-DG_LOG_DOMAIN= \" OSTree\" \
2017-02-17 10:22:43 -05:00
-DOSTREE_GITREV= '"$(OSTREE_GITREV)"' \
2017-04-19 00:07:51 +01:00
-DGLIB_VERSION_MIN_REQUIRED= GLIB_VERSION_2_40 -DGLIB_VERSION_MAX_ALLOWED= GLIB_VERSION_2_50 \
2014-09-09 09:30:02 -04:00
-DSOUP_VERSION_MIN_REQUIRED= SOUP_VERSION_2_40 -DSOUP_VERSION_MAX_ALLOWED= SOUP_VERSION_2_48
2016-05-06 12:25:27 -04:00
AM_CFLAGS += -std= gnu99 $( WARN_CFLAGS)
2016-09-01 11:26:48 -07:00
AM_DISTCHECK_CONFIGURE_FLAGS += \
--enable-gtk-doc \
--enable-man \
--disable-maintainer-mode \
$( NULL)
2013-08-16 22:54:35 -04:00
2016-03-31 15:08:45 -04:00
GITIGNOREFILES = aclocal.m4 build-aux/ buildutil/*.m4 config.h.in gtk-doc.make
2013-08-16 22:54:35 -04:00
SUBDIRS += .
2013-08-16 23:14:30 -04:00
i f E N A B L E _ G T K _ D O C
2016-01-27 13:29:21 -05:00
SUBDIRS += apidoc
2012-06-07 17:21:55 -04:00
e n d i f
2013-09-11 19:55:24 -04:00
EXTRA_DIST += autogen.sh COPYING README.md
2012-09-25 18:44:08 -04:00
2012-06-07 17: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-14 16:22:23 -04:00
OT_INTERNAL_SOUP_CFLAGS = $( OT_DEP_SOUP_CFLAGS)
OT_INTERNAL_SOUP_LIBS = $( OT_DEP_SOUP_LIBS)
2012-06-07 17:21:55 -04:00
2015-04-26 18:08:20 -04:00
# This canonicalizes the PKG_CHECK_MODULES or AM_PATH_GPGME results
2016-02-22 15:04:38 -05: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-26 18:08:20 -04:00
2013-07-26 19: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-24 21:43:53 -05: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 11:29:20 -05: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-24 21:43:53 -05:00
e n d i f # end ENABLE_RUST
2015-02-17 17:38:36 -05: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 21:26:50 +01: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
sed -e 's,$(libglnx_srcpath),libglnx,g' < $< > $@
2015-02-17 17:38:36 -05: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 11:01:29 -07:00
EXTRA_DIST += libglnx/Makefile-libglnx.am
2015-02-17 17:38:36 -05:00
noinst_LTLIBRARIES += libglnx.la
2015-02-12 16:24:50 +01:00
libbsdiff_srcpath := $( srcdir) /bsdiff
2017-10-03 21:26:50 +01:00
2015-02-12 16:24:50 +01:00
libbsdiff_cflags := $( OT_DEP_GIO_UNIX_CFLAGS) " -I $( bsdiff_srcpath) "
libbsdiff_libs := $( OT_DEP_GIO_UNIX_LIBS)
2017-10-03 21:26:50 +01:00
# See the comment for the similar libglnx bit above
$(srcdir)/bsdiff/Makefile-bsdiff.am.inc : $( srcdir ) /bsdiff /Makefile -bsdiff .am .inc
sed -e 's,$(libbsdiff_srcpath),bsdiff,g' < $< > $@
2015-02-12 16:24:50 +01: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 11:01:29 -07:00
EXTRA_DIST += bsdiff/Makefile-bsdiff.am
2015-02-12 16:24:50 +01:00
noinst_LTLIBRARIES += libbsdiff.la
2011-11-02 15: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-05 16:02:44 -05: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 13:57:03 +02:00
i f B U I L D O P T _ F U S E
2016-02-10 12:42:54 +01: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 13:57:03 +02:00
e n d i f
2013-05-01 15: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-22 22:04:32 +02: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 12:51:07 -05:00
i n c l u d e M a k e f i l e - m a n . a m
2017-08-12 01:17:23 +00: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 15:26:21 -04:00
2012-03-31 12:34:11 -04:00
release-tag :
2017-05-16 21:46:22 -04:00
cd $( srcdir) && git $( srcdir) tag -m " Release $( VERSION) " v$( VERSION)
2012-06-07 17:21:55 -04:00
2012-08-17 20: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-16 21:46:22 -04:00
git_version_rpm = $$ ( cd $( srcdir) && git describe | sed -e 's,-,\.,g' -e 's,^v,,' )
2012-06-14 16:22:23 -04:00
2012-06-07 17:21:55 -04:00
release-tarball-embedded :
2012-08-17 20: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 15:08:45 -04:00
- i n c l u d e $( top_srcdir ) / g i t . m k