Build instructions:

1. install cmake
2. mkdir build
3. cd build
4. cmake ..
5. make install

cmake Options:
  -DBUILD_SHARED_LIBS
    By default SHARED libraries are created and applications are linked to it.
    Use -DBUILD_SHARED_LIBS=OFF while invoking cmake to create STATIC libraries
    and link applications to it.

    Ex. cmake -DBUILD_SHARED_LIBS=OFF ..

  -DCMAKE_INSTALL_PREFIX
    Default is to install to /usr/local, use -DCMAKE_INSTALL_PREFIX=
    when invoking cmake to specify another install location.

  -DCMAKE_INSTALL_LIBDIR
    Default is to install to lib or lib64, use -DCMAKE_INSTALL_LIBDIR=
    when invoking cmake to specify another install location.

You may need to update the libbpf git submodule:

git submodule update --init --recursive

Testing:

Tests are available in the tests subdirectory and should be run prior to
submitting patches.  Patches that add functionality should add to tests
here also.  Tests can be run by

- running the scripts directly using a pre-existing vmlinux binary; i.e.
	cd tests ; vmlinux=/path/2/vmlinux ./tests
  (the vmlinux binary must contain DWARF to be converted to BTF)

- running the tests via local scripts in .github/scripts; i.e.
	bash .github/scripts/build-pahole.sh; \
	bash .github/scripts/build-kernel.sh; \
	bash .github/scripts/run-selftests.sh
- via GitHub actions: push a branch to a GitHub repo; actions will be
  triggered for build and test matching the above steps.  See the "Actions"
  tab in the github repo for info on job pass/fail and logs.
