#!/bin/sh

set -x

sysroot=$(realpath sysroot)

mkdir a b c
cd a

cat > configure.ac << EOF
AC_PREREQ([2.59])
AC_INIT([a], [0.0.1], [my@email.com])
AM_INIT_AUTOMAKE([foreign -Wall -Werror])
AC_LANG([C])
AM_PROG_AR
AC_PROG_RANLIB
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
EOF

cat > Makefile.am << EOF
lib_LIBRARIES = liba.a
liba_a_SOURCES = a.c
include_HEADERS = a.h
EOF

cat > a.c << EOF
#include <stdio.h>
void foo() { printf("hello, world\n"); }
EOF

cat > a.h << EOF
void foo();
EOF

autoreconf -i -v
./configure --prefix=/prefix1
make install DESTDIR=$sysroot

cd ../b

cat > configure.ac << EOF
AC_PREREQ([2.59])
AC_INIT([b], [0.0.1], [my@email.com])
AM_INIT_AUTOMAKE([foreign -Wall -Werror])
AC_LANG([C])
AM_PROG_AR
LT_INIT
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
EOF

cat > Makefile.am << EOF
ACLOCAL_AMFLAGS = -I m4
lib_LTLIBRARIES = libb.la
libb_la_SOURCES = b.c
libb_la_LIBADD = -la
include_HEADERS = b.h
EOF

cat > b.c << EOF
#include <a.h>
void bar() { foo(); }
EOF

cat > b.h << EOF
void bar();
EOF

autoreconf -i -v
./configure --prefix=/prefix2 --with-sysroot=$sysroot --disable-shared \
    CPPFLAGS=-I$sysroot/prefix1/include \
    LDFLAGS=-L$sysroot/prefix1/lib
make install DESTDIR=$sysroot

cd ../c

cat > configure.ac << EOF
AC_PREREQ([2.59])
AC_INIT([b], [0.0.1], [my@email.com])
AM_INIT_AUTOMAKE([foreign -Wall -Werror])
AC_LANG([C])
AC_PROG_CC
AM_PROG_AR
LT_INIT
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
EOF

cat > Makefile.am << EOF
ACLOCAL_AMFLAGS = -I m4
bin_PROGRAMS = c
c_SOURCES = c.c
c_LDADD = -lb
EOF

cat > c.c << EOF
#include <b.h>
int main() { bar(); return 0; }
EOF

autoreconf -i -v
./configure --with-sysroot=$sysroot \
    CPPFLAGS=-I$sysroot/prefix2/include \
    LDFLAGS=-L$sysroot/prefix2/lib
make

